From 4377b405337bc739999b41ffb127c21779caacb8 Mon Sep 17 00:00:00 2001 From: heltai Date: Sun, 18 Aug 2013 22:02:27 +0000 Subject: [PATCH] merged from trunk git-svn-id: https://svn.dealii.org/branches/branch_manifold_id@30338 0785d39b-7218-0410-832d-ea1e28bc413d --- tests/CMakeLists.txt | 1 + tests/Makefile | 1 + tests/Makefile.rules | 36 +- tests/a-framework/compile.cc | 24 +- tests/a-framework/fail.cc | 24 +- tests/a-framework/link.cc | 24 +- tests/a-framework/miscompare.cc | 22 +- tests/a-framework/run.cc | 22 +- tests/all-headers/Makefile | 12 +- tests/aniso/anisotropic_crash.cc | 90 +- tests/aniso/fe_tools.cc | 100 +- tests/aniso/hp_constraints_dgp_08.cc | 24 +- tests/aniso/hp_constraints_dgp_monomial_08.cc | 24 +- .../hp_constraints_dgp_nonparametric_08.cc | 24 +- tests/aniso/hp_constraints_dgq_08.cc | 22 +- tests/aniso/mesh_3d_21.cc | 294 +- tests/aniso/refine_and_coarsen_anisotropic.cc | 125 +- tests/aniso/solution_transfer.cc | 54 +- tests/aniso/up_and_down.cc | 258 +- tests/base/anisotropic_1.cc | 124 +- tests/base/anisotropic_2.cc | 51 +- tests/base/auto_derivative_function.cc | 178 +- tests/base/conditional_ostream.cc | 24 +- tests/base/convergence_table_01.cc | 39 +- tests/base/convergence_table_02.cc | 40 +- tests/base/convergence_table_03.cc | 38 +- tests/base/convergence_table_04.cc | 108 + tests/base/convergence_table_04/cmp/generic | 30 + tests/base/data_out_base.cc | 70 +- tests/base/data_out_base/cmp/generic | 8 +- tests/base/data_out_base_dx.cc | 152 +- tests/base/data_out_base_eps.cc | 64 +- tests/base/data_out_base_gmv.cc | 53 +- tests/base/data_out_base_gnuplot.cc | 48 +- tests/base/data_out_base_povray.cc | 68 +- tests/base/data_out_base_pvd.cc | 50 +- tests/base/data_out_base_pvtu.cc | 50 +- tests/base/data_out_base_tecplot.cc | 55 +- tests/base/data_out_base_tecplot_bin.cc | 43 +- tests/base/data_out_base_vtk.cc | 53 +- tests/base/data_out_base_vtk_cycle.cc | 94 + .../base/data_out_base_vtk_cycle/cmp/generic | 705 + tests/base/data_out_base_vtk_time.cc | 94 + tests/base/data_out_base_vtk_time/cmp/generic | 705 + .../base/data_out_base_vtk_time_and_cycle.cc | 95 + .../cmp/generic | 715 + tests/base/data_out_base_vtu.cc | 45 +- tests/base/data_out_base_vtu_cycle.cc | 93 + .../base/data_out_base_vtu_cycle/cmp/generic | 230 + tests/base/data_out_base_vtu_time.cc | 93 + tests/base/data_out_base_vtu_time/cmp/generic | 230 + .../base/data_out_base_vtu_time_and_cycle.cc | 95 + .../cmp/generic | 235 + tests/base/data_out_reader_01.cc | 46 +- tests/base/data_out_reader_01/cmp/generic | 10 +- tests/base/full_tensor_01.cc | 30 +- tests/base/full_tensor_02.cc | 30 +- tests/base/full_tensor_03.cc | 36 +- tests/base/full_tensor_04.cc | 34 +- tests/base/full_tensor_05.cc | 68 +- tests/base/full_tensor_06.cc | 74 +- tests/base/full_tensor_08.cc | 50 +- tests/base/full_tensor_09.cc | 32 +- tests/base/full_tensor_10.cc | 34 +- tests/base/function_derivative.cc | 128 +- tests/base/function_parser.cc | 121 +- tests/base/function_parser_02.cc | 72 +- tests/base/functions.h | 199 +- tests/base/functions_01.cc | 50 +- tests/base/functions_02.cc | 160 +- tests/base/functions_03.cc | 122 +- tests/base/functions_04.cc | 226 +- tests/base/functions_05.cc | 38 +- tests/base/functions_06.cc | 44 +- tests/base/functions_07.cc | 40 +- tests/base/functions_08.cc | 56 +- tests/base/functions_09.cc | 152 + tests/base/functions_09/cmp/generic | 133 + tests/base/functions_singularity.cc | 256 +- tests/base/gauss_lobatto.cc | 201 +- tests/base/geometry_info_1.cc | 90 +- tests/base/geometry_info_2.cc | 112 +- tests/base/geometry_info_3.cc | 52 +- tests/base/geometry_info_4.cc | 60 +- tests/base/geometry_info_5.cc | 62 +- tests/base/geometry_info_6.cc | 124 +- tests/base/geometry_info_7.cc | 246 +- tests/base/geometry_info_8.cc | 82 +- tests/base/hierarchical.cc | 24 +- tests/base/index_set_01.cc | 24 +- tests/base/index_set_02.cc | 30 +- tests/base/index_set_03.cc | 26 +- tests/base/index_set_04.cc | 26 +- tests/base/index_set_05.cc | 26 +- tests/base/index_set_06.cc | 26 +- tests/base/index_set_07.cc | 26 +- tests/base/index_set_08.cc | 26 +- tests/base/index_set_09.cc | 24 +- tests/base/index_set_10.cc | 28 +- tests/base/index_set_11.cc | 32 +- tests/base/index_set_12.cc | 28 +- tests/base/index_set_13.cc | 32 +- tests/base/index_set_14.cc | 44 +- tests/base/index_set_15.cc | 50 +- tests/base/index_set_16.cc | 41 +- tests/base/index_set_17.cc | 30 +- tests/base/index_set_18.cc | 28 +- tests/base/index_set_19.cc | 30 +- tests/base/index_set_20.cc | 50 +- tests/base/index_set_20_offset.cc | 98 + tests/base/index_set_20_offset/cmp/generic | 22 + tests/base/index_set_21.cc | 28 +- tests/base/index_set_22.cc | 30 +- tests/base/index_set_23.cc | 55 + tests/base/index_set_23/cmp/generic | 2 + tests/base/index_set_readwrite_01.cc | 22 +- tests/base/index_set_readwrite_02.cc | 24 +- tests/base/index_set_readwrite_03.cc | 67 + tests/base/index_set_readwrite_03/cmp/generic | 3 + tests/base/is_finite.cc | 26 +- tests/base/is_finite_complex.cc | 26 +- tests/base/log_crash_01.cc | 22 +- tests/base/log_infinity.cc | 22 +- tests/base/log_nan.cc | 22 +- tests/base/log_precision.cc | 46 + tests/base/log_precision/cmp/generic | 4 + tests/base/log_width.cc | 46 + tests/base/log_width/cmp/generic | 4 + tests/base/logstream_end.cc | 22 +- tests/base/logtest.cc | 22 +- tests/base/mutex_01.cc | 22 +- tests/base/named_data.cc | 36 +- tests/base/number_traits_complex.cc | 36 +- tests/base/number_traits_real.cc | 38 +- tests/base/parallel_accumulate.cc | 26 +- tests/base/parallel_transform_01.cc | 30 +- tests/base/parallel_transform_02.cc | 32 +- tests/base/parallel_transform_03.cc | 38 +- tests/base/patches.h | 149 +- tests/base/path_search.cc | 28 +- tests/base/patterns_01.cc | 38 +- tests/base/point_01.cc | 22 +- tests/base/polynomial1d.cc | 144 +- .../base/polynomial_hermite_interpolation.cc | 35 +- tests/base/polynomial_lagrange.cc | 74 +- tests/base/polynomial_lagrange_ops.cc | 110 +- tests/base/polynomial_lagrange_order.cc | 90 +- tests/base/polynomial_lagrange_product.cc | 66 +- tests/base/polynomial_minus_equals.cc | 67 +- tests/base/polynomial_test.cc | 116 +- tests/base/polynomials_bdm_01.cc | 46 +- tests/base/polynomials_rt.cc | 42 +- tests/base/polynomials_tensor.cc | 52 +- tests/base/qprojector.cc | 160 +- tests/base/quadrature_selector.cc | 32 +- tests/base/quadrature_test.cc | 210 +- tests/base/reference.cc | 64 +- tests/base/scalar_01.cc | 26 +- tests/base/slice_vector.cc | 40 +- tests/base/symmetric_tensor_01.cc | 40 +- tests/base/symmetric_tensor_02.cc | 40 +- tests/base/symmetric_tensor_03.cc | 46 +- tests/base/symmetric_tensor_04.cc | 44 +- tests/base/symmetric_tensor_05.cc | 72 +- tests/base/symmetric_tensor_06.cc | 74 +- tests/base/symmetric_tensor_07.cc | 68 +- tests/base/symmetric_tensor_08.cc | 66 +- tests/base/symmetric_tensor_09.cc | 28 +- tests/base/symmetric_tensor_10.cc | 36 +- tests/base/symmetric_tensor_11.cc | 36 +- tests/base/symmetric_tensor_12.cc | 28 +- tests/base/symmetric_tensor_13.cc | 28 +- tests/base/symmetric_tensor_14.cc | 28 +- tests/base/symmetric_tensor_15.cc | 44 +- tests/base/symmetric_tensor_16.cc | 32 +- tests/base/symmetric_tensor_17.cc | 52 +- tests/base/symmetric_tensor_18.cc | 76 +- tests/base/symmetric_tensor_19.cc | 118 +- tests/base/symmetric_tensor_20.cc | 26 +- tests/base/symmetric_tensor_21.cc | 28 +- tests/base/symmetric_tensor_22.cc | 28 +- tests/base/symmetric_tensor_23.cc | 30 +- tests/base/symmetric_tensor_24.cc | 34 +- tests/base/symmetric_tensor_25.cc | 44 +- tests/base/symmetric_tensor_26.cc | 28 +- tests/base/symmetric_tensor_27.cc | 72 + tests/base/symmetric_tensor_27/cmp/generic | 14 + tests/base/table.cc | 263 +- tests/base/table_handler_01.cc | 34 +- tests/base/table_handler_02.cc | 46 +- tests/base/table_handler_03.cc | 22 +- tests/base/table_handler_04.cc | 22 +- tests/base/table_handler_05.cc | 32 +- tests/base/table_handler_06.cc | 34 +- tests/base/table_handler_07.cc | 38 +- tests/base/table_handler_08.cc | 38 +- tests/base/table_handler_09.cc | 34 +- tests/base/table_handler_10.cc | 38 +- tests/base/table_handler_11.cc | 32 +- tests/base/table_handler_12.cc | 38 +- tests/base/table_handler_13.cc | 59 + tests/base/table_handler_13/cmp/generic | 6 + tests/base/table_indices_01.cc | 52 + tests/base/table_indices_01/cmp/generic | 2 + tests/base/task_01.cc | 26 +- tests/base/task_02.cc | 28 +- tests/base/task_03.cc | 32 +- tests/base/task_04.cc | 34 +- tests/base/task_05.cc | 52 +- tests/base/task_06.cc | 32 +- tests/base/task_07.cc | 32 +- tests/base/task_08.cc | 32 +- tests/base/task_09.cc | 50 +- tests/base/tensor.cc | 56 +- tests/base/tensor_02.cc | 28 +- tests/base/tensor_03.cc | 28 +- tests/base/tensor_04.cc | 22 +- tests/base/tensor_05.cc | 22 +- tests/base/tensor_06.cc | 22 +- tests/base/tensor_07.cc | 54 +- tests/base/tensor_08.cc | 43 +- tests/base/tensor_24.cc | 60 + tests/base/tensor_24/cmp/generic | 16 + tests/base/tensor_25.cc | 68 + tests/base/tensor_25/cmp/generic | 5 + tests/base/tensor_complex.cc | 58 +- tests/base/tensor_float.cc | 44 +- tests/base/thread_local_storage_01.cc | 94 +- tests/base/thread_local_storage_02.cc | 114 +- tests/base/thread_local_storage_03.cc | 54 +- tests/base/thread_local_storage_04.cc | 60 +- tests/base/thread_validity_01.cc | 38 +- tests/base/thread_validity_02.cc | 40 +- tests/base/thread_validity_03.cc | 52 +- tests/base/thread_validity_04.cc | 52 +- tests/base/thread_validity_05.cc | 98 +- tests/base/thread_validity_06.cc | 42 +- tests/base/thread_validity_07.cc | 32 +- tests/base/thread_validity_08.cc | 58 +- tests/base/thread_validity_09.cc | 22 +- tests/base/thread_validity_10.cc | 34 +- tests/base/thread_validity_11.cc | 30 +- tests/base/thread_validity_12.cc | 32 +- tests/base/threads.pl | 27 +- tests/base/timer.cc | 34 +- tests/base/timer_02.cc | 32 +- tests/base/utilities_01.cc | 34 +- tests/base/utilities_02.cc | 28 +- tests/base/utilities_03.cc | 22 +- tests/base/utilities_04.cc | 34 +- tests/base/utilities_05.cc | 38 +- tests/base/vectorization_01.cc | 26 +- tests/base/vectorization_02.cc | 28 +- tests/base/vectorization_03.cc | 24 +- tests/base/vectorization_04.cc | 88 +- tests/base/work_stream_01.cc | 58 +- tests/base/work_stream_02.cc | 40 +- tests/base/work_stream_03.cc | 175 + tests/base/work_stream_03/cmp/generic | 13 + tests/benchmarks/bench.sh | 0 tests/benchmarks/benchrev.sh | 10 +- tests/benchmarks/gettimes/get_times.cc | 291 +- tests/benchmarks/index.html | 19 - tests/benchmarks/interactive.py | 28 +- tests/benchmarks/old/benchmark.cc | 48 +- tests/benchmarks/old/dof_handler_size.cc | 78 +- tests/benchmarks/old/dof_handler_timing.cc | 86 +- tests/benchmarks/old/dof_handler_timing_01.cc | 62 +- tests/benchmarks/old/performance.cc | 72 +- tests/benchmarks/old/spec2006-447.dealII.cc | 6323 +- tests/benchmarks/plot.sh | 0 tests/benchmarks/setup.sh | 21 +- tests/benchmarks/step-22/CMakeLists.txt | 39 + tests/benchmarks/step-22/Makefile | 144 - tests/benchmarks/step-22/step-22.cc | 1694 +- tests/benchmarks/tablehandler/CMakeLists.txt | 39 + tests/benchmarks/tablehandler/Makefile | 144 - .../benchmarks/tablehandler/table_handler.cc | 38 +- tests/benchmarks/test_assembly/CMakeLists.txt | 39 + tests/benchmarks/test_assembly/Makefile | 144 - tests/benchmarks/test_assembly/step-22.cc | 1649 +- tests/benchmarks/test_poisson/CMakeLists.txt | 39 + tests/benchmarks/test_poisson/Makefile | 144 - tests/benchmarks/test_poisson/poisson.cc | 34 +- tests/benchmarks/testlist.sh | 0 tests/bits/accessor_equality.cc | 64 +- tests/bits/anna_1.cc | 118 +- tests/bits/anna_2.cc | 114 +- tests/bits/anna_3.cc | 53 +- tests/bits/anna_4.cc | 174 +- tests/bits/anna_5.cc | 22 +- tests/bits/anna_6.cc | 274 +- tests/bits/apply_boundary_values_01.cc | 106 +- tests/bits/apply_boundary_values_02.cc | 106 +- tests/bits/apply_boundary_values_03.cc | 126 +- tests/bits/apply_boundary_values_04.cc | 126 +- tests/bits/block_matrix_array_01.cc | 30 +- tests/bits/block_sparse_matrix_1.cc | 82 +- tests/bits/block_sparse_matrix_2.cc | 66 +- tests/bits/block_sparse_matrix_iterator_01.cc | 72 +- tests/bits/block_sparse_matrix_iterator_02.cc | 72 +- tests/bits/block_sparse_matrix_iterator_03.cc | 72 +- tests/bits/block_sparse_matrix_iterator_04.cc | 56 +- tests/bits/block_sparse_matrix_iterator_05.cc | 76 +- tests/bits/block_vector_iterator_01.cc | 68 +- tests/bits/block_vector_iterator_02.cc | 68 +- tests/bits/block_vector_vector_01.cc | 54 +- tests/bits/christian_1.cc | 90 +- tests/bits/christian_2.cc | 26 +- tests/bits/chunk_sparse_matrix_00.cc | 68 +- tests/bits/chunk_sparse_matrix_01.cc | 62 +- tests/bits/chunk_sparse_matrix_01a.cc | 86 +- tests/bits/chunk_sparse_matrix_02.cc | 60 +- tests/bits/chunk_sparse_matrix_03.cc | 64 +- tests/bits/chunk_sparse_matrix_03a.cc | 68 +- tests/bits/chunk_sparse_matrix_03b.cc | 68 +- tests/bits/chunk_sparse_matrix_04.cc | 58 +- tests/bits/chunk_sparse_matrix_05.cc | 80 +- tests/bits/chunk_sparse_matrix_05a.cc | 66 +- tests/bits/chunk_sparse_matrix_06.cc | 70 +- tests/bits/chunk_sparse_matrix_07.cc | 70 +- tests/bits/chunk_sparse_matrix_08.cc | 68 +- tests/bits/chunk_sparse_matrix_09.cc | 68 +- tests/bits/chunk_sparse_matrix_10.cc | 68 +- tests/bits/chunk_sparse_matrix_11.cc | 105 + tests/bits/chunk_sparse_matrix_11/cmp/generic | 31 + tests/bits/chunk_sparse_matrix_12.cc | 105 + tests/bits/chunk_sparse_matrix_12/cmp/generic | 31 + tests/bits/chunk_sparse_matrix_13.cc | 105 + tests/bits/chunk_sparse_matrix_13/cmp/generic | 36 + tests/bits/chunk_sparse_matrix_14.cc | 106 + tests/bits/chunk_sparse_matrix_14/cmp/generic | 31 + tests/bits/chunk_sparse_matrix_15.cc | 112 + tests/bits/chunk_sparse_matrix_15/cmp/generic | 36 + tests/bits/chunk_sparse_matrix_iterator_01.cc | 89 + .../cmp/generic | 26 + tests/bits/chunk_sparse_matrix_iterator_02.cc | 108 + .../cmp/generic | 122 + tests/bits/chunk_sparse_matrix_iterator_03.cc | 108 + .../cmp/generic | 122 + tests/bits/chunk_sparse_matrix_iterator_04.cc | 100 + .../cmp/generic | 76 + tests/bits/chunk_sparse_matrix_iterator_05.cc | 107 + .../cmp/generic | 76 + tests/bits/chunk_sparse_matrix_iterator_06.cc | 114 + .../cmp/generic | 122 + tests/bits/chunk_sparse_matrix_iterator_07.cc | 114 + .../cmp/generic | 122 + tests/bits/chunk_sparse_matrix_iterator_08.cc | 114 + .../cmp/generic | 122 + tests/bits/chunk_sparse_matrix_iterator_09.cc | 87 + .../cmp/generic | 19 + tests/bits/chunk_sparse_matrix_iterator_10.cc | 89 + .../cmp/generic | 19 + tests/bits/chunk_sparse_matrix_iterator_11.cc | 99 + .../cmp/generic | 5 + tests/bits/chunk_sparse_matrix_iterator_12.cc | 98 + .../cmp/generic | 5 + tests/bits/chunk_sparse_matrix_iterator_13.cc | 121 + .../cmp/generic | 9 + tests/bits/chunk_sparse_matrix_vector_01.cc | 78 +- tests/bits/chunk_sparse_matrix_vector_02.cc | 78 +- tests/bits/chunk_sparse_matrix_vector_03.cc | 78 +- tests/bits/chunk_sparse_matrix_vector_04.cc | 78 +- tests/bits/chunk_sparse_matrix_vector_05.cc | 78 +- tests/bits/chunk_sparse_matrix_vector_06.cc | 76 +- tests/bits/chunk_sparse_matrix_vector_07.cc | 80 +- tests/bits/coarsening_3d.cc | 30 +- tests/bits/complex_complex_full_matrix_01.cc | 22 +- tests/bits/complex_complex_full_matrix_02.cc | 28 +- tests/bits/complex_complex_full_matrix_03.cc | 30 +- tests/bits/complex_complex_full_matrix_04.cc | 33 +- tests/bits/complex_complex_full_matrix_05.cc | 22 +- tests/bits/complex_complex_full_matrix_06.cc | 24 +- tests/bits/complex_complex_full_matrix_07.cc | 22 +- tests/bits/complex_complex_full_matrix_08.cc | 24 +- tests/bits/complex_complex_full_matrix_09.cc | 22 +- tests/bits/complex_complex_full_matrix_10.cc | 22 +- tests/bits/complex_complex_full_matrix_11.cc | 22 +- tests/bits/complex_complex_full_matrix_12.cc | 24 +- tests/bits/complex_complex_full_matrix_13.cc | 24 +- tests/bits/complex_complex_full_matrix_14.cc | 24 +- tests/bits/complex_complex_full_matrix_15.cc | 22 +- tests/bits/complex_complex_full_matrix_16.cc | 22 +- tests/bits/complex_complex_full_matrix_17.cc | 22 +- tests/bits/complex_complex_full_matrix_18.cc | 22 +- tests/bits/complex_complex_full_matrix_19.cc | 24 +- tests/bits/complex_complex_full_matrix_20.cc | 22 +- tests/bits/complex_complex_full_matrix_21.cc | 22 +- tests/bits/complex_complex_full_matrix_22.cc | 22 +- tests/bits/complex_complex_full_matrix_23.cc | 22 +- tests/bits/complex_complex_full_matrix_24.cc | 24 +- tests/bits/complex_complex_full_matrix_25.cc | 22 +- tests/bits/complex_complex_full_matrix_26.cc | 22 +- tests/bits/complex_complex_full_matrix_27.cc | 22 +- tests/bits/complex_complex_full_matrix_28.cc | 22 +- tests/bits/complex_complex_full_matrix_29.cc | 22 +- tests/bits/complex_complex_full_matrix_30.cc | 22 +- tests/bits/complex_complex_full_matrix_31.cc | 22 +- tests/bits/complex_complex_full_matrix_32.cc | 22 +- tests/bits/complex_complex_full_matrix_33.cc | 22 +- tests/bits/complex_complex_full_matrix_34.cc | 22 +- tests/bits/complex_complex_full_matrix_36.cc | 22 +- tests/bits/complex_complex_full_matrix_37.cc | 24 +- tests/bits/complex_complex_full_matrix_38.cc | 22 +- tests/bits/complex_complex_full_matrix_39.cc | 22 +- tests/bits/complex_complex_full_matrix_40.cc | 22 +- tests/bits/complex_complex_full_matrix_41.cc | 22 +- tests/bits/complex_complex_full_matrix_42.cc | 33 +- tests/bits/complex_complex_full_matrix_43.cc | 22 +- tests/bits/complex_complex_full_matrix_44.cc | 22 +- tests/bits/complex_complex_full_matrix_45.cc | 22 +- tests/bits/complex_complex_full_matrix_46.cc | 22 +- tests/bits/complex_complex_full_matrix_47.cc | 22 +- tests/bits/complex_complex_full_matrix_48.cc | 22 +- tests/bits/complex_complex_full_matrix_49.cc | 22 +- tests/bits/complex_complex_full_matrix_50.cc | 22 +- tests/bits/complex_complex_full_matrix_51.cc | 22 +- tests/bits/complex_complex_full_matrix_52.cc | 22 +- tests/bits/complex_real_full_matrix_01.cc | 22 +- tests/bits/complex_real_full_matrix_02.cc | 28 +- tests/bits/complex_real_full_matrix_03.cc | 30 +- tests/bits/complex_real_full_matrix_04.cc | 33 +- tests/bits/complex_real_full_matrix_05.cc | 22 +- tests/bits/complex_real_full_matrix_06.cc | 24 +- tests/bits/complex_real_full_matrix_07.cc | 22 +- tests/bits/complex_real_full_matrix_08.cc | 24 +- tests/bits/complex_real_full_matrix_09.cc | 22 +- tests/bits/complex_real_full_matrix_10.cc | 22 +- tests/bits/complex_real_full_matrix_11.cc | 22 +- tests/bits/complex_real_full_matrix_12.cc | 24 +- tests/bits/complex_real_full_matrix_13.cc | 24 +- tests/bits/complex_real_full_matrix_14.cc | 24 +- tests/bits/complex_real_full_matrix_15.cc | 22 +- tests/bits/complex_real_full_matrix_16.cc | 22 +- tests/bits/complex_real_full_matrix_17.cc | 22 +- tests/bits/complex_real_full_matrix_18.cc | 22 +- tests/bits/complex_real_full_matrix_19.cc | 24 +- tests/bits/complex_real_full_matrix_20.cc | 22 +- tests/bits/complex_real_full_matrix_21.cc | 22 +- tests/bits/complex_real_full_matrix_22.cc | 22 +- tests/bits/complex_real_full_matrix_23.cc | 22 +- tests/bits/complex_real_full_matrix_24.cc | 24 +- tests/bits/complex_real_full_matrix_25.cc | 22 +- tests/bits/complex_real_full_matrix_26.cc | 22 +- tests/bits/complex_real_full_matrix_27.cc | 22 +- tests/bits/complex_real_full_matrix_28.cc | 22 +- tests/bits/complex_real_full_matrix_29.cc | 22 +- tests/bits/complex_real_full_matrix_30.cc | 22 +- tests/bits/complex_real_full_matrix_31.cc | 22 +- tests/bits/complex_real_full_matrix_32.cc | 22 +- tests/bits/complex_real_full_matrix_33.cc | 22 +- tests/bits/complex_real_full_matrix_34.cc | 22 +- tests/bits/complex_real_full_matrix_36.cc | 22 +- tests/bits/complex_real_full_matrix_37.cc | 24 +- tests/bits/complex_real_full_matrix_38.cc | 22 +- tests/bits/complex_real_full_matrix_39.cc | 22 +- tests/bits/complex_real_full_matrix_40.cc | 22 +- tests/bits/complex_real_full_matrix_41.cc | 22 +- tests/bits/complex_real_full_matrix_42.cc | 33 +- tests/bits/complex_real_full_matrix_43.cc | 22 +- tests/bits/complex_real_full_matrix_44.cc | 22 +- tests/bits/complex_real_full_matrix_45.cc | 22 +- tests/bits/complex_real_full_matrix_46.cc | 22 +- tests/bits/complex_real_full_matrix_47.cc | 22 +- tests/bits/complex_real_full_matrix_48.cc | 22 +- tests/bits/complex_real_full_matrix_49.cc | 22 +- tests/bits/complex_real_full_matrix_50.cc | 22 +- tests/bits/complex_real_full_matrix_51.cc | 22 +- tests/bits/complex_real_full_matrix_52.cc | 22 +- tests/bits/complex_vector_11.cc | 56 +- tests/bits/complex_vector_12.cc | 64 +- tests/bits/complex_vector_13.cc | 64 +- tests/bits/complex_vector_14.cc | 70 +- tests/bits/complex_vector_15.cc | 68 +- tests/bits/complex_vector_16.cc | 68 +- tests/bits/complex_vector_17.cc | 56 +- tests/bits/complex_vector_18.cc | 58 +- tests/bits/complex_vector_19.cc | 58 +- tests/bits/complex_vector_20.cc | 68 +- tests/bits/complex_vector_21.cc | 68 +- tests/bits/complex_vector_21_negative.cc | 68 +- tests/bits/complex_vector_22.cc | 58 +- tests/bits/complex_vector_23.cc | 72 +- tests/bits/complex_vector_24.cc | 58 +- tests/bits/complex_vector_25.cc | 58 +- tests/bits/complex_vector_26.cc | 54 +- tests/bits/complex_vector_27.cc | 62 +- tests/bits/complex_vector_28.cc | 62 +- tests/bits/complex_vector_29.cc | 54 +- tests/bits/complex_vector_30.cc | 58 +- tests/bits/complex_vector_31.cc | 58 +- tests/bits/complex_vector_32.cc | 58 +- tests/bits/complex_vector_33.cc | 58 +- tests/bits/complex_vector_34.cc | 58 +- tests/bits/complex_vector_35.cc | 66 +- tests/bits/complex_vector_36.cc | 66 +- tests/bits/complex_vector_37.cc | 58 +- tests/bits/complex_vector_38.cc | 62 +- tests/bits/complex_vector_39.cc | 62 +- tests/bits/complex_vector_40.cc | 58 +- tests/bits/complex_vector_41.cc | 62 +- tests/bits/complex_vector_42.cc | 62 +- tests/bits/complex_vector_43.cc | 58 +- tests/bits/complex_vector_44.cc | 66 +- tests/bits/complex_vector_45.cc | 56 +- tests/bits/complex_vector_46.cc | 60 +- tests/bits/complex_vector_47.cc | 60 +- tests/bits/complex_vector_48.cc | 64 +- tests/bits/complex_vector_49.cc | 60 +- tests/bits/complex_vector_equality_1.cc | 54 +- tests/bits/complex_vector_equality_2.cc | 58 +- tests/bits/complex_vector_equality_3.cc | 54 +- tests/bits/complex_vector_equality_4.cc | 58 +- tests/bits/complex_vector_equality_5.cc | 54 +- tests/bits/complex_vector_equality_6.cc | 58 +- tests/bits/complex_vector_equality_7.cc | 54 +- tests/bits/complex_vector_equality_8.cc | 58 +- tests/bits/complex_vector_vector_01.cc | 54 +- .../compressed_set_sparsity_pattern_01.cc | 32 +- .../compressed_set_sparsity_pattern_02.cc | 32 +- .../compressed_set_sparsity_pattern_03.cc | 34 +- .../compressed_set_sparsity_pattern_04.cc | 30 +- .../compressed_set_sparsity_pattern_05.cc | 30 +- .../compressed_set_sparsity_pattern_06.cc | 24 +- .../compressed_set_sparsity_pattern_07.cc | 24 +- .../compressed_set_sparsity_pattern_08.cc | 32 +- .../compressed_set_sparsity_pattern_09.cc | 26 +- tests/bits/compressed_sparsity_pattern_01.cc | 32 +- tests/bits/compressed_sparsity_pattern_02.cc | 32 +- tests/bits/compressed_sparsity_pattern_03.cc | 34 +- tests/bits/compressed_sparsity_pattern_04.cc | 24 +- tests/bits/compressed_sparsity_pattern_05.cc | 24 +- tests/bits/compressed_sparsity_pattern_06.cc | 24 +- tests/bits/compressed_sparsity_pattern_07.cc | 24 +- tests/bits/compressed_sparsity_pattern_08.cc | 32 +- tests/bits/compressed_sparsity_pattern_09.cc | 26 +- tests/bits/cone_01.cc | 24 +- tests/bits/count_dofs_per_block_01.cc | 66 +- tests/bits/count_dofs_per_block_02.cc | 64 +- tests/bits/count_dofs_per_component_hp_01.cc | 28 +- tests/bits/count_dofs_per_component_hp_02.cc | 24 +- tests/bits/cylinder.cc | 40 +- tests/bits/cylinder_01.cc | 30 +- tests/bits/cylinder_02.cc | 36 +- tests/bits/cylinder_03.cc | 34 +- tests/bits/cylinder_04.cc | 42 +- tests/bits/cylinder_shell_01.cc | 32 +- tests/bits/cylinder_shell_02.cc | 34 +- tests/bits/data_out_01.cc | 32 +- tests/bits/data_out_01/cmp/generic | 40 +- tests/bits/data_out_02.cc | 34 +- tests/bits/data_out_02/cmp/generic | 40 +- tests/bits/data_out_03.cc | 84 +- tests/bits/data_out_04.cc | 146 +- tests/bits/data_out_05.cc | 68 +- tests/bits/data_out_06.cc | 58 + tests/bits/data_out_06/cmp/generic | 21460 +++ tests/bits/data_out_07.cc | 58 + tests/bits/data_out_07/cmp/generic | 19913 ++ tests/bits/data_out_common.h | 75 +- tests/bits/data_out_curved_cells.cc | 196 +- tests/bits/data_out_faces_01.cc | 58 +- tests/bits/data_out_faces_01/cmp/generic | 28 +- tests/bits/data_out_faces_02.cc | 60 +- tests/bits/data_out_faces_02/cmp/generic | 28 +- tests/bits/data_out_faces_03.cc | 110 +- tests/bits/data_out_faces_04.cc | 160 +- tests/bits/data_out_faces_05.cc | 79 + tests/bits/data_out_faces_05/cmp/generic | 18483 ++ tests/bits/data_out_multi_dh_01.cc | 104 + tests/bits/data_out_multi_dh_01/cmp/generic | 686 + tests/bits/data_out_multi_dh_02.cc | 101 + tests/bits/data_out_multi_dh_02/cmp/generic | 234 + tests/bits/data_out_multi_dh_03.cc | 108 + tests/bits/data_out_multi_dh_03/cmp/generic | 382 + tests/bits/data_out_multi_dh_04.cc | 105 + tests/bits/data_out_multi_dh_04/cmp/generic | 234 + tests/bits/data_out_multi_dh_05.cc | 114 + tests/bits/data_out_multi_dh_05/cmp/generic | 548 + tests/bits/data_out_rotation_01.cc | 58 +- tests/bits/data_out_rotation_01/cmp/generic | 26 +- tests/bits/data_out_rotation_02.cc | 60 +- tests/bits/data_out_rotation_02/cmp/generic | 26 +- tests/bits/data_out_rotation_03.cc | 114 +- tests/bits/data_out_rotation_04.cc | 164 +- tests/bits/data_out_rotation_05.cc | 79 + tests/bits/data_out_rotation_05/cmp/generic | 34677 ++++ tests/bits/data_out_stack_01.cc | 48 +- tests/bits/data_out_stack_01/cmp/generic | 12 +- tests/bits/data_out_stack_02.cc | 48 +- tests/bits/data_out_stack_02/cmp/generic | 12 +- tests/bits/data_out_stack_03.cc | 40 +- tests/bits/deal_solver_04.cc | 39 +- tests/bits/deal_solver_05.cc | 39 +- tests/bits/denis_1.cc | 70 +- tests/bits/distorted_cells_01.cc | 46 +- tests/bits/distorted_cells_02.cc | 26 +- tests/bits/distorted_cells_03.cc | 100 +- tests/bits/distorted_cells_04.cc | 168 +- tests/bits/distorted_cells_05.cc | 168 +- tests/bits/distorted_cells_06.cc | 86 +- tests/bits/distorted_cells_07.cc | 36 +- tests/bits/distorted_cells_07/cmp/generic | 6 +- tests/bits/distorted_mapped_cells_01.cc | 34 +- .../distorted_mapped_cells_01/cmp/generic | 2 +- tests/bits/distorted_mapped_cells_02.cc | 43 +- .../distorted_mapped_cells_02/cmp/generic | 2 +- tests/bits/dof_constraints_01.cc | 102 +- tests/bits/dof_constraints_02.cc | 100 +- tests/bits/dof_constraints_03.cc | 78 +- tests/bits/dof_constraints_04.cc | 68 +- tests/bits/dof_constraints_05.cc | 76 +- tests/bits/dof_constraints_06.cc | 66 +- tests/bits/dof_constraints_06_x.cc | 68 +- tests/bits/dof_constraints_07.cc | 78 +- tests/bits/dof_constraints_08.cc | 70 +- tests/bits/dof_constraints_09.cc | 80 +- tests/bits/dof_constraints_10.cc | 66 +- tests/bits/dof_constraints_10_x.cc | 68 +- tests/bits/dof_constraints_11.cc | 68 +- tests/bits/dof_constraints_11_x.cc | 68 +- tests/bits/dof_tools_00a.cc | 82 +- tests/bits/dof_tools_01a.cc | 38 +- tests/bits/dof_tools_01a_constraints_false.cc | 40 +- tests/bits/dof_tools_01a_constraints_true.cc | 40 +- tests/bits/dof_tools_01a_subdomain.cc | 48 +- tests/bits/dof_tools_01b.cc | 38 +- tests/bits/dof_tools_01b_x.cc | 40 +- tests/bits/dof_tools_01c.cc | 60 +- tests/bits/dof_tools_01d.cc | 60 +- tests/bits/dof_tools_01d_x.cc | 68 +- tests/bits/dof_tools_02a.cc | 42 +- tests/bits/dof_tools_02a_constraints_false.cc | 42 +- tests/bits/dof_tools_02a_constraints_true.cc | 42 +- tests/bits/dof_tools_02a_subdomain.cc | 50 +- tests/bits/dof_tools_02b.cc | 42 +- tests/bits/dof_tools_02b_x.cc | 44 +- tests/bits/dof_tools_02c.cc | 64 +- tests/bits/dof_tools_02d.cc | 64 +- tests/bits/dof_tools_02d_x.cc | 72 +- tests/bits/dof_tools_03.cc | 66 +- tests/bits/dof_tools_04.cc | 22 +- tests/bits/dof_tools_05.cc | 36 +- tests/bits/dof_tools_06.cc | 24 +- tests/bits/dof_tools_07.cc | 24 +- tests/bits/dof_tools_08.cc | 24 +- tests/bits/dof_tools_09.cc | 28 +- tests/bits/dof_tools_10.cc | 34 +- tests/bits/dof_tools_11.cc | 58 +- tests/bits/dof_tools_12.cc | 26 +- tests/bits/dof_tools_13.cc | 42 +- tests/bits/dof_tools_13a.cc | 76 +- tests/bits/dof_tools_14.cc | 32 +- tests/bits/dof_tools_15a.cc | 48 +- tests/bits/dof_tools_15b.cc | 48 +- tests/bits/dof_tools_15b_x.cc | 50 +- tests/bits/dof_tools_15c.cc | 65 +- tests/bits/dof_tools_15d.cc | 65 +- tests/bits/dof_tools_15d_x.cc | 73 +- tests/bits/dof_tools_16a.cc | 50 +- tests/bits/dof_tools_16b.cc | 48 +- tests/bits/dof_tools_16b_x.cc | 50 +- tests/bits/dof_tools_16c.cc | 60 +- tests/bits/dof_tools_16d.cc | 63 +- tests/bits/dof_tools_16d_x.cc | 71 +- tests/bits/dof_tools_17a.cc | 38 +- tests/bits/dof_tools_17b.cc | 38 +- tests/bits/dof_tools_17b_x.cc | 40 +- tests/bits/dof_tools_17c.cc | 60 +- tests/bits/dof_tools_17d.cc | 60 +- tests/bits/dof_tools_17d_x.cc | 68 +- tests/bits/dof_tools_18a.cc | 68 +- tests/bits/dof_tools_18a_1d.cc | 68 +- tests/bits/dof_tools_18b.cc | 68 +- tests/bits/dof_tools_18b_x.cc | 70 +- tests/bits/dof_tools_18c.cc | 90 +- tests/bits/dof_tools_18d.cc | 90 +- tests/bits/dof_tools_18d_x.cc | 98 +- tests/bits/dof_tools_19.cc | 48 +- tests/bits/dof_tools_20.cc | 46 +- tests/bits/dof_tools_21.cc | 22 +- tests/bits/dof_tools_21_b.cc | 350 +- tests/bits/dof_tools_21_b/cmp/generic | 258 - tests/bits/dof_tools_21_b_x.cc | 185 + tests/bits/dof_tools_21_b_x/cmp/generic | 10 + tests/bits/dof_tools_21_b_x_q3.cc | 219 + tests/bits/dof_tools_21_b_x_q3/cmp/generic | 16 + tests/bits/dof_tools_21_b_y.cc | 184 + tests/bits/dof_tools_21_b_y/cmp/generic | 11 + tests/bits/dof_tools_common.h | 97 +- tests/bits/dof_tools_periodic.h | 87 +- tests/bits/error_estimator_01.cc | 128 +- tests/bits/error_estimator_02.cc | 128 +- tests/bits/face_interpolation.cc | 80 +- .../face_orientation_and_fe_nedelec_01.cc | 156 +- tests/bits/face_orientation_and_fe_q_01.cc | 156 +- tests/bits/face_orientation_and_fe_q_02.cc | 190 +- tests/bits/face_orientation_crash.cc | 58 +- tests/bits/faceq_face_interpolation.cc | 191 + .../bits/faceq_face_interpolation/cmp/generic | 179 + tests/bits/faceq_subface_interpolation.cc | 194 + .../faceq_subface_interpolation/cmp/generic | 507 + tests/bits/fe_face_to_cell_index.cc | 45 - tests/bits/fe_face_to_cell_index/cmp/generic | 331 - tests/bits/fe_field_function_01.cc | 43 +- tests/bits/fe_field_function_01_vector.cc | 59 +- tests/bits/fe_field_function_02.cc | 41 +- tests/bits/fe_field_function_02_vector.cc | 57 +- tests/bits/fe_field_function_03.cc | 43 +- tests/bits/fe_field_function_03_vector.cc | 43 +- tests/bits/fe_field_function_04.cc | 66 +- tests/bits/fe_field_function_04_vector.cc | 76 +- tests/bits/fe_field_function_05.cc | 84 +- tests/bits/fe_field_function_05_vector.cc | 94 +- tests/bits/fe_field_function_06_vector.cc | 94 +- tests/bits/fe_field_function_07_vector.cc | 118 +- tests/bits/fe_field_function_08_vector.cc | 112 +- tests/bits/fe_q_3d_01.cc | 98 +- tests/bits/fe_q_constraints.cc | 216 +- tests/bits/fe_system.cc | 50 +- tests/bits/fe_tools_01a.cc | 60 +- tests/bits/fe_tools_01b.cc | 62 +- tests/bits/fe_tools_01c.cc | 70 +- tests/bits/fe_tools_02.cc | 34 +- tests/bits/fe_tools_03.cc | 34 +- tests/bits/fe_tools_04.cc | 34 +- tests/bits/fe_tools_05.cc | 40 +- tests/bits/fe_tools_06.cc | 40 +- tests/bits/fe_tools_06b.cc | 67 + tests/bits/fe_tools_06b/cmp/generic | 367 + tests/bits/fe_tools_07.cc | 40 +- tests/bits/fe_tools_08.cc | 46 +- tests/bits/fe_tools_08/cmp/generic | 8 +- tests/bits/fe_tools_09.cc | 40 +- tests/bits/fe_tools_10.cc | 42 +- tests/bits/fe_tools_11.cc | 42 +- tests/bits/fe_tools_12.cc | 42 +- tests/bits/fe_tools_13.cc | 36 - tests/bits/fe_tools_13/cmp/generic | 647 - tests/bits/fe_tools_14.cc | 26 +- tests/bits/fe_tools_common.h | 194 +- tests/bits/fe_tools_cpfqpm_01.cc | 42 +- tests/bits/fe_tools_cpfqpm_01/cmp/generic | 2 +- tests/bits/fe_tools_cpfqpm_02.cc | 64 +- tests/bits/fe_tools_cpfqpm_03.cc | 42 +- tests/bits/fe_tools_cpfqpm_04.cc | 48 +- tests/bits/find_cell_1.cc | 38 +- tests/bits/find_cell_10.cc | 46 +- tests/bits/find_cell_2.cc | 38 +- tests/bits/find_cell_3.cc | 44 +- tests/bits/find_cell_4.cc | 54 +- tests/bits/find_cell_5.cc | 54 +- tests/bits/find_cell_6.cc | 64 +- tests/bits/find_cell_7.cc | 32 +- tests/bits/find_cell_8.cc | 104 +- tests/bits/find_cell_9.cc | 110 +- tests/bits/find_cell_alt_1.cc | 44 +- tests/bits/find_cell_alt_2.cc | 42 +- tests/bits/find_cell_alt_3.cc | 48 +- tests/bits/find_cell_alt_4.cc | 36 +- tests/bits/find_cell_alt_5.cc | 36 +- tests/bits/find_cell_alt_6.cc | 56 +- tests/bits/find_cell_alt_7.cc | 76 +- tests/bits/find_cells_adjacent_to_vertex_1.cc | 39 +- tests/bits/find_cells_adjacent_to_vertex_2.cc | 32 +- tests/bits/find_cells_adjacent_to_vertex_3.cc | 68 +- tests/bits/find_cells_adjacent_to_vertex_4.cc | 70 +- tests/bits/find_cells_adjacent_to_vertex_5.cc | 84 +- tests/bits/find_cells_adjacent_to_vertex_6.cc | 86 +- tests/bits/find_closest_vertex_1.cc | 38 +- tests/bits/full_matrix_01.cc | 22 +- tests/bits/full_matrix_02.cc | 28 +- tests/bits/full_matrix_03.cc | 30 +- tests/bits/full_matrix_04.cc | 33 +- tests/bits/full_matrix_05.cc | 22 +- tests/bits/full_matrix_06.cc | 24 +- tests/bits/full_matrix_07.cc | 22 +- tests/bits/full_matrix_08.cc | 24 +- tests/bits/full_matrix_09.cc | 22 +- tests/bits/full_matrix_1.cc | 28 +- tests/bits/full_matrix_10.cc | 22 +- tests/bits/full_matrix_11.cc | 22 +- tests/bits/full_matrix_12.cc | 24 +- tests/bits/full_matrix_13.cc | 24 +- tests/bits/full_matrix_14.cc | 24 +- tests/bits/full_matrix_15.cc | 22 +- tests/bits/full_matrix_16.cc | 22 +- tests/bits/full_matrix_17.cc | 22 +- tests/bits/full_matrix_18.cc | 22 +- tests/bits/full_matrix_19.cc | 24 +- tests/bits/full_matrix_20.cc | 22 +- tests/bits/full_matrix_21.cc | 22 +- tests/bits/full_matrix_22.cc | 22 +- tests/bits/full_matrix_23.cc | 22 +- tests/bits/full_matrix_24.cc | 24 +- tests/bits/full_matrix_25.cc | 22 +- tests/bits/full_matrix_26.cc | 22 +- tests/bits/full_matrix_27.cc | 22 +- tests/bits/full_matrix_28.cc | 22 +- tests/bits/full_matrix_29.cc | 22 +- tests/bits/full_matrix_30.cc | 22 +- tests/bits/full_matrix_31.cc | 22 +- tests/bits/full_matrix_32.cc | 22 +- tests/bits/full_matrix_33.cc | 22 +- tests/bits/full_matrix_34.cc | 22 +- tests/bits/full_matrix_36.cc | 22 +- tests/bits/full_matrix_37.cc | 24 +- tests/bits/full_matrix_38.cc | 22 +- tests/bits/full_matrix_39.cc | 22 +- tests/bits/full_matrix_40.cc | 22 +- tests/bits/full_matrix_41.cc | 22 +- tests/bits/full_matrix_42.cc | 33 +- tests/bits/full_matrix_43.cc | 22 +- tests/bits/full_matrix_44.cc | 22 +- tests/bits/full_matrix_45.cc | 22 +- tests/bits/full_matrix_46.cc | 22 +- tests/bits/full_matrix_47.cc | 22 +- tests/bits/full_matrix_48.cc | 22 +- tests/bits/full_matrix_49.cc | 22 +- tests/bits/full_matrix_50.cc | 22 +- tests/bits/full_matrix_51.cc | 22 +- tests/bits/full_matrix_52.cc | 22 +- tests/bits/full_matrix_53.cc | 36 +- tests/bits/full_matrix_54.cc | 22 +- tests/bits/full_matrix_55.cc | 24 +- tests/bits/full_matrix_56.cc | 90 +- tests/bits/full_matrix_57.cc | 52 +- tests/bits/full_matrix_common.h | 65 +- tests/bits/full_matrix_iterator_01.cc | 50 +- tests/bits/full_matrix_vector_01.cc | 58 +- tests/bits/full_matrix_vector_02.cc | 58 +- tests/bits/full_matrix_vector_05.cc | 58 +- tests/bits/full_matrix_vector_06.cc | 58 +- tests/bits/full_matrix_vector_07.cc | 58 +- tests/bits/gerold_1.cc | 92 +- tests/bits/gerold_2.cc | 56 +- tests/bits/get_boundary_indicators_1d.cc | 21 +- tests/bits/get_dof_indices_01.cc | 62 +- tests/bits/get_dof_indices_01/cmp/generic | 6 +- tests/bits/get_fe_from_name.cc | 75 +- tests/bits/grid_generator_01.cc | 78 +- tests/bits/grid_generator_01a.cc | 76 + tests/bits/grid_generator_01a/cmp/generic | 9218 + tests/bits/grid_generator_02.cc | 36 +- tests/bits/grid_generator_03.cc | 42 +- tests/bits/grid_generator_04.cc | 107 +- tests/bits/grid_generator_05.cc | 46 +- tests/bits/grid_generator_06.cc | 26 +- tests/bits/grid_in_msh_01.cc | 58 +- tests/bits/hp_constraints_are_implemented.cc | 28 +- tests/bits/hyper_ball_3d.cc | 44 +- tests/bits/joa_1.cc | 1924 +- tests/bits/make_boundary_constraints_01.cc | 136 +- tests/bits/make_boundary_constraints_02.cc | 132 +- .../bits/map_dofs_to_support_points_hp_01.cc | 42 +- .../bits/map_dofs_to_support_points_hp_02.cc | 34 +- tests/bits/mapping_cartesian_1.cc | 36 +- tests/bits/mapping_q1_eulerian_01.cc | 64 +- tests/bits/mapping_q4_3d.cc | 30 +- tests/bits/mapping_q_eulerian_01.cc | 64 +- tests/bits/mapping_q_eulerian_02.cc | 64 +- tests/bits/mapping_q_eulerian_03.cc | 64 +- tests/bits/mapping_q_eulerian_04.cc | 64 +- tests/bits/mapping_q_eulerian_05.cc | 78 +- tests/bits/max_n_cells_01.cc | 30 +- tests/bits/max_n_cells_02.cc | 34 +- tests/bits/mesh_3d.h | 95 +- tests/bits/mesh_3d_1.cc | 30 +- tests/bits/mesh_3d_10.cc | 44 +- tests/bits/mesh_3d_11.cc | 44 +- tests/bits/mesh_3d_12.cc | 46 +- tests/bits/mesh_3d_13.cc | 56 +- tests/bits/mesh_3d_14.cc | 66 +- tests/bits/mesh_3d_15.cc | 78 +- tests/bits/mesh_3d_16.cc | 66 +- tests/bits/mesh_3d_17.cc | 74 +- tests/bits/mesh_3d_18.cc | 82 +- tests/bits/mesh_3d_19.cc | 26 +- tests/bits/mesh_3d_2.cc | 36 +- tests/bits/mesh_3d_20.cc | 120 +- tests/bits/mesh_3d_21.cc | 130 +- tests/bits/mesh_3d_22.cc | 94 +- tests/bits/mesh_3d_23.cc | 22 +- tests/bits/mesh_3d_24.cc | 48 +- tests/bits/mesh_3d_25.cc | 94 +- tests/bits/mesh_3d_26.cc | 98 +- tests/bits/mesh_3d_3.cc | 39 +- tests/bits/mesh_3d_4.cc | 54 +- tests/bits/mesh_3d_5.cc | 48 +- tests/bits/mesh_3d_6.cc | 82 +- tests/bits/mesh_3d_7.cc | 78 +- tests/bits/mesh_3d_8.cc | 44 +- tests/bits/mesh_3d_9.cc | 44 +- tests/bits/multiple_parameter_loop_01.cc | 60 +- tests/bits/multiple_parameter_loop_02.cc | 60 +- tests/bits/n_dofs_per_object.cc | 34 +- tests/bits/nedelec_1.cc | 28 +- tests/bits/neighboring_cells_at_two_faces.cc | 51 +- tests/bits/normals_1.cc | 60 +- tests/bits/normals_2.cc | 52 +- tests/bits/normals_3.cc | 54 +- tests/bits/normals_4.cc | 50 +- tests/bits/oliver_01.cc | 28 +- tests/bits/parameter_handler_1.cc | 26 +- tests/bits/parameter_handler_10.cc | 26 +- tests/bits/parameter_handler_11.cc | 26 +- tests/bits/parameter_handler_12.cc | 22 +- tests/bits/parameter_handler_13.cc | 26 +- tests/bits/parameter_handler_14.cc | 24 +- tests/bits/parameter_handler_14/cmp/generic | 1 - tests/bits/parameter_handler_2.cc | 26 +- tests/bits/parameter_handler_3.cc | 62 +- tests/bits/parameter_handler_4.cc | 62 +- tests/bits/parameter_handler_4a.cc | 104 +- tests/bits/parameter_handler_4b.cc | 44 +- tests/bits/parameter_handler_5.cc | 54 +- tests/bits/parameter_handler_6.cc | 66 +- tests/bits/parameter_handler_6_bool.cc | 92 + .../bits/parameter_handler_6_bool/cmp/generic | 17 + tests/bits/parameter_handler_6_bool/prm | 3 + tests/bits/parameter_handler_7.cc | 52 +- tests/bits/parameter_handler_8.cc | 104 +- tests/bits/parameter_handler_9.cc | 104 +- tests/bits/parameter_handler_read_xml.cc | 68 +- .../parameter_handler_read_xml_error_01.cc | 68 +- .../parameter_handler_read_xml_error_02.cc | 68 +- .../parameter_handler_read_xml_error_03.cc | 68 +- .../parameter_handler_read_xml_error_04.cc | 68 +- tests/bits/parameter_handler_write_json.cc | 64 +- tests/bits/parameter_handler_write_xml.cc | 64 +- tests/bits/parsed_function.cc | 121 +- tests/bits/periodicity_01.cc | 77 + tests/bits/periodicity_01/cmp/generic | 7 + tests/bits/periodicity_02.cc | 82 + tests/bits/periodicity_02/cmp/generic | 23 + tests/bits/periodicity_03.cc | 84 + tests/bits/periodicity_03/cmp/generic | 41 + tests/bits/periodicity_04.cc | 92 + tests/bits/periodicity_04/cmp/generic | 41 + tests/bits/periodicity_05.cc | 168 + tests/bits/periodicity_05/cmp/generic | 56 + tests/bits/point_difference_01.cc | 118 +- tests/bits/point_difference_02.cc | 118 +- tests/bits/point_inside_1.cc | 61 +- tests/bits/point_inside_2.cc | 94 +- tests/bits/point_value_01.cc | 120 +- tests/bits/point_value_02.cc | 120 +- tests/bits/point_value_hp_01.cc | 123 +- tests/bits/point_value_hp_02.cc | 127 +- tests/bits/q_point_sum_1.cc | 64 +- tests/bits/q_point_sum_2.cc | 64 +- tests/bits/q_point_sum_3.cc | 70 +- tests/bits/q_point_sum_4.cc | 54 +- tests/bits/q_points.cc | 56 +- tests/bits/refine_and_coarsen_1d.cc | 44 +- tests/bits/refine_and_coarsen_2d.cc | 44 +- tests/bits/refine_and_coarsen_3d.cc | 44 +- tests/bits/refine_and_coarsen_for_parents.cc | 56 +- .../bits/refine_and_coarsen_for_parents_02.cc | 56 +- .../bits/refine_and_coarsen_for_parents_03.cc | 56 +- tests/bits/roy_1.cc | 47 +- tests/bits/rt_1.cc | 26 +- tests/bits/rt_2.cc | 168 +- tests/bits/solution_transfer.cc | 71 +- tests/bits/solver_01.cc | 19253 +- tests/bits/sparse_lu_decomposition_1.cc | 28 +- tests/bits/sparse_matrix_01.cc | 56 +- tests/bits/sparse_matrix_01a.cc | 56 +- tests/bits/sparse_matrix_02.cc | 54 +- tests/bits/sparse_matrix_03.cc | 58 +- tests/bits/sparse_matrix_03a.cc | 62 +- tests/bits/sparse_matrix_03b.cc | 62 +- tests/bits/sparse_matrix_04.cc | 52 +- tests/bits/sparse_matrix_05.cc | 66 +- tests/bits/sparse_matrix_05a.cc | 52 +- tests/bits/sparse_matrix_06.cc | 64 +- tests/bits/sparse_matrix_07.cc | 64 +- tests/bits/sparse_matrix_08.cc | 62 +- tests/bits/sparse_matrix_09.cc | 62 +- tests/bits/sparse_matrix_10.cc | 62 +- tests/bits/sparse_matrix_add_entries_01.cc | 82 +- tests/bits/sparse_matrix_add_entries_02.cc | 76 +- tests/bits/sparse_matrix_add_entries_03.cc | 78 +- tests/bits/sparse_matrix_add_entries_04.cc | 76 +- tests/bits/sparse_matrix_add_entries_05.cc | 76 +- tests/bits/sparse_matrix_add_entries_06.cc | 82 +- tests/bits/sparse_matrix_iterator_01.cc | 52 +- tests/bits/sparse_matrix_iterator_02.cc | 52 +- tests/bits/sparse_matrix_iterator_03.cc | 52 +- tests/bits/sparse_matrix_iterator_04.cc | 54 +- tests/bits/sparse_matrix_iterator_05.cc | 54 +- tests/bits/sparse_matrix_iterator_06.cc | 54 +- tests/bits/sparse_matrix_iterator_07.cc | 54 +- tests/bits/sparse_matrix_iterator_08.cc | 54 +- tests/bits/sparse_matrix_iterator_09.cc | 58 +- tests/bits/sparse_matrix_iterator_10.cc | 58 +- tests/bits/sparse_matrix_iterator_11.cc | 60 +- tests/bits/sparse_matrix_iterator_12.cc | 58 +- tests/bits/sparse_matrix_iterator_13.cc | 64 +- tests/bits/sparse_matrix_vector_01.cc | 64 +- tests/bits/sparse_matrix_vector_02.cc | 64 +- tests/bits/sparse_matrix_vector_03.cc | 64 +- tests/bits/sparse_matrix_vector_04.cc | 64 +- tests/bits/sparse_matrix_vector_05.cc | 64 +- tests/bits/sparse_matrix_vector_06.cc | 64 +- tests/bits/sparse_matrix_vector_07.cc | 64 +- tests/bits/sparsity_pattern_01.cc | 26 +- tests/bits/sparsity_pattern_01_x.cc | 26 +- tests/bits/sparsity_pattern_iterator_01.cc | 54 +- tests/bits/step-10.cc | 146 +- tests/bits/step-11.cc | 166 +- tests/bits/step-12.cc | 902 +- tests/bits/step-13.cc | 644 +- tests/bits/step-13/cmp/generic | 26 +- tests/bits/step-14.cc | 1937 +- tests/bits/step-15.cc | 260 +- tests/bits/step-16.cc | 246 +- tests/bits/step-16b.cc | 246 +- tests/bits/step-2.cc | 68 +- tests/bits/step-3.cc | 156 +- tests/bits/step-4.cc | 208 +- tests/bits/step-5.cc | 254 +- tests/bits/step-6.cc | 276 +- tests/bits/step-7.cc | 665 +- tests/bits/step-8.cc | 372 +- tests/bits/subdomain_ids_01.cc | 58 +- tests/bits/subdomain_ids_02.cc | 70 +- tests/bits/subdomain_ids_03.cc | 48 +- tests/bits/subdomain_ids_04.cc | 64 +- tests/bits/subdomain_ids_05.cc | 54 +- tests/bits/subdomain_ids_06.cc | 54 +- tests/bits/subdomain_ids_07.cc | 60 +- tests/bits/subface_interpolation.cc | 136 +- tests/bits/tria_crash_01.cc | 42 +- tests/bits/unit_support_points.cc | 56 +- tests/bits/unit_support_points_02.cc | 24 +- tests/bits/vector_11.cc | 56 +- tests/bits/vector_12.cc | 64 +- tests/bits/vector_13.cc | 64 +- tests/bits/vector_14.cc | 70 +- tests/bits/vector_15.cc | 68 +- tests/bits/vector_16.cc | 68 +- tests/bits/vector_17.cc | 56 +- tests/bits/vector_18.cc | 56 +- tests/bits/vector_19.cc | 56 +- tests/bits/vector_20.cc | 68 +- tests/bits/vector_21.cc | 68 +- tests/bits/vector_21_negative.cc | 68 +- tests/bits/vector_22.cc | 58 +- tests/bits/vector_23.cc | 62 +- tests/bits/vector_24.cc | 58 +- tests/bits/vector_25.cc | 58 +- tests/bits/vector_26.cc | 54 +- tests/bits/vector_27.cc | 64 +- tests/bits/vector_28.cc | 64 +- tests/bits/vector_29.cc | 54 +- tests/bits/vector_30.cc | 58 +- tests/bits/vector_31.cc | 56 +- tests/bits/vector_32.cc | 56 +- tests/bits/vector_33.cc | 56 +- tests/bits/vector_34.cc | 58 +- tests/bits/vector_35.cc | 62 +- tests/bits/vector_36.cc | 62 +- tests/bits/vector_37.cc | 56 +- tests/bits/vector_38.cc | 58 +- tests/bits/vector_39.cc | 58 +- tests/bits/vector_40.cc | 56 +- tests/bits/vector_41.cc | 58 +- tests/bits/vector_42.cc | 58 +- tests/bits/vector_43.cc | 56 +- tests/bits/vector_44.cc | 56 +- tests/bits/vector_45.cc | 56 +- tests/bits/vector_46.cc | 56 +- tests/bits/vector_47.cc | 56 +- tests/bits/vector_48.cc | 56 +- tests/bits/vector_49.cc | 62 +- tests/bits/vector_57.cc | 64 +- tests/bits/vector_equality_1.cc | 54 +- tests/bits/vector_equality_2.cc | 58 +- tests/bits/vector_equality_3.cc | 54 +- tests/bits/vector_equality_4.cc | 58 +- tests/bits/vector_equality_5.cc | 54 +- tests/bits/vector_equality_6.cc | 58 +- tests/bits/vector_equality_7.cc | 54 +- tests/bits/vector_equality_8.cc | 58 +- tests/bits/vector_vector_01.cc | 54 +- tests/bits/volume_1.cc | 60 +- tests/bits/volume_2.cc | 52 +- tests/bits/volume_3.cc | 54 +- tests/bits/volume_4.cc | 50 +- tests/codim_one/bem.cc | 1169 +- tests/codim_one/bem_integration.cc | 275 +- tests/codim_one/boundary_indicator_01.cc | 84 +- tests/codim_one/data_out.cc | 36 +- tests/codim_one/data_out_02.cc | 25 +- tests/codim_one/data_out_03.cc | 79 +- tests/codim_one/direction_flag_01.cc | 36 +- tests/codim_one/direction_flag_02.cc | 36 +- tests/codim_one/direction_flag_03.cc | 26 +- tests/codim_one/error_estimator_01.cc | 134 +- tests/codim_one/extract_boundary_mesh_00.cc | 108 +- tests/codim_one/extract_boundary_mesh_01.cc | 103 +- tests/codim_one/extract_boundary_mesh_02.cc | 76 +- tests/codim_one/extract_boundary_mesh_03.cc | 112 +- tests/codim_one/extract_boundary_mesh_04.cc | 114 +- tests/codim_one/extract_boundary_mesh_05.cc | 42 +- tests/codim_one/extract_boundary_mesh_06.cc | 30 +- tests/codim_one/extract_boundary_mesh_07.cc | 54 +- tests/codim_one/fe_dgq_prolongation_01.cc | 26 +- tests/codim_one/fe_values_extractor_01.cc | 72 +- tests/codim_one/gradients.cc | 142 +- tests/codim_one/gradients_1.cc | 62 +- tests/codim_one/grid_in_out.cc | 46 +- tests/codim_one/grid_in_out_02.cc | 42 +- tests/codim_one/grid_in_out_03.cc | 42 +- tests/codim_one/grid_refinement.cc | 34 +- tests/codim_one/hanging_nodes_01.cc | 30 +- tests/codim_one/hanging_nodes_02.cc | 56 +- tests/codim_one/hanging_nodes_03.cc | 50 +- tests/codim_one/integrate_log.cc | 158 +- tests/codim_one/integrate_log_2.cc | 285 +- tests/codim_one/integrate_one_over_r.cc | 483 +- .../interpolate_boundary_values_01.cc | 108 +- ...polate_boundary_values_01_vector_valued.cc | 124 +- .../interpolate_boundary_values_02.cc | 112 +- ...polate_boundary_values_02_vector_valued.cc | 128 +- .../interpolate_boundary_values_03.cc | 92 +- ...erpolate_boundary_values_1d_closed_ring.cc | 106 +- tests/codim_one/interpolation.cc | 53 +- tests/codim_one/interpolation_2.cc | 35 +- tests/codim_one/interpolation_3.cc | 45 +- tests/codim_one/mapping_01.cc | 40 +- tests/codim_one/mapping_02.cc | 40 +- tests/codim_one/mapping_03.cc | 30 +- tests/codim_one/mapping_q1.cc | 64 +- tests/codim_one/mapping_q1_eulerian.cc | 66 +- tests/codim_one/mapping_q_eulerian.cc | 78 +- tests/codim_one/mean_value.cc | 30 +- tests/codim_one/mesh_bug.cc | 35 +- tests/codim_one/normal_vectors_01.cc | 56 +- tests/codim_one/projection.cc | 35 +- tests/codim_one/projection_dgp.cc | 39 +- tests/codim_one/renumber_component_wise_01.cc | 29 +- tests/codim_one/solution_transfer_01.cc | 36 +- tests/codim_one/surface.cc | 133 +- tests/codim_one/tensor_matrix_conversion.cc | 76 +- tests/codim_one/torus_01.cc | 22 +- tests/codim_one/transform_01.cc | 42 +- tests/deal.II/accessor_01.cc | 37 +- tests/deal.II/accessor_02.cc | 37 +- tests/deal.II/block_info.cc | 61 +- tests/deal.II/block_info_02.cc | 63 +- tests/deal.II/block_list.h | 43 +- tests/deal.II/block_list_01.cc | 44 +- tests/deal.II/block_list_02.cc | 24 +- tests/deal.II/block_list_03.cc | 30 +- tests/deal.II/block_list_04.cc | 30 +- tests/deal.II/block_matrices.cc | 384 +- tests/deal.II/boundaries.cc | 120 +- tests/deal.II/cell_similarity_crash_01.cc | 36 +- tests/deal.II/cell_similarity_crash_02.cc | 30 +- tests/deal.II/coarsening_02.cc | 94 +- tests/deal.II/coarsening_02_1d.cc | 118 +- tests/deal.II/coarsening_03.cc | 78 +- tests/deal.II/constraint_graph.cc | 32 +- tests/deal.II/constraints.cc | 469 +- tests/deal.II/constraints_block_01.cc | 299 +- tests/deal.II/constraints_hanging_nodes_bc.cc | 96 +- tests/deal.II/constraints_local_to_global.cc | 62 +- .../constraints_local_to_global_chunk.cc | 58 +- tests/deal.II/constraints_merge.cc | 66 +- tests/deal.II/constraints_merge_02.cc | 70 +- tests/deal.II/constraints_merge_03.cc | 72 +- tests/deal.II/constraints_merge_04.cc | 72 +- tests/deal.II/constraints_merge_05.cc | 72 +- tests/deal.II/constraints_merge_06.cc | 72 +- tests/deal.II/constraints_merge_07.cc | 72 +- tests/deal.II/constraints_merge_08.cc | 76 +- tests/deal.II/constraints_merge_09.cc | 80 +- tests/deal.II/create_laplace_matrix_01.cc | 74 +- tests/deal.II/create_laplace_matrix_01b.cc | 70 +- tests/deal.II/create_laplace_matrix_02.cc | 76 +- tests/deal.II/create_laplace_matrix_02b.cc | 70 +- tests/deal.II/create_laplace_matrix_03.cc | 76 +- tests/deal.II/create_laplace_matrix_03b.cc | 72 +- tests/deal.II/create_laplace_matrix_04.cc | 78 +- tests/deal.II/create_laplace_matrix_04b.cc | 74 +- .../create_laplace_matrix_constraints_01.cc | 143 + .../cmp/generic | 7 + .../create_laplace_matrix_constraints_02.cc | 147 + .../cmp/generic | 7 + .../create_laplace_matrix_constraints_02b.cc | 140 + .../cmp/generic | 4 + .../create_laplace_matrix_constraints_03.cc | 144 + .../cmp/generic | 7 + .../create_laplace_matrix_constraints_04.cc | 148 + .../cmp/generic | 7 + tests/deal.II/create_mass_matrix_01.cc | 64 +- tests/deal.II/create_mass_matrix_01b.cc | 70 +- tests/deal.II/create_mass_matrix_02.cc | 76 +- tests/deal.II/create_mass_matrix_02b.cc | 70 +- tests/deal.II/create_mass_matrix_03.cc | 76 +- tests/deal.II/create_mass_matrix_03b.cc | 72 +- tests/deal.II/create_mass_matrix_04.cc | 78 +- tests/deal.II/create_mass_matrix_04b.cc | 74 +- tests/deal.II/create_mass_matrix_05.cc | 70 +- .../create_mass_matrix_constraints_01.cc | 143 + .../cmp/generic | 7 + .../create_mass_matrix_constraints_02.cc | 147 + .../cmp/generic | 7 + .../create_mass_matrix_constraints_02b.cc | 140 + .../cmp/generic | 4 + .../create_mass_matrix_constraints_03.cc | 144 + .../cmp/generic | 7 + .../create_mass_matrix_constraints_04.cc | 148 + .../cmp/generic | 7 + tests/deal.II/create_point_source.cc | 30 +- tests/deal.II/create_point_source_hp.cc | 32 +- tests/deal.II/data_out.cc | 74 +- tests/deal.II/data_out_postprocessor_01.cc | 168 +- .../data_out_postprocessor_scalar_01.cc | 142 +- .../data_out_postprocessor_vector_01.cc | 144 +- tests/deal.II/derivative_approximation.cc | 38 +- tests/deal.II/derivative_approximation_2.cc | 218 +- tests/deal.II/derivatives.cc | 166 +- tests/deal.II/distort_random.cc | 22 +- tests/deal.II/dof_accessor_01.cc | 25 +- tests/deal.II/dof_handler_number_cache.cc | 70 +- tests/deal.II/dof_handler_number_cache_02.cc | 78 +- tests/deal.II/dof_renumbering.cc | 70 +- tests/deal.II/dof_renumbering_02.cc | 70 +- tests/deal.II/dof_renumbering_03.cc | 42 +- tests/deal.II/dof_renumbering_04.cc | 42 +- tests/deal.II/dof_renumbering_04a.cc | 30 +- tests/deal.II/dof_renumbering_05.cc | 42 +- tests/deal.II/dof_renumbering_06.cc | 42 +- tests/deal.II/dof_renumbering_07.cc | 44 +- tests/deal.II/dof_renumbering_zorder_01.cc | 40 +- tests/deal.II/dof_renumbering_zorder_02.cc | 46 +- tests/deal.II/dof_test.cc | 360 +- tests/deal.II/error_estimator.cc | 64 +- tests/deal.II/error_estimator_01.cc | 36 +- tests/deal.II/extent_in_direction.cc | 100 +- tests/deal.II/extract_dofs_by_component_01.cc | 58 +- .../extract_dofs_by_component_01_hp.cc | 60 +- .../extract_dofs_by_component_01_mg.cc | 64 +- .../deal.II/extract_dofs_by_component_01x.cc | 32 +- .../deal.II/extract_dofs_by_component_01y.cc | 30 +- tests/deal.II/extract_dofs_by_component_02.cc | 58 +- .../extract_dofs_by_component_02_hp.cc | 60 +- .../extract_dofs_by_component_02_mg.cc | 64 +- tests/deal.II/extract_dofs_by_component_03.cc | 48 +- tests/deal.II/extract_dofs_by_component_04.cc | 66 +- tests/deal.II/extract_dofs_by_component_05.cc | 30 +- .../extract_dofs_by_component_05_hp.cc | 32 +- tests/deal.II/extract_dofs_by_component_06.cc | 30 +- .../extract_dofs_by_component_06_hp.cc | 32 +- tests/deal.II/face_orientations_3d.cc | 38 +- tests/deal.II/fe_field.cc | 58 +- tests/deal.II/fe_values_extractor_01.cc | 22 +- tests/deal.II/fe_values_view_01.cc | 90 +- tests/deal.II/fe_values_view_02.cc | 144 +- tests/deal.II/fe_values_view_03.cc | 102 +- tests/deal.II/fe_values_view_04.cc | 140 +- tests/deal.II/fe_values_view_05.cc | 56 +- tests/deal.II/fe_values_view_06.cc | 58 +- tests/deal.II/fe_values_view_07.cc | 58 +- tests/deal.II/fe_values_view_08.cc | 56 +- tests/deal.II/fe_values_view_09.cc | 56 +- tests/deal.II/fe_values_view_10.cc | 58 +- tests/deal.II/fe_values_view_10_single_01.cc | 56 +- tests/deal.II/fe_values_view_10_single_02.cc | 56 +- tests/deal.II/fe_values_view_10_single_03.cc | 56 +- tests/deal.II/fe_values_view_10_single_04.cc | 58 +- tests/deal.II/fe_values_view_11.cc | 74 +- tests/deal.II/fe_values_view_12.cc | 76 +- tests/deal.II/fe_values_view_13.cc | 76 +- tests/deal.II/fe_values_view_14.cc | 78 +- tests/deal.II/fe_values_view_15.cc | 76 +- tests/deal.II/fe_values_view_16.cc | 78 +- tests/deal.II/fe_values_view_17.cc | 84 +- tests/deal.II/fe_values_view_18.cc | 86 +- tests/deal.II/fe_values_view_19.cc | 84 +- tests/deal.II/fe_values_view_20.cc | 88 +- tests/deal.II/fe_values_view_21.cc | 124 +- .../deal.II/fe_values_view_21_nonsymmetric.cc | 220 + .../cmp/generic | 9 + .../fe_values_view_09/cmp/generic | 91 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 140595 +++++++++++++++ .../cmp/x86_64-unknown-linux-gnu+gcc4.2 | 140595 +++++++++++++++ tests/deal.II/fe_values_view_22.cc | 353 +- tests/deal.II/fe_values_view_23.cc | 60 +- .../deal.II/fe_values_view_23_nonsymmetric.cc | 114 + .../cmp/generic | 51 + .../fe_values_view_09/cmp/generic | 91 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 140595 +++++++++++++++ .../cmp/x86_64-unknown-linux-gnu+gcc4.2 | 140595 +++++++++++++++ tests/deal.II/fe_values_view_24.cc | 52 +- .../deal.II/fe_values_view_24_nonsymmetric.cc | 108 + .../cmp/generic | 1371 + .../fe_values_view_09/cmp/generic | 91 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 140595 +++++++++++++++ .../cmp/x86_64-unknown-linux-gnu+gcc4.2 | 140595 +++++++++++++++ tests/deal.II/fe_values_view_25.cc | 48 +- .../deal.II/fe_values_view_25_nonsymmetric.cc | 106 + .../cmp/generic | 2026 + .../fe_values_view_09/cmp/generic | 91 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 140595 +++++++++++++++ .../cmp/x86_64-unknown-linux-gnu+gcc4.2 | 140595 +++++++++++++++ tests/deal.II/fe_values_view_invalid_01.cc | 30 +- tests/deal.II/fe_values_view_invalid_02.cc | 30 +- tests/deal.II/fe_values_view_invalid_03.cc | 30 +- .../fe_values_view_invalid_03_nonsymmetric.cc | 91 + .../cmp/generic | 4 + tests/deal.II/fe_values_view_tensor_01.cc | 243 + .../fe_values_view_tensor_01/cmp/generic | 27 + .../fe_values_view_09/cmp/generic | 91 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 140595 +++++++++++++++ .../cmp/x86_64-unknown-linux-gnu+gcc4.2 | 140595 +++++++++++++++ tests/deal.II/filtered_iterator.cc | 202 +- tests/deal.II/filtered_iterator_02.cc | 202 +- tests/deal.II/filtered_iterator_03.cc | 72 +- tests/deal.II/filtered_matrix.cc | 155 +- tests/deal.II/get_finest_common_cells_01.cc | 39 +- tests/deal.II/get_finest_common_cells_02.cc | 41 +- tests/deal.II/get_finest_common_cells_03.cc | 41 +- tests/deal.II/get_finest_common_cells_04.cc | 41 +- tests/deal.II/grid_generator_01.cc | 36 +- tests/deal.II/grid_hyper_shell.cc | 50 +- tests/deal.II/grid_hyper_shell_02.cc | 24 +- tests/deal.II/grid_hyper_shell_03.cc | 24 +- tests/deal.II/grid_hyper_shell_04.cc | 24 +- tests/deal.II/grid_hyper_shell_05.cc | 40 +- tests/deal.II/grid_in.cc | 76 +- tests/deal.II/grid_in_02.cc | 58 +- tests/deal.II/grid_in_3d.cc | 34 +- tests/deal.II/grid_in_3d_02.cc | 26 +- tests/deal.II/grid_in_msh.cc | 30 +- tests/deal.II/grid_in_msh_02.cc | 30 +- tests/deal.II/grid_in_msh_03.cc | 30 +- tests/deal.II/grid_in_msh_version_1.cc | 30 +- tests/deal.II/grid_in_msh_version_2.cc | 30 +- tests/deal.II/grid_in_tecplot.cc | 28 +- tests/deal.II/grid_in_unv_2d.cc | 30 +- tests/deal.II/grid_in_unv_3d.cc | 30 +- tests/deal.II/grid_invert.cc | 34 +- tests/deal.II/grid_out.cc | 28 +- tests/deal.II/grid_out_02.cc | 25 +- tests/deal.II/grid_out_03.cc | 22 +- tests/deal.II/grid_out_04.cc | 22 +- tests/deal.II/grid_out_05.cc | 22 +- tests/deal.II/grid_output_input.cc | 36 +- tests/deal.II/grid_parallelepiped.cc | 30 +- tests/deal.II/grid_parallelepiped_01.cc | 42 +- tests/deal.II/grid_parallelepiped_02.cc | 76 +- tests/deal.II/grid_parallelepiped_03.cc | 30 +- tests/deal.II/grid_test.cc | 310 +- tests/deal.II/grid_tools.cc | 66 +- tests/deal.II/grid_tools_02.cc | 42 +- tests/deal.II/grid_tools_03.cc | 68 +- tests/deal.II/grid_tools_04.cc | 42 +- tests/deal.II/grid_tools_05.cc | 316 +- tests/deal.II/grid_transform.cc | 112 +- tests/deal.II/grid_transform_3d.cc | 80 +- tests/deal.II/have_same_coarse_mesh_01.cc | 31 +- tests/deal.II/have_same_coarse_mesh_02.cc | 35 +- tests/deal.II/have_same_coarse_mesh_03.cc | 35 +- tests/deal.II/have_same_coarse_mesh_04.cc | 35 +- tests/deal.II/helmholtz.h | 22 +- tests/deal.II/inhomogeneous_constraints.cc | 688 +- tests/deal.II/inhomogeneous_constraints_02.cc | 42 +- tests/deal.II/inhomogeneous_constraints_03.cc | 48 +- tests/deal.II/inhomogeneous_constraints_04.cc | 80 +- .../inhomogeneous_constraints_block.cc | 380 +- .../inhomogeneous_constraints_nonsymmetric.cc | 328 +- .../inhomogeneous_constraints_vector.cc | 218 +- tests/deal.II/intergrid_constraints.cc | 288 +- tests/deal.II/intergrid_map.cc | 100 +- .../deal.II/interpolate_boundary_values_01.cc | 108 +- .../deal.II/interpolate_boundary_values_02.cc | 28 +- tests/deal.II/interpolate_dgq_01.cc | 96 +- tests/deal.II/interpolate_dgq_02.cc | 102 +- tests/deal.II/interpolate_q_01.cc | 96 +- tests/deal.II/interpolate_q_02.cc | 102 +- tests/deal.II/interpolate_q_system_01.cc | 96 +- tests/deal.II/interpolate_q_system_02.cc | 98 +- tests/deal.II/kelly_crash_02.cc | 325 +- tests/deal.II/line_coarsening_3d.cc | 58 +- tests/deal.II/matrices.cc | 176 +- tests/deal.II/maximal_cell_diameter.cc | 70 +- tests/deal.II/measure_et_al.cc | 90 +- tests/deal.II/measure_et_al_02.cc | 102 +- tests/deal.II/memory_consumption_01.cc | 138 +- .../deal.II/memory_consumption_01/cmp/generic | 54 +- tests/deal.II/merge_triangulations_01.cc | 58 +- tests/deal.II/mesh_smoothing_02.cc | 94 +- tests/deal.II/mesh_smoothing_03.cc | 120 +- tests/deal.II/mg_dof_handler.cc | 30 +- tests/deal.II/minimal_cell_diameter.cc | 54 +- tests/deal.II/newton_01.cc | 128 +- tests/deal.II/no_flux_01.cc | 38 +- tests/deal.II/no_flux_02.cc | 42 +- tests/deal.II/no_flux_03.cc | 32 +- tests/deal.II/no_flux_04.cc | 78 +- tests/deal.II/no_flux_05.cc | 34 +- tests/deal.II/no_flux_06.cc | 36 +- tests/deal.II/no_flux_07.cc | 32 +- tests/deal.II/no_flux_08.cc | 30 +- tests/deal.II/no_flux_09.cc | 22 +- tests/deal.II/no_flux_10.cc | 105 +- tests/deal.II/no_flux_hp_01.cc | 35 +- tests/deal.II/no_flux_hp_02.cc | 40 +- tests/deal.II/no_flux_hp_03.cc | 29 +- tests/deal.II/no_flux_hp_04.cc | 76 +- tests/deal.II/no_flux_hp_05.cc | 35 +- tests/deal.II/normal_vector_01.cc | 76 +- tests/deal.II/normal_vector_01_2d.cc | 76 +- tests/deal.II/normal_vector_02.cc | 48 +- tests/deal.II/normal_vector_02_2d.cc | 48 +- tests/deal.II/normal_vector_03.cc | 112 +- tests/deal.II/normal_vector_03_2d.cc | 112 +- tests/deal.II/normals_at_vertices_01.cc | 82 +- tests/deal.II/normals_at_vertices_02.cc | 54 +- tests/deal.II/number_cache_01.cc | 56 +- tests/deal.II/number_cache_02.cc | 64 +- tests/deal.II/number_cache_03.cc | 46 +- tests/deal.II/point_value_history_01.cc | 377 +- tests/deal.II/point_value_history_02.cc | 583 +- tests/deal.II/point_value_history_03.cc | 535 +- tests/deal.II/project_01.cc | 57 +- tests/deal.II/project_01/cmp/generic | 8 + tests/deal.II/project_01_curved_boundary.cc | 175 + .../project_01_curved_boundary/cmp/generic | 165 + .../cmp/i686-pc-linux-gnu+gcc4.2 | 577 + .../cmp/i686-pc-linux-gnu+gcc4.3 | 577 + .../cmp/i686-pc-linux-gnu+gcc4.4 | 577 + .../cmp/powerpc-apple-darwin8.8.0+gcc4.0 | 577 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 577 + tests/deal.II/project_02.cc | 57 +- tests/deal.II/project_02/cmp/generic | 8 + tests/deal.II/project_boundary_rt_01.cc | 164 +- tests/deal.II/project_bv_curl_conf.cc | 57 +- tests/deal.II/project_bv_div_conf.cc | 55 +- tests/deal.II/project_common.h | 205 +- tests/deal.II/project_dgp_01.cc | 22 +- tests/deal.II/project_dgp_02.cc | 22 +- tests/deal.II/project_dgp_03.cc | 22 +- tests/deal.II/project_dgp_04.cc | 22 +- tests/deal.II/project_dgp_05.cc | 22 +- tests/deal.II/project_dgp_monomial_01.cc | 22 +- tests/deal.II/project_dgp_monomial_02.cc | 22 +- tests/deal.II/project_dgp_monomial_03.cc | 22 +- tests/deal.II/project_dgp_monomial_04.cc | 22 +- tests/deal.II/project_dgp_monomial_05.cc | 22 +- tests/deal.II/project_dgq_01.cc | 22 +- tests/deal.II/project_dgq_02.cc | 22 +- tests/deal.II/project_dgq_03.cc | 22 +- tests/deal.II/project_dgq_04.cc | 22 +- tests/deal.II/project_dgq_05.cc | 22 +- tests/deal.II/project_nedelec_01.cc | 24 +- tests/deal.II/project_nedelec_02.cc | 24 +- tests/deal.II/project_nedelec_03.cc | 24 +- tests/deal.II/project_nedelec_04.cc | 24 +- tests/deal.II/project_nedelec_05.cc | 24 +- tests/deal.II/project_q_01.cc | 22 +- tests/deal.II/project_q_02.cc | 22 +- tests/deal.II/project_q_03.cc | 22 +- tests/deal.II/project_q_04.cc | 22 +- tests/deal.II/project_q_05.cc | 22 +- tests/deal.II/project_q_hierarchical_01.cc | 22 +- tests/deal.II/project_q_hierarchical_02.cc | 22 +- tests/deal.II/project_q_hierarchical_03.cc | 22 +- tests/deal.II/project_q_hierarchical_04.cc | 22 +- tests/deal.II/project_q_hierarchical_05.cc | 22 +- tests/deal.II/project_q_system_01.cc | 26 +- tests/deal.II/project_q_system_02.cc | 26 +- tests/deal.II/project_q_system_03.cc | 26 +- tests/deal.II/project_q_system_04.cc | 26 +- tests/deal.II/project_q_system_05.cc | 26 +- tests/deal.II/project_rt_01.cc | 28 +- tests/deal.II/project_rt_02.cc | 28 +- tests/deal.II/project_rt_04.cc | 28 +- tests/deal.II/project_rt_05.cc | 28 +- tests/deal.II/project_to_surface_01.cc | 108 +- tests/deal.II/project_to_surface_02.cc | 124 +- tests/deal.II/project_to_surface_03.cc | 108 +- tests/deal.II/recursively_set_material_id.cc | 78 +- tests/deal.II/refinement_listener_01.cc | 110 +- tests/deal.II/refinement_listener_02.cc | 86 +- tests/deal.II/refinement_listener_03.cc | 106 +- tests/deal.II/rt_covariant.cc | 30 +- tests/deal.II/rt_hessian.cc | 44 +- tests/deal.II/sparsity_pattern.cc | 116 +- tests/deal.II/sparsity_pattern_01.cc | 116 +- tests/deal.II/sparsity_pattern_01_x.cc | 116 +- tests/deal.II/sparsity_pattern_02.cc | 40 +- tests/deal.II/sparsity_pattern_03.cc | 38 +- tests/deal.II/sparsity_pattern_04.cc | 38 +- tests/deal.II/sparsity_pattern_05.cc | 78 +- tests/deal.II/sparsity_pattern_05_x.cc | 78 +- tests/deal.II/sparsity_pattern_x.cc | 116 +- tests/deal.II/subcelldata.cc | 89 +- tests/deal.II/subdomain_ids.cc | 170 +- tests/deal.II/subdomain_on_refinement.cc | 36 +- tests/deal.II/time_dependent_01.cc | 46 +- .../deal.II/tria_iterator_with_one_header.cc | 22 +- tests/deal.II/tria_last.cc | 76 + tests/deal.II/tria_last/cmp/generic | 4 + .../tria_last/cmp/i686-pc-linux-gnu+gcc4.2 | 3083 + .../tria_last/cmp/i686-pc-linux-gnu+gcc4.3 | 3083 + .../tria_last/cmp/i686-pc-linux-gnu+gcc4.4 | 3083 + .../cmp/powerpc-apple-darwin8.8.0+gcc4.0 | 3083 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 3083 + tests/deal.II/union_triangulation.cc | 44 +- tests/deal.II/user_data_01.cc | 220 +- tests/deal.II/vectors_boundary_rhs_01.cc | 72 +- tests/deal.II/vectors_boundary_rhs_02.cc | 70 +- tests/deal.II/vectors_boundary_rhs_03.cc | 68 +- tests/deal.II/vectors_point_source_01.cc | 66 +- tests/deal.II/vectors_rhs_01.cc | 70 +- tests/deal.II/vectors_rhs_03.cc | 66 +- tests/deal.II/vertex_as_face_01.cc | 24 +- tests/deal.II/vertex_as_face_02.cc | 24 +- tests/deal.II/vertex_as_face_03.cc | 24 +- tests/deal.II/vertex_as_face_04.cc | 24 +- tests/deal.II/vertex_as_face_05.cc | 26 +- tests/deal.II/vertex_as_face_06.cc | 32 +- tests/deal.II/vertex_as_face_07.cc | 56 +- tests/deal.II/vertex_as_face_08.cc | 24 +- tests/deal.II/vertex_as_face_09.cc | 24 +- tests/deal.II/vertex_as_face_10.cc | 24 +- tests/deal.II/vertex_as_face_11.cc | 22 +- tests/deal.II/vertex_as_face_12.cc | 24 +- tests/deal.II/vertex_as_face_13.cc | 22 +- tests/distributed_grids/2d_coarse_grid_01.cc | 24 +- tests/distributed_grids/2d_coarse_grid_02.cc | 30 +- tests/distributed_grids/2d_coarse_grid_03.cc | 24 +- tests/distributed_grids/2d_coarse_grid_04.cc | 24 +- .../distributed_grids/2d_coarse_grid_x_01.cc | 36 +- tests/distributed_grids/2d_coarsening_01.cc | 24 +- tests/distributed_grids/2d_coarsening_02.cc | 78 +- tests/distributed_grids/2d_coarsening_03.cc | 146 +- tests/distributed_grids/2d_coarsening_05.cc | 76 +- tests/distributed_grids/2d_dofhandler_01.cc | 58 +- tests/distributed_grids/2d_refinement_01.cc | 24 +- tests/distributed_grids/2d_refinement_02.cc | 54 +- tests/distributed_grids/2d_refinement_03.cc | 106 +- tests/distributed_grids/2d_refinement_04.cc | 36 +- tests/distributed_grids/2d_refinement_05.cc | 60 +- tests/distributed_grids/2d_refinement_06.cc | 24 +- tests/distributed_grids/2d_refinement_07.cc | 78 + .../2d_refinement_07/cmp/generic | 32 + tests/distributed_grids/3d_coarse_grid_01.cc | 24 +- tests/distributed_grids/3d_coarse_grid_02.cc | 22 +- tests/distributed_grids/3d_coarse_grid_03.cc | 24 +- tests/distributed_grids/3d_coarse_grid_04.cc | 24 +- tests/distributed_grids/3d_coarse_grid_05.cc | 132 +- tests/distributed_grids/3d_coarse_grid_06.cc | 28 +- .../distributed_grids/3d_coarse_grid_x_01.cc | 36 +- tests/distributed_grids/3d_coarsening_01.cc | 24 +- tests/distributed_grids/3d_coarsening_02.cc | 78 +- tests/distributed_grids/3d_coarsening_03.cc | 78 +- tests/distributed_grids/3d_coarsening_04.cc | 90 +- tests/distributed_grids/3d_coarsening_05.cc | 76 +- tests/distributed_grids/3d_refinement_01.cc | 24 +- tests/distributed_grids/3d_refinement_02.cc | 54 +- tests/distributed_grids/3d_refinement_03.cc | 50 +- tests/distributed_grids/3d_refinement_04.cc | 36 +- tests/distributed_grids/3d_refinement_05.cc | 62 +- tests/distributed_grids/3d_refinement_06.cc | 34 +- tests/distributed_grids/3d_refinement_07.cc | 24 +- tests/distributed_grids/3d_refinement_08.cc | 60 +- tests/distributed_grids/3d_refinement_09.cc | 78 + .../3d_refinement_09/cmp/generic | 21 + tests/distributed_grids/anisotropic.cc | 26 +- tests/distributed_grids/coarse_grid_common.h | 53 +- .../count_dofs_per_block_01.cc | 82 +- .../count_dofs_per_component_01.cc | 40 +- .../dof_handler_number_cache.cc | 74 +- .../distributed_grids/solution_transfer_01.cc | 28 +- .../distributed_grids/solution_transfer_02.cc | 73 +- .../distributed_grids/solution_transfer_03.cc | 115 +- .../distributed_grids/solution_transfer_04.cc | 28 +- tests/distributed_grids/subdomain_id_01.cc | 84 + .../subdomain_id_01/cmp/generic | 45 + tests/distributed_grids/tria_settings_01.cc | 60 +- .../update_number_cache_01.cc | 22 +- tests/fail/abf_approximation_01.cc | 404 +- tests/fail/circular_01.cc | 915 +- tests/fail/fe_nothing_04.cc | 68 +- tests/fail/hp-step-14.cc | 2163 +- tests/fail/hp-step-15.cc | 280 +- tests/fail/hp_constraints_q_08.cc | 22 +- tests/fail/hp_constraints_q_system_08.cc | 26 +- tests/fail/hp_constraints_q_system_x_08.cc | 26 +- tests/fail/hp_constraints_rt_01.cc | 24 +- tests/fail/hp_constraints_rt_02.cc | 24 +- tests/fail/hp_constraints_rt_03.cc | 24 +- tests/fail/hp_constraints_rt_04.cc | 24 +- tests/fail/hp_constraints_rt_05.cc | 24 +- tests/fail/hp_constraints_rt_06.cc | 26 +- tests/fail/injection_dgp.cc | 22 +- tests/fail/injection_dgp_nonparametric.cc | 22 +- tests/fail/injection_nedelec.cc | 24 +- tests/fail/injection_q_hierarchical.cc | 22 +- tests/fail/injection_rt.cc | 24 +- tests/fail/project_abf_01.cc | 22 +- tests/fail/project_abf_02.cc | 22 +- tests/fail/project_abf_03.cc | 22 +- tests/fail/project_abf_04.cc | 22 +- tests/fail/project_abf_05.cc | 22 +- tests/fail/project_dgp_nonparametric_01.cc | 22 +- tests/fail/project_dgp_nonparametric_02.cc | 22 +- tests/fail/project_dgp_nonparametric_03.cc | 22 +- tests/fail/project_dgp_nonparametric_04.cc | 22 +- tests/fail/project_dgp_nonparametric_05.cc | 22 +- tests/fail/project_rt_03.cc | 28 +- tests/fail/rt_4.cc | 44 +- tests/fail/rt_6.cc | 124 +- tests/fail/rt_crash_01.cc | 48 +- tests/fail/rt_distorted_01.cc | 270 +- tests/fail/rt_distorted_02.cc | 300 +- tests/fail/vectors_boundary_rhs_hp_02.cc | 74 +- tests/fail/vectors_rhs_hp_02.cc | 74 +- tests/fe/abf_01.cc | 688 +- tests/fe/abf_projection_01.cc | 22 +- tests/fe/block_mask_01.cc | 22 +- tests/fe/block_mask_02.cc | 26 +- tests/fe/block_mask_03.cc | 24 +- tests/fe/block_mask_04.cc | 22 +- tests/fe/block_mask_05.cc | 34 +- tests/fe/block_mask_06.cc | 44 +- tests/fe/block_mask_07.cc | 46 +- tests/fe/block_mask_08.cc | 36 +- tests/fe/block_mask_09.cc | 24 +- tests/fe/block_mask_10.cc | 24 +- tests/fe/block_mask_11.cc | 32 +- tests/fe/cell_similarity_01.cc | 108 +- tests/fe/cell_similarity_02.cc | 108 +- tests/fe/cell_similarity_03.cc | 108 +- tests/fe/cell_similarity_04.cc | 108 +- tests/fe/cell_similarity_05.cc | 108 +- tests/fe/cell_similarity_06.cc | 108 +- tests/fe/cell_similarity_07.cc | 108 +- tests/fe/cell_similarity_08.cc | 108 +- tests/fe/cell_similarity_09.cc | 108 +- tests/fe/cell_similarity_10.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_01.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_02.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_03.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_04.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_05.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_06.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_07.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_08.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_09.cc | 108 +- tests/fe/cell_similarity_dgp_monomial_10.cc | 108 +- .../cell_similarity_dgp_nonparametric_01.cc | 108 +- .../cell_similarity_dgp_nonparametric_02.cc | 108 +- .../cell_similarity_dgp_nonparametric_03.cc | 108 +- .../cell_similarity_dgp_nonparametric_04.cc | 108 +- .../cell_similarity_dgp_nonparametric_05.cc | 108 +- .../cell_similarity_dgp_nonparametric_06.cc | 108 +- .../cell_similarity_dgp_nonparametric_07.cc | 108 +- .../cell_similarity_dgp_nonparametric_08.cc | 108 +- .../cell_similarity_dgp_nonparametric_09.cc | 108 +- .../cell_similarity_dgp_nonparametric_10.cc | 108 +- tests/fe/check_derivatives.cc | 40 +- tests/fe/component_mask_01.cc | 22 +- tests/fe/component_mask_02.cc | 26 +- tests/fe/component_mask_03.cc | 24 +- tests/fe/component_mask_04.cc | 22 +- tests/fe/component_mask_05.cc | 34 +- tests/fe/component_mask_06.cc | 44 +- tests/fe/component_mask_07.cc | 44 +- tests/fe/component_mask_08.cc | 36 +- tests/fe/component_mask_09.cc | 24 +- tests/fe/component_mask_10.cc | 24 +- tests/fe/component_mask_11.cc | 32 +- tests/fe/component_mask_12.cc | 80 +- tests/fe/component_mask_13.cc | 50 +- tests/fe/component_mask_14.cc | 66 +- tests/fe/copy_01.cc | 34 +- tests/fe/copy_fe.cc | 22 +- tests/fe/deformed_projection.h | 761 +- tests/fe/derivatives.cc | 76 +- tests/fe/derivatives_face.cc | 60 +- tests/fe/dgp_01.cc | 34 +- tests/fe/dgp_monomial_1.cc | 52 +- tests/fe/dgp_monomial_2.cc | 34 +- tests/fe/dgq_1.cc | 34 +- tests/fe/face_to_cell_q1_2d.cc | 65 + tests/fe/face_to_cell_q1_2d/cmp/generic | 21 + tests/fe/face_to_cell_q2_2d.cc | 65 + tests/fe/face_to_cell_q2_2d/cmp/generic | 21 + tests/fe/face_to_cell_q2xq2_2d.cc | 67 + tests/fe/face_to_cell_q2xq2_2d/cmp/generic | 21 + tests/fe/face_to_cell_q3_2d.cc | 65 + tests/fe/face_to_cell_q3_2d/cmp/generic | 21 + tests/fe/face_to_cell_q3xq4_2d.cc | 67 + tests/fe/face_to_cell_q3xq4_2d/cmp/generic | 21 + tests/fe/face_to_cell_q4_2d.cc | 65 + tests/fe/face_to_cell_q4_2d/cmp/generic | 21 + tests/fe/fe_data_test.cc | 158 +- tests/fe/fe_data_test/cmp/generic | 24 +- tests/fe/fe_face_orientation_nedelec.h | 247 + tests/fe/fe_face_orientation_nedelec_0.cc | 183 + .../fe_face_orientation_nedelec_0/cmp/generic | 65 + tests/fe/fe_face_orientation_nedelec_000.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_001.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_010.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_011.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_100.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_101.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_110.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_orientation_nedelec_111.cc | 28 + .../cmp/generic | 17 + tests/fe/fe_face_values_1d.cc | 142 +- .../fe/fe_face_values_1d_mapping_cartesian.cc | 142 +- tests/fe/fe_face_values_1d_mapping_q2.cc | 142 +- tests/fe/fe_prolongation_bdm.cc | 22 +- tests/fe/fe_prolongation_common.h | 54 +- tests/fe/fe_prolongation_dgp.cc | 22 +- tests/fe/fe_prolongation_dgq.cc | 22 +- tests/fe/fe_prolongation_nedelec.cc | 22 +- tests/fe/fe_prolongation_q.cc | 22 +- tests/fe/fe_prolongation_q/cmp/generic | 24 +- tests/fe/fe_prolongation_q_dg0.cc | 22 +- tests/fe/fe_prolongation_q_dg0/cmp/generic | 24 +- tests/fe/fe_prolongation_q_hierarchical.cc | 22 +- tests/fe/fe_prolongation_q_iso_q1.cc | 36 + tests/fe/fe_prolongation_q_iso_q1/cmp/generic | 577 + tests/fe/fe_prolongation_rt.cc | 22 +- tests/fe/fe_prolongation_sys_01.cc | 22 +- tests/fe/fe_prolongation_sys_02.cc | 22 +- tests/fe/fe_prolongation_sys_03.cc | 22 +- tests/fe/fe_prolongation_sys_04.cc | 22 +- tests/fe/fe_prolongation_sys_04/cmp/generic | 72 +- tests/fe/fe_prolongation_sys_05.cc | 28 +- tests/fe/fe_prolongation_sys_06.cc | 30 +- tests/fe/fe_prolongation_sys_07.cc | 22 +- tests/fe/fe_prolongation_sys_08.cc | 30 +- tests/fe/fe_prolongation_sys_09.cc | 22 +- tests/fe/fe_prolongation_sys_10.cc | 30 +- tests/fe/fe_q_01.cc | 44 + tests/fe/fe_q_01/cmp/generic | 2 + tests/fe/fe_q_dg0.cc | 52 +- tests/fe/fe_restriction_bdm.cc | 22 +- tests/fe/fe_restriction_common.h | 46 +- tests/fe/fe_restriction_dgp.cc | 22 +- tests/fe/fe_restriction_dgq.cc | 22 +- tests/fe/fe_restriction_dgq/cmp/generic | 110 +- tests/fe/fe_restriction_nedelec.cc | 22 +- tests/fe/fe_restriction_q.cc | 22 +- tests/fe/fe_restriction_q_dg0.cc | 22 +- tests/fe/fe_restriction_q_hierarchical.cc | 22 +- tests/fe/fe_restriction_q_iso_q1.cc | 35 + tests/fe/fe_restriction_q_iso_q1/cmp/generic | 465 + tests/fe/fe_restriction_rt.cc | 22 +- tests/fe/fe_restriction_sys_01.cc | 22 +- tests/fe/fe_restriction_sys_02.cc | 22 +- tests/fe/fe_restriction_sys_03.cc | 22 +- tests/fe/fe_restriction_sys_04.cc | 22 +- tests/fe/fe_restriction_sys_05.cc | 28 +- tests/fe/fe_restriction_sys_06.cc | 30 +- tests/fe/fe_restriction_sys_07.cc | 22 +- tests/fe/fe_restriction_sys_08.cc | 30 +- tests/fe/fe_restriction_sys_09.cc | 22 +- tests/fe/fe_restriction_sys_10.cc | 30 +- tests/fe/fe_support_points_bdm.cc | 22 +- tests/fe/fe_support_points_common.h | 38 +- tests/fe/fe_support_points_nedelec.cc | 22 +- tests/fe/fe_support_points_q.cc | 22 +- tests/fe/fe_support_points_q_dg0.cc | 22 +- tests/fe/fe_support_points_q_hierarchical.cc | 22 +- tests/fe/fe_support_points_q_iso_q1.cc | 35 + .../fe/fe_support_points_q_iso_q1/cmp/generic | 208 + tests/fe/fe_support_points_q_qg0.cc | 22 +- tests/fe/fe_support_points_rt.cc | 22 +- tests/fe/fe_support_points_sys_01.cc | 22 +- tests/fe/fe_support_points_sys_02.cc | 22 +- tests/fe/fe_support_points_sys_03.cc | 22 +- tests/fe/fe_support_points_sys_04.cc | 22 +- tests/fe/fe_support_points_sys_05.cc | 28 +- tests/fe/fe_support_points_sys_06.cc | 30 +- tests/fe/fe_support_points_sys_07.cc | 22 +- tests/fe/fe_support_points_sys_08.cc | 30 +- tests/fe/fe_support_points_sys_09.cc | 22 +- tests/fe/fe_support_points_sys_10.cc | 30 +- tests/fe/fe_sys_projection_01.cc | 22 +- tests/fe/fe_tools.cc | 76 +- tests/fe/fe_tools_01.cc | 62 +- tests/fe/fe_tools_test.cc | 155 +- tests/fe/function.cc | 48 +- tests/fe/injection_common.h | 133 +- tests/fe/injection_dgp_monomial.cc | 22 +- tests/fe/injection_dgq.cc | 22 +- tests/fe/injection_q.cc | 22 +- tests/fe/injection_q/cmp/generic | 522 +- tests/fe/injection_q_dg0.cc | 32 +- tests/fe/injection_q_dg0/cmp/generic | 680 +- tests/fe/injection_q_iso_q1.cc | 33 + tests/fe/injection_q_iso_q1/cmp/generic | 46835 +++++ tests/fe/injection_q_system.cc | 28 +- tests/fe/injection_q_system/cmp/generic | 680 +- tests/fe/interpolate_common.h | 160 +- tests/fe/interpolate_q1.cc | 58 +- tests/fe/interpolate_q_dg0.cc | 34 +- tests/fe/interpolate_q_iso_q1.cc | 71 + tests/fe/interpolate_q_iso_q1/cmp/generic | 10 + tests/fe/interpolate_rt.cc | 44 +- tests/fe/interpolate_rtn.cc | 44 +- tests/fe/interpolate_system.cc | 76 +- tests/fe/jacobians.cc | 44 +- tests/fe/mapping.cc | 345 +- tests/fe/mapping_c1.cc | 141 +- tests/fe/mapping_q1_eulerian.cc | 65 +- tests/fe/mapping_q_eulerian.cc | 194 +- tests/fe/mapping_real_to_unit_02.cc | 39 +- tests/fe/mapping_real_to_unit_q1.cc | 106 +- tests/fe/mapping_real_to_unit_q4_curved.cc | 102 +- .../mapping_real_to_unit_q4_curved_codim.cc | 102 +- tests/fe/mapping_real_to_unit_q4_sphere.cc | 56 +- tests/fe/mapping_real_to_unit_q4_sphere_x.cc | 56 +- tests/fe/mapping_real_to_unit_q4_sphere_y.cc | 74 +- tests/fe/mapping_real_to_unit_q4_sphere_z.cc | 54 +- tests/fe/mapping_real_to_unit_q4_straight.cc | 106 +- tests/fe/mass_matrix_arbitrary_nodes.cc | 50 +- tests/fe/nedelec.cc | 168 +- tests/fe/nedelec_2.cc | 172 +- tests/fe/nedelec_3.cc | 55 +- tests/fe/nedelec_crash_01.cc | 40 +- tests/fe/non_primitive_1.cc | 360 +- tests/fe/non_primitive_2.cc | 268 +- tests/fe/numbering.cc | 376 +- tests/fe/q_1.cc | 38 +- tests/fe/q_2.cc | 46 +- tests/fe/q_3.cc | 34 +- tests/fe/q_4.cc | 30 +- tests/fe/q_dg0_projection_01.cc | 22 +- tests/fe/q_iso_q1_projection_01.cc | 34 + tests/fe/q_iso_q1_projection_01/cmp/generic | 143 + tests/fe/q_iso_q1_projection_01/rt.gpl | 184 + tests/fe/rt_1.cc | 102 +- tests/fe/rt_10.cc | 56 +- tests/fe/rt_11.cc | 56 +- tests/fe/rt_12.cc | 56 +- tests/fe/rt_13.cc | 56 +- tests/fe/rt_14.cc | 56 +- tests/fe/rt_15.cc | 56 +- tests/fe/rt_2.cc | 168 +- tests/fe/rt_3.cc | 36 +- tests/fe/rt_5.cc | 44 +- tests/fe/rt_7.cc | 36 +- tests/fe/rt_8.cc | 36 +- tests/fe/rt_9.cc | 28 +- tests/fe/rt_approximation_01.cc | 414 +- tests/fe/rt_normal_02.cc | 394 +- tests/fe/rt_projection_01.cc | 22 +- tests/fe/rtdiff.cc | 142 +- tests/fe/rtn_1.cc | 132 +- tests/fe/rtn_2.cc | 32 +- tests/fe/rtn_3.cc | 26 +- tests/fe/shapes.h | 384 +- tests/fe/shapes_dgp.cc | 26 +- tests/fe/shapes_dgp_monomial.cc | 22 +- tests/fe/shapes_dgp_nonparametric.cc | 24 +- tests/fe/shapes_dgq.cc | 28 +- tests/fe/shapes_faceq.cc | 26 +- tests/fe/shapes_faceq/cmp/generic | 34 +- tests/fe/shapes_nedelec.cc | 20 +- tests/fe/shapes_q.cc | 28 +- tests/fe/shapes_q_dg0.cc | 28 +- tests/fe/shapes_q_hierarchical.cc | 24 +- tests/fe/shapes_q_iso_q1.cc | 78 + tests/fe/shapes_q_iso_q1/cmp/generic | 1161 + tests/fe/shapes_system.cc | 44 +- tests/fe/system_01.cc | 52 +- tests/fe/system_02.cc | 26 +- tests/fe/system_index.cc | 98 +- tests/fe/traits.cc | 76 +- tests/fe/transfer.cc | 44 +- tests/fe/transfer/cmp/generic | 16 +- tests/fe/up_and_down.cc | 273 +- tests/gla/Makefile | 67 + tests/gla/block_mat_01.cc | 111 + tests/gla/block_mat_01/ncpu_10/cmp/generic | 27 + tests/gla/block_mat_01/ncpu_4/cmp/generic | 15 + tests/gla/block_mat_02.cc | 249 + tests/gla/block_mat_02/ncpu_1/cmp/generic | 769 + tests/gla/block_mat_02/ncpu_2/cmp/generic | 786 + tests/gla/block_mat_02/ncpu_4/cmp/generic | 820 + tests/gla/block_mat_03.cc | 246 + tests/gla/block_mat_03/ncpu_1/cmp/generic | 17600 ++ tests/gla/block_mat_03/ncpu_2/cmp/generic | 17619 ++ tests/gla/block_vec_01.cc | 97 + tests/gla/block_vec_01/ncpu_10/cmp/generic | 107 + tests/gla/block_vec_01/ncpu_4/cmp/generic | 47 + tests/gla/block_vec_02.cc | 107 + tests/gla/block_vec_02/ncpu_2/cmp/generic | 27 + tests/gla/block_vec_02/ncpu_4/cmp/generic | 43 + tests/gla/block_vec_03.cc | 105 + tests/gla/block_vec_03/ncpu_2/cmp/generic | 7 + tests/gla/block_vec_03/ncpu_4/cmp/generic | 11 + tests/gla/block_vec_04.cc | 102 + tests/gla/block_vec_04/ncpu_2/cmp/generic | 11 + tests/gla/gla.h | 117 + tests/gla/mat_01.cc | 107 + tests/gla/mat_01/ncpu_10/cmp/generic | 29 + tests/gla/mat_01/ncpu_4/cmp/generic | 17 + tests/gla/mat_02.cc | 107 + tests/gla/mat_02/ncpu_2/cmp/generic | 11 + tests/gla/mat_03.cc | 130 + tests/gla/mat_03/ncpu_2/cmp/generic | 1735 + tests/gla/mat_04.cc | 175 + tests/gla/mat_04/ncpu_2/cmp/generic | 441 + tests/gla/vec_00.cc | 122 + tests/gla/vec_00/ncpu_10/cmp/generic | 5 + tests/gla/vec_00/ncpu_4/cmp/generic | 5 + tests/gla/vec_01.cc | 127 + tests/gla/vec_01/ncpu_10/cmp/generic | 11 + tests/gla/vec_01/ncpu_4/cmp/generic | 11 + tests/gla/vec_02.cc | 139 + tests/gla/vec_02/ncpu_10/cmp/generic | 11 + tests/gla/vec_02/ncpu_4/cmp/generic | 11 + tests/gla/vec_03.cc | 108 + tests/gla/vec_03/ncpu_10/cmp/generic | 67 + tests/gla/vec_03/ncpu_4/cmp/generic | 31 + tests/gla/vec_04.cc | 110 + tests/gla/vec_04/ncpu_2/cmp/generic | 19 + tests/gla/vec_04/ncpu_4/cmp/generic | 35 + tests/gla/vec_05.cc | 108 + tests/gla/vec_05/ncpu_2/cmp/generic | 11 + tests/gla/vec_05/ncpu_4/cmp/generic | 19 + tests/gla/vec_06.cc | 95 + tests/gla/vec_06/ncpu_10/cmp/generic | 23 + tests/gla/vec_06/ncpu_4/cmp/generic | 11 + tests/grid/cell_id_01.cc | 80 + tests/grid/cell_id_01/cmp/generic | 271 + tests/grid/cell_id_02.cc | 81 + tests/grid/cell_id_02/cmp/generic | 27 + tests/grid/grid_out_svg_01.cc | 82 +- tests/grid/grid_out_svg_01/cmp/generic | 467 +- tests/grid/grid_out_svg_02.cc | 86 + tests/grid/grid_out_svg_02/cmp/generic | 334 + tests/grid/ordering_01.cc | 89 + tests/grid/ordering_01/cmp/generic | 626 + tests/grid/refine_and_coarsen_01.cc | 40 +- tests/hp/compare_hp_vs_nonhp_01.cc | 311 +- tests/hp/continuous_1d_01.cc | 34 +- tests/hp/continuous_2d_01.cc | 34 +- tests/hp/continuous_3d_01.cc | 34 +- tests/hp/count_dofs_per_block_01.cc | 60 +- tests/hp/count_dofs_per_block_02.cc | 60 +- tests/hp/crash_01.cc | 30 +- tests/hp/crash_02.cc | 30 +- tests/hp/crash_03.cc | 32 +- tests/hp/crash_04.cc | 28 +- tests/hp/crash_05.cc | 42 +- tests/hp/crash_06.cc | 36 +- tests/hp/crash_07.cc | 50 +- tests/hp/crash_08.cc | 71 +- tests/hp/crash_09.cc | 132 +- tests/hp/crash_10.cc | 86 +- tests/hp/crash_11.cc | 104 +- tests/hp/crash_12.cc | 86 +- tests/hp/crash_12/cmp/generic | 30 +- tests/hp/crash_13.cc | 28 +- tests/hp/crash_14.cc | 124 +- tests/hp/crash_15.cc | 118 +- tests/hp/crash_16.cc | 126 +- tests/hp/crash_17.cc | 626 +- tests/hp/crash_17_compressed_set_sparsity.cc | 626 +- tests/hp/crash_18.cc | 630 +- tests/hp/crash_18_compressed_set_sparsity.cc | 630 +- tests/hp/crash_19.cc | 83 +- tests/hp/crash_20.cc | 30 +- tests/hp/crash_21.cc | 78 +- tests/hp/create_laplace_matrix_01.cc | 76 +- tests/hp/create_laplace_matrix_01b.cc | 72 +- tests/hp/create_laplace_matrix_02.cc | 80 +- tests/hp/create_laplace_matrix_02b.cc | 74 +- tests/hp/create_laplace_matrix_03.cc | 78 +- tests/hp/create_laplace_matrix_03b.cc | 74 +- tests/hp/create_laplace_matrix_04.cc | 82 +- tests/hp/create_laplace_matrix_04b.cc | 80 +- .../create_laplace_matrix_constraints_02.cc | 161 + .../cmp/generic | 7 + .../create_laplace_matrix_constraints_02b.cc | 153 + .../cmp/generic | 4 + tests/hp/create_mass_matrix_01.cc | 76 +- tests/hp/create_mass_matrix_01b.cc | 72 +- tests/hp/create_mass_matrix_02.cc | 80 +- tests/hp/create_mass_matrix_02b.cc | 74 +- tests/hp/create_mass_matrix_03.cc | 78 +- tests/hp/create_mass_matrix_03b.cc | 78 +- tests/hp/create_mass_matrix_04.cc | 84 +- tests/hp/create_mass_matrix_04b.cc | 78 +- tests/hp/create_mass_matrix_05.cc | 78 +- tests/hp/create_mass_matrix_constraints_02.cc | 161 + .../cmp/generic | 7 + .../hp/create_mass_matrix_constraints_02b.cc | 153 + .../cmp/generic | 4 + tests/hp/create_rhs_01.cc | 90 +- tests/hp/dof_handler_number_cache.cc | 78 +- tests/hp/dof_renumbering_04.cc | 36 +- tests/hp/dof_renumbering_05.cc | 36 +- tests/hp/dof_renumbering_06.cc | 36 +- tests/hp/fe_collection_01.cc | 28 +- tests/hp/fe_collection_02.cc | 34 +- tests/hp/fe_collection_03.cc | 40 +- tests/hp/fe_collection_04.cc | 40 +- tests/hp/fe_nothing_01.cc | 62 +- tests/hp/fe_nothing_02.cc | 82 +- tests/hp/fe_nothing_03.cc | 68 +- tests/hp/fe_nothing_05.cc | 122 +- tests/hp/fe_nothing_06.cc | 122 +- tests/hp/fe_nothing_07.cc | 112 +- tests/hp/fe_nothing_08.cc | 40 +- tests/hp/fe_nothing_09.cc | 40 +- tests/hp/fe_nothing_10.cc | 22 +- tests/hp/fe_nothing_11.cc | 44 +- tests/hp/fe_nothing_12.cc | 58 +- tests/hp/fe_nothing_13.cc | 54 +- tests/hp/fe_nothing_14.cc | 56 +- tests/hp/fe_nothing_15.cc | 32 +- tests/hp/fe_nothing_16.cc | 36 +- tests/hp/fe_nothing_17.cc | 30 +- tests/hp/fe_nothing_18.cc | 383 + tests/hp/fe_nothing_18/cmp/generic | 24 + tests/hp/fe_nothing_19.cc | 81 + tests/hp/fe_nothing_19/cmp/generic | 4 + tests/hp/get_active_fe_indices.cc | 36 +- tests/hp/hp_constraints_common.h | 335 +- tests/hp/hp_constraints_dgp.cc | 22 +- tests/hp/hp_constraints_dgp_monomial.cc | 22 +- tests/hp/hp_constraints_dgp_nonparametric.cc | 22 +- tests/hp/hp_constraints_dgq.cc | 22 +- tests/hp/hp_constraints_q.cc | 22 +- tests/hp/hp_constraints_q_system.cc | 24 +- tests/hp/hp_constraints_q_system_x.cc | 24 +- tests/hp/hp_constraints_rt_nodal.cc | 24 +- tests/hp/hp_dof_handler.cc | 30 +- tests/hp/hp_hanging_nodes_01.cc | 88 +- tests/hp/hp_hanging_nodes_02.cc | 82 +- tests/hp/hp_hanging_nodes_02/cmp/generic | 1614 +- tests/hp/hp_line_dof_identities_dgp.cc | 68 +- .../hp/hp_line_dof_identities_dgp_monomial.cc | 68 +- ...e_dof_identities_dgp_monomial_system_01.cc | 68 +- ...e_dof_identities_dgp_monomial_system_02.cc | 100 +- ...p_line_dof_identities_dgp_nonparametric.cc | 68 +- ..._identities_dgp_nonparametric_system_01.cc | 68 +- ..._identities_dgp_nonparametric_system_02.cc | 100 +- .../hp_line_dof_identities_dgp_system_01.cc | 68 +- .../hp_line_dof_identities_dgp_system_02.cc | 100 +- tests/hp/hp_line_dof_identities_dgq.cc | 68 +- .../hp_line_dof_identities_dgq_system_01.cc | 68 +- .../hp_line_dof_identities_dgq_system_02.cc | 100 +- tests/hp/hp_line_dof_identities_q.cc | 68 +- tests/hp/hp_line_dof_identities_q_gl.cc | 62 +- .../hp/hp_line_dof_identities_q_system_01.cc | 68 +- .../hp/hp_line_dof_identities_q_system_02.cc | 100 +- .../hp/hp_line_dof_identities_q_system_03.cc | 78 +- tests/hp/hp_line_dof_identities_rt_nodal.cc | 68 +- tests/hp/hp_quad_dof_identities_dgp.cc | 68 +- .../hp/hp_quad_dof_identities_dgp_monomial.cc | 68 +- ...d_dof_identities_dgp_monomial_system_01.cc | 68 +- ...d_dof_identities_dgp_monomial_system_02.cc | 78 +- ...p_quad_dof_identities_dgp_nonparametric.cc | 68 +- ..._identities_dgp_nonparametric_system_01.cc | 68 +- ..._identities_dgp_nonparametric_system_02.cc | 78 +- .../hp_quad_dof_identities_dgp_system_01.cc | 68 +- .../hp_quad_dof_identities_dgp_system_02.cc | 78 +- tests/hp/hp_quad_dof_identities_dgq.cc | 68 +- .../hp_quad_dof_identities_dgq_system_01.cc | 68 +- .../hp_quad_dof_identities_dgq_system_02.cc | 78 +- tests/hp/hp_quad_dof_identities_q.cc | 68 +- tests/hp/hp_quad_dof_identities_q_gl.cc | 62 +- .../hp/hp_quad_dof_identities_q_system_01.cc | 68 +- .../hp/hp_quad_dof_identities_q_system_02.cc | 78 +- tests/hp/hp_quad_dof_identities_rt_nodal.cc | 68 +- tests/hp/hp_vertex_dof_identities_dgp.cc | 68 +- .../hp_vertex_dof_identities_dgp_monomial.cc | 68 +- ...x_dof_identities_dgp_monomial_system_01.cc | 68 +- ...x_dof_identities_dgp_monomial_system_02.cc | 80 +- ...vertex_dof_identities_dgp_nonparametric.cc | 68 +- ..._identities_dgp_nonparametric_system_01.cc | 68 +- ..._identities_dgp_nonparametric_system_02.cc | 80 +- .../hp_vertex_dof_identities_dgp_system_01.cc | 68 +- .../hp_vertex_dof_identities_dgp_system_02.cc | 80 +- tests/hp/hp_vertex_dof_identities_dgq.cc | 68 +- .../hp_vertex_dof_identities_dgq_system_01.cc | 68 +- .../hp_vertex_dof_identities_dgq_system_02.cc | 80 +- tests/hp/hp_vertex_dof_identities_q.cc | 68 +- .../hp_vertex_dof_identities_q_system_01.cc | 68 +- .../hp_vertex_dof_identities_q_system_02.cc | 80 +- tests/hp/hp_vertex_dof_identities_rt_nodal.cc | 68 +- tests/hp/integrate_difference.cc | 56 +- tests/hp/integrate_difference_02.cc | 104 +- tests/hp/interpolate_dgq_01.cc | 96 +- tests/hp/interpolate_dgq_02.cc | 102 +- tests/hp/interpolate_q_01.cc | 98 +- tests/hp/interpolate_q_02.cc | 102 +- tests/hp/interpolate_q_system_01.cc | 96 +- tests/hp/interpolate_q_system_02.cc | 100 +- tests/hp/mapping_collection_01.cc | 34 +- tests/hp/mapping_collection_02.cc | 28 +- tests/hp/mapping_collection_03.cc | 30 +- tests/hp/mapping_collection_04.cc | 30 +- tests/hp/matrices.cc | 174 +- tests/hp/matrices_hp.cc | 178 +- tests/hp/n_active_fe_indices.cc | 44 +- tests/hp/n_boundary_dofs.cc | 86 + tests/hp/n_boundary_dofs/cmp/generic | 4 + tests/hp/n_dofs.cc | 88 +- tests/hp/project_01.cc | 108 + tests/hp/project_01/cmp/generic | 585 + .../project_01/cmp/i686-pc-linux-gnu+gcc4.2 | 577 + .../project_01/cmp/i686-pc-linux-gnu+gcc4.3 | 577 + .../project_01/cmp/i686-pc-linux-gnu+gcc4.4 | 577 + .../cmp/powerpc-apple-darwin8.8.0+gcc4.0 | 577 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 577 + tests/hp/project_01_curved_boundary.cc | 177 + .../hp/project_01_curved_boundary/cmp/generic | 165 + .../cmp/i686-pc-linux-gnu+gcc4.2 | 577 + .../cmp/i686-pc-linux-gnu+gcc4.3 | 577 + .../cmp/i686-pc-linux-gnu+gcc4.4 | 577 + .../cmp/powerpc-apple-darwin8.8.0+gcc4.0 | 577 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 577 + tests/hp/project_02.cc | 111 + tests/hp/project_02/cmp/generic | 585 + .../project_02/cmp/i686-pc-linux-gnu+gcc4.2 | 577 + .../project_02/cmp/i686-pc-linux-gnu+gcc4.3 | 577 + .../project_02/cmp/i686-pc-linux-gnu+gcc4.4 | 577 + .../cmp/powerpc-apple-darwin8.8.0+gcc4.0 | 577 + .../cmp/x86_64-unknown-linux-gnu+gcc4.1 | 577 + tests/hp/q_collection_01.cc | 34 +- tests/hp/random.cc | 38 +- tests/hp/renumber_block_wise_01.cc | 46 +- tests/hp/renumber_block_wise_01a.cc | 42 +- tests/hp/renumber_block_wise_01b.cc | 48 +- tests/hp/renumber_block_wise_02.cc | 58 +- tests/hp/renumber_component_wise.cc | 38 +- tests/hp/solution_transfer.cc | 156 +- tests/hp/solution_transfer_02.cc | 34 +- tests/hp/solution_transfer_03.cc | 123 + tests/hp/solution_transfer_03/cmp/generic | 33 + tests/hp/step-10.cc | 146 +- tests/hp/step-11.cc | 164 +- tests/hp/step-11_compressed_set_sparsity.cc | 166 +- tests/hp/step-12.cc | 906 +- tests/hp/step-13.cc | 648 +- tests/hp/step-13/cmp/generic | 26 +- tests/hp/step-2.cc | 68 +- tests/hp/step-3.cc | 156 +- tests/hp/step-3a.cc | 202 +- tests/hp/step-3b.cc | 202 +- tests/hp/step-3c.cc | 200 +- tests/hp/step-3c/cmp/generic | 2 +- tests/hp/step-4.cc | 208 +- tests/hp/step-5.cc | 254 +- tests/hp/step-6.cc | 276 +- tests/hp/step-7.cc | 665 +- tests/hp/step-8.cc | 372 +- tests/hp/vectors_boundary_rhs_01.cc | 74 +- tests/hp/vectors_boundary_rhs_02.cc | 74 +- tests/hp/vectors_boundary_rhs_03.cc | 70 +- tests/hp/vectors_boundary_rhs_hp_01.cc | 74 +- tests/hp/vectors_boundary_rhs_hp_03.cc | 70 +- tests/hp/vectors_point_source_01.cc | 46 +- tests/hp/vectors_point_source_hp_01.cc | 46 +- tests/hp/vectors_rhs_01.cc | 74 +- tests/hp/vectors_rhs_02.cc | 74 +- tests/hp/vectors_rhs_03.cc | 70 +- tests/hp/vectors_rhs_hp_01.cc | 74 +- tests/hp/vectors_rhs_hp_03.cc | 70 +- tests/hsl/hsl_ma27_01.cc | 48 +- tests/hsl/hsl_ma27_02.cc | 50 +- tests/hsl/hsl_ma47_01.cc | 46 +- tests/hsl/hsl_ma47_02.cc | 50 +- .../integrators/assembler_simple_matrix_01.cc | 33 +- .../integrators/assembler_simple_matrix_02.cc | 33 +- .../integrators/assembler_simple_matrix_03.cc | 68 +- .../assembler_simple_matrix_03tri.cc | 133 + .../assembler_simple_matrix_03tri/cmp/generic | 20733 +++ .../integrators/assembler_simple_matrix_04.cc | 61 +- .../assembler_simple_mgmatrix_01.cc | 33 +- .../assembler_simple_mgmatrix_02.cc | 33 +- .../assembler_simple_mgmatrix_03.cc | 61 +- tests/integrators/cells_and_faces_01.cc | 104 +- tests/integrators/cochain_01.cc | 147 +- tests/integrators/divergence_01.cc | 167 +- tests/integrators/elasticity_01.cc | 292 +- tests/integrators/elasticity_01/cmp/generic | 5334 +- tests/integrators/empty_info.h | 59 +- tests/integrators/functional_01.cc | 88 +- tests/integrators/laplacian_01.cc | 323 +- tests/integrators/laplacian_01/cmp/generic | 2516 +- tests/integrators/mesh_worker_01.cc | 129 +- tests/integrators/mesh_worker_02.cc | 255 +- tests/integrators/mesh_worker_03.cc | 261 +- tests/integrators/mesh_worker_1d_dg.cc | 265 +- tests/integrators/mesh_worker_matrix_01.cc | 217 + .../mesh_worker_matrix_01/cmp/generic | 2206 + tests/lac/ala_01.cc | 81 + tests/lac/ala_01/cmp/generic | 7 + tests/lac/bicgstab_early.cc | 36 +- tests/lac/bicgstab_large.cc | 85 + tests/lac/bicgstab_large/cmp/generic | 9 + tests/lac/block_compressed_01.cc | 38 +- tests/lac/block_compressed_01/cmp/generic | 2 +- ...sed_simple_sparsity_pattern_indexset_01.cc | 40 +- tests/lac/block_indices.cc | 54 +- tests/lac/block_matrices.cc | 221 +- tests/lac/block_matrices_02.cc | 131 + tests/lac/block_matrices_02/cmp/generic | 25 + tests/lac/block_matrices_03.cc | 134 + tests/lac/block_matrices_03/cmp/generic | 25 + tests/lac/block_minres.cc | 46 +- tests/lac/block_sparsity_pattern_01.cc | 68 +- tests/lac/block_sparsity_pattern_02.cc | 30 +- tests/lac/block_sparsity_pattern_03.cc | 64 + .../lac/block_sparsity_pattern_03/cmp/generic | 21 + tests/lac/block_vector.cc | 128 +- tests/lac/block_vector_copy.cc | 62 +- tests/lac/block_vector_iterator.cc | 322 +- tests/lac/block_vector_vector_assign.cc | 60 +- tests/lac/chunk_sparsity_pattern_01.cc | 26 +- .../lac/chunk_sparsity_pattern_01/cmp/generic | 22 +- tests/lac/chunk_sparsity_pattern_02.cc | 26 +- tests/lac/chunk_sparsity_pattern_03.cc | 26 +- tests/lac/chunk_sparsity_pattern_04.cc | 26 +- tests/lac/chunk_sparsity_pattern_05.cc | 26 +- tests/lac/chunk_sparsity_pattern_06.cc | 26 +- tests/lac/chunk_sparsity_pattern_07.cc | 26 +- tests/lac/chunk_sparsity_pattern_08.cc | 26 +- tests/lac/chunk_sparsity_pattern_09.cc | 26 +- tests/lac/chunk_sparsity_pattern_10.cc | 26 +- tests/lac/chunk_sparsity_pattern_11.cc | 26 +- tests/lac/complex_block_vector.cc | 166 +- tests/lac/complex_block_vector_iterator.cc | 322 +- .../lac/complex_block_vector_vector_assign.cc | 60 +- .../lac/compressed_set_sparsity_pattern_01.cc | 26 +- .../lac/compressed_set_sparsity_pattern_02.cc | 26 +- .../lac/compressed_set_sparsity_pattern_03.cc | 26 +- .../lac/compressed_set_sparsity_pattern_04.cc | 26 +- .../lac/compressed_set_sparsity_pattern_05.cc | 26 +- .../lac/compressed_set_sparsity_pattern_10.cc | 26 +- .../lac/compressed_set_sparsity_pattern_11.cc | 26 +- .../compressed_simple_sparsity_pattern_01.cc | 22 +- .../compressed_simple_sparsity_pattern_02.cc | 22 +- .../compressed_simple_sparsity_pattern_03.cc | 22 +- .../compressed_simple_sparsity_pattern_04.cc | 22 +- .../compressed_simple_sparsity_pattern_05.cc | 22 +- .../compressed_simple_sparsity_pattern_10.cc | 22 +- .../compressed_simple_sparsity_pattern_11.cc | 22 +- ...ed_simple_sparsity_pattern_index_set_01.cc | 22 +- ...ed_simple_sparsity_pattern_index_set_02.cc | 22 +- tests/lac/compressed_sparsity_pattern_01.cc | 26 +- tests/lac/compressed_sparsity_pattern_02.cc | 26 +- tests/lac/compressed_sparsity_pattern_03.cc | 26 +- tests/lac/compressed_sparsity_pattern_04.cc | 26 +- tests/lac/compressed_sparsity_pattern_05.cc | 26 +- tests/lac/compressed_sparsity_pattern_10.cc | 26 +- tests/lac/compressed_sparsity_pattern_11.cc | 26 +- tests/lac/constraint_graph_zero.cc | 34 +- tests/lac/constraints_01.cc | 43 +- tests/lac/constraints_c1.cc | 200 +- tests/lac/constraints_c1_02.cc | 57 +- tests/lac/constraints_inhomogeneous.cc | 40 +- tests/lac/constraints_zero.cc | 34 +- tests/lac/constraints_zero_condense.cc | 46 +- tests/lac/constraints_zero_merge.cc | 34 +- tests/lac/copy_transposed.cc | 23 +- tests/lac/eigen.cc | 52 +- tests/lac/filtered_matrix.cc | 66 +- tests/lac/full_matrix.cc | 200 +- tests/lac/full_matrix_02.cc | 28 +- tests/lac/full_matrix_03.cc | 28 +- tests/lac/full_matrix_04.cc | 55 +- tests/lac/full_matrix_05.cc | 39 +- tests/lac/full_matrix_06.cc | 47 +- tests/lac/full_matrix_07.cc | 54 + tests/lac/full_matrix_07/cmp/generic | 2 + tests/lac/full_matrix_08.cc | 54 + tests/lac/full_matrix_08/cmp/generic | 2 + tests/lac/full_matrix_print.cc | 58 + tests/lac/full_matrix_print/cmp/generic | 10 + tests/lac/gmres_reorthogonalize_01.cc | 103 + .../lac/gmres_reorthogonalize_01/cmp/generic | 26 + tests/lac/gmres_reorthogonalize_02.cc | 68 + .../lac/gmres_reorthogonalize_02/cmp/generic | 5 + tests/lac/gmres_reorthogonalize_03.cc | 103 + .../lac/gmres_reorthogonalize_03/cmp/generic | 21 + tests/lac/gmres_reorthogonalize_04.cc | 93 + .../lac/gmres_reorthogonalize_04/cmp/generic | 5 + tests/lac/gmres_reorthogonalize_05.cc | 94 + .../lac/gmres_reorthogonalize_05/cmp/generic | 5 + tests/lac/householder.cc | 38 +- tests/lac/identity_matrix_01.cc | 36 +- tests/lac/identity_matrix_02.cc | 36 +- tests/lac/identity_matrix_03.cc | 36 +- tests/lac/identity_matrix_04.cc | 38 +- tests/lac/identity_matrix_05.cc | 38 +- tests/lac/identity_matrix_06.cc | 32 +- tests/lac/is_block_matrix.cc | 80 +- tests/lac/is_block_vector.cc | 52 +- tests/lac/lapack_fill.cc | 42 +- tests/lac/matrices.cc | 35 +- tests/lac/matrices_ez.cc | 23 +- tests/lac/matrices_ez_add.cc | 23 +- tests/lac/matrices_lapack.cc | 23 +- tests/lac/matrices_lapack_fill.cc | 25 +- tests/lac/matrix_lib.cc | 74 +- tests/lac/matrix_out.cc | 60 +- tests/lac/pointer_matrix.cc | 38 +- tests/lac/pointer_matrix_vector.cc | 36 +- tests/lac/print_formatted_ez_01.cc | 24 +- tests/lac/quickmatrix.h | 34 +- tests/lac/solver.cc | 297 +- tests/lac/solver/cmp/generic | 46 +- tests/lac/solver_02.cc | 29 +- tests/lac/solver_leak.cc | 43 +- tests/lac/solver_relaxation_01.cc | 133 +- tests/lac/solver_relaxation_02.cc | 179 +- tests/lac/solver_relaxation_03.cc | 287 +- tests/lac/solver_selector_00.cc | 26 +- tests/lac/solver_selector_01.cc | 43 +- tests/lac/solver_selector_01/cmp/generic | 4 +- tests/lac/solver_selector_02.cc | 43 +- tests/lac/sparse_ilu.cc | 158 +- tests/lac/sparse_ilu_inverse.cc | 66 +- tests/lac/sparse_ilu_t.cc | 160 +- tests/lac/sparse_matrices.cc | 176 +- tests/lac/sparse_matrix_Tmmult_01.cc | 53 +- tests/lac/sparse_matrix_Tmmult_02.cc | 55 +- tests/lac/sparse_matrix_iterator.cc | 57 +- tests/lac/sparse_matrix_mmult_01.cc | 53 +- tests/lac/sparse_matrix_mmult_02.cc | 55 +- tests/lac/sparse_mic.cc | 152 +- tests/lac/sparsity_pattern.cc | 156 +- tests/lac/sparsity_pattern_01.cc | 26 +- tests/lac/sparsity_pattern_02.cc | 26 +- tests/lac/sparsity_pattern_03.cc | 26 +- tests/lac/sparsity_pattern_04.cc | 26 +- tests/lac/sparsity_pattern_05.cc | 26 +- tests/lac/sparsity_pattern_06.cc | 26 +- tests/lac/sparsity_pattern_07.cc | 26 +- tests/lac/sparsity_pattern_08.cc | 26 +- tests/lac/sparsity_pattern_09.cc | 26 +- tests/lac/sparsity_pattern_10.cc | 26 +- tests/lac/sparsity_pattern_11.cc | 26 +- tests/lac/sparsity_pattern_12.cc | 22 +- tests/lac/sparsity_pattern_common.h | 309 +- tests/lac/sparsity_pattern_copy_from.cc | 22 +- tests/lac/sparsity_tools_01.cc | 32 +- tests/lac/testmatrix.h | 474 +- tests/lac/trace.cc | 28 +- tests/lac/tridiagonal_matrix.cc | 70 +- tests/lac/tridiagonal_matrix_sym.cc | 62 +- tests/lac/vector-vector.cc | 94 +- tests/lac/vector_accumulation.cc | 22 +- tests/lac/vector_large_numbers.cc | 22 +- tests/lac/vector_memory.cc | 38 +- tests/lac/vector_norms.cc | 30 +- tests/lac/vector_view.cc | 53 +- tests/lapack/full_matrix_01.cc | 66 +- tests/lapack/full_matrix_02.cc | 42 +- tests/lapack/full_matrix_03.cc | 78 +- tests/lapack/full_matrix_04.cc | 68 +- tests/lapack/full_matrix_05.cc | 86 +- tests/lapack/full_matrix_06.cc | 92 +- tests/lapack/full_matrix_07.cc | 64 +- tests/lapack/solver_cg.cc | 96 +- tests/lapack/tridiagonal_ev1.cc | 30 +- tests/lib/dof_tools_frame.h | 39 +- tests/lib/test_grids.h | 149 +- tests/matrix_free/compress_constraints.cc | 19 +- tests/matrix_free/compress_mapping.cc | 29 +- tests/matrix_free/copy.cc | 29 +- tests/matrix_free/create_mesh.h | 34 +- .../estimate_condition_number_mass.cc | 91 +- .../cmp/generic | 38 +- tests/matrix_free/get_functions_cartesian.cc | 19 +- tests/matrix_free/get_functions_circle.cc | 21 +- tests/matrix_free/get_functions_common.h | 61 +- .../matrix_free/get_functions_constraints.cc | 19 +- tests/matrix_free/get_functions_float.cc | 25 +- tests/matrix_free/get_functions_gl.cc | 37 +- tests/matrix_free/get_functions_mappingq.cc | 31 +- tests/matrix_free/get_functions_multife.cc | 59 +- tests/matrix_free/get_functions_multife2.cc | 63 +- .../get_functions_q_hierarchical.cc | 41 +- tests/matrix_free/get_functions_rect.cc | 31 +- tests/matrix_free/get_functions_variants.cc | 49 +- tests/matrix_free/get_values_plain.cc | 39 +- tests/matrix_free/integrate_functions.cc | 39 +- .../integrate_functions_multife.cc | 57 +- .../integrate_functions_multife2.cc | 53 +- tests/matrix_free/matrix_vector_01.cc | 19 +- tests/matrix_free/matrix_vector_02.cc | 19 +- tests/matrix_free/matrix_vector_03.cc | 23 +- tests/matrix_free/matrix_vector_04.cc | 19 +- tests/matrix_free/matrix_vector_05.cc | 23 +- tests/matrix_free/matrix_vector_06.cc | 19 +- tests/matrix_free/matrix_vector_07.cc | 33 +- tests/matrix_free/matrix_vector_08.cc | 19 +- tests/matrix_free/matrix_vector_09.cc | 19 +- tests/matrix_free/matrix_vector_common.h | 26 +- tests/matrix_free/matrix_vector_curl.cc | 78 +- tests/matrix_free/matrix_vector_div.cc | 45 +- tests/matrix_free/matrix_vector_float.cc | 23 +- tests/matrix_free/matrix_vector_hp.cc | 55 +- tests/matrix_free/matrix_vector_mg.cc | 67 +- tests/matrix_free/matrix_vector_stokes.cc | 45 +- .../matrix_vector_stokes_noflux.cc | 85 +- tests/matrix_free/no_index_initialize.cc | 194 + .../no_index_initialize/cmp/generic | 5 + tests/matrix_free/quadrature_points.cc | 19 +- tests/matrix_free/step-37.cc | 32 +- tests/matrix_free/step-37/cmp/generic | 6 +- tests/matrix_free/thread_correctness.cc | 49 +- tests/matrix_free/thread_correctness_hp.cc | 61 +- tests/matrix_free/update_mapping_only.cc | 95 + .../update_mapping_only/cmp/generic | 79 + tests/mesh_converter/Makefile | 29 +- tests/mesh_converter/meshes/2d/2d_test.cub | Bin 0 -> 22952 bytes tests/mesh_converter/meshes/2d/2d_test.inp | 252 + tests/mesh_converter/meshes/2d/2d_test.ucd | 251 + tests/mesh_converter/meshes/2d/quad.cub | Bin 0 -> 14372 bytes tests/mesh_converter/meshes/2d/quad.inp | 29 + tests/mesh_converter/meshes/2d/quad.ucd | 25 + tests/mesh_converter/meshes/3d/CC.cub | Bin 0 -> 51528 bytes .../mesh_converter/meshes/3d/CC_cubit_new.inp | 157 + .../mesh_converter/meshes/3d/CC_cubit_new.ucd | 106 + .../mesh_converter/meshes/3d/CC_cubit_old.inp | 113 + .../mesh_converter/meshes/3d/CC_cubit_old.ucd | 106 + .../mesh_converter/meshes/3d/other_simple.inp | 17 + .../mesh_converter/meshes/3d/other_simple.ucd | 13 + .../mesh_converter/meshes/3d/test_cube_1.cub | Bin 0 -> 25385 bytes .../mesh_converter/meshes/3d/test_cube_1.inp | 25 + .../mesh_converter/meshes/3d/test_cube_1.ucd | 19 + .../meshes/3d/test_cube_pave_1.cub | Bin 0 -> 29571 bytes .../meshes/3d/test_cube_pave_1.inp | 97 + .../meshes/3d/test_cube_pave_1.ucd | 91 + .../meshes/3d/test_cube_two_materials.cub | Bin 0 -> 27699 bytes .../meshes/3d/test_cube_two_materials.inp | 67 + .../meshes/3d/test_cube_two_materials.ucd | 63 + tests/metis/metis_01.cc | 62 +- tests/metis/metis_02.cc | 68 +- tests/metis/metis_03.cc | 64 +- tests/mpi/Makefile | 37 +- tests/mpi/blockvec_01.cc | 56 +- tests/mpi/coarse_grid_common.h | 85 +- tests/mpi/collective_01.cc | 32 +- tests/mpi/collective_02.cc | 38 +- tests/mpi/collective_02_array.cc | 26 +- tests/mpi/collective_03.cc | 38 +- tests/mpi/collective_03_array.cc | 26 +- tests/mpi/compute_mean_value.cc | 48 +- tests/mpi/constraint_matrix_condense_01.cc | 38 +- tests/mpi/constraint_matrix_set_zero_01.cc | 85 + .../ncpu_1/cmp/generic | 10 + .../ncpu_2/cmp/generic | 21 + tests/mpi/constraint_matrix_set_zero_02.cc | 88 + .../ncpu_1/cmp/generic | 31 + .../ncpu_2/cmp/generic | 63 + tests/mpi/constraint_matrix_trilinos_bug.cc | 174 +- .../ncpu_10/cmp/generic | 12 +- .../ncpu_4/cmp/generic | 12 +- tests/mpi/count_dofs_per_block_01.cc | 30 +- tests/mpi/count_dofs_per_block_02.cc | 82 +- tests/mpi/count_dofs_per_component_01.cc | 40 +- tests/mpi/crash_01.cc | 28 +- tests/mpi/crash_02.cc | 26 +- tests/mpi/crash_03.cc | 60 +- tests/mpi/crash_04.cc | 99 +- tests/mpi/distribute_sp_01.cc | 62 +- tests/mpi/distribute_sp_02.cc | 103 +- tests/mpi/dof_handler_number_cache.cc | 114 +- tests/mpi/extract_boundary_dofs.cc | 38 +- tests/mpi/extract_constant_modes_01.cc | 78 +- tests/mpi/extract_locally_active_dofs.cc | 40 +- tests/mpi/fe_field_function_01.cc | 72 +- tests/mpi/flux_edge_01.cc | 231 + tests/mpi/flux_edge_01/ncpu_4/cmp/generic | 699 + tests/mpi/ghost_01.cc | 48 +- tests/mpi/ghost_02.cc | 60 +- tests/mpi/ghost_03.cc | 36 +- tests/mpi/integrate_difference.cc | 86 +- tests/mpi/interpolate_01.cc | 36 +- tests/mpi/interpolate_02.cc | 39 +- tests/mpi/interpolate_03.cc | 48 +- tests/mpi/interpolate_04.cc | 40 +- tests/mpi/is_locally_owned.cc | 68 +- tests/mpi/make_zero_boundary_values.cc | 34 +- tests/mpi/map_dofs_to_support_points.cc | 54 +- tests/mpi/matrix_free_01.cc | 106 +- tests/mpi/matrix_free_02.cc | 52 +- tests/mpi/matrix_free_03.cc | 106 +- tests/mpi/matrix_free_04.cc | 301 + tests/mpi/matrix_free_04/ncpu_1/cmp/generic | 13 + tests/mpi/matrix_free_04/ncpu_2/cmp/generic | 13 + tests/mpi/mesh_worker_matrix_01.cc | 296 + .../mesh_worker_matrix_01/ncpu_1/cmp/generic | 162 + .../mesh_worker_matrix_01/ncpu_2/cmp/generic | 167 + tests/mpi/mesh_worker_matrix_01/ordering.2 | 19 + tests/mpi/mg_01.cc | 93 +- tests/mpi/mg_01/ncpu_10/cmp/generic | 53 + tests/mpi/mg_01/ncpu_4/cmp/generic | 21 + tests/mpi/mg_02.cc | 139 +- tests/mpi/mg_02/ncpu_10/cmp/generic | 488 +- tests/mpi/mg_02/ncpu_4/cmp/generic | 104 +- tests/mpi/mg_03.cc | 105 +- tests/mpi/mg_03/ncpu_1/cmp/generic | 8 +- tests/mpi/mg_03/ncpu_10/cmp/generic | 56 +- tests/mpi/mg_03/ncpu_4/cmp/generic | 32 +- tests/mpi/mg_04.cc | 122 + tests/mpi/mg_04/ncpu_1/cmp/generic | 6 + tests/mpi/mg_04/ncpu_10/cmp/generic | 39 + tests/mpi/mg_04/ncpu_2/cmp/generic | 11 + tests/mpi/mg_04/ncpu_4/cmp/generic | 21 + tests/mpi/multigrid_adaptive.cc | 546 + .../mpi/multigrid_adaptive/ncpu_1/cmp/generic | 561 + .../mpi/multigrid_adaptive/ncpu_4/cmp/generic | 699 + tests/mpi/multigrid_uniform.cc | 540 + .../mpi/multigrid_uniform/ncpu_1/cmp/generic | 557 + .../mpi/multigrid_uniform/ncpu_4/cmp/generic | 557 + tests/mpi/no_flux_constraints.cc | 128 +- tests/mpi/no_flux_constraints_02.cc | 185 +- tests/mpi/no_flux_constraints_03.cc | 139 +- tests/mpi/p4est_2d_coarse_01.cc | 64 +- tests/mpi/p4est_2d_constraintmatrix_01.cc | 32 +- .../ncpu_10/cmp/generic | 24 + .../ncpu_4/cmp/generic | 16 + tests/mpi/p4est_2d_constraintmatrix_02.cc | 60 +- .../ncpu_10/cmp/generic | 16 +- .../ncpu_4/cmp/generic | 44 +- tests/mpi/p4est_2d_constraintmatrix_03.cc | 214 +- tests/mpi/p4est_2d_constraintmatrix_04.cc | 241 +- tests/mpi/p4est_2d_constraintmatrix_05.cc | 39 +- tests/mpi/p4est_2d_dofhandler_01.cc | 60 +- tests/mpi/p4est_2d_dofhandler_02.cc | 78 +- tests/mpi/p4est_2d_dofhandler_03.cc | 98 +- tests/mpi/p4est_2d_dofhandler_04.cc | 138 +- tests/mpi/p4est_2d_dofhandler_05.cc | 22 +- tests/mpi/p4est_2d_ghost_01.cc | 106 +- tests/mpi/p4est_2d_ghost_02.cc | 142 +- tests/mpi/p4est_2d_refine_01.cc | 46 +- tests/mpi/p4est_2d_refine_02.cc | 76 +- .../p4est_2d_refine_02/ncpu_10/cmp/generic | 79 + .../mpi/p4est_2d_refine_02/ncpu_4/cmp/generic | 41 + tests/mpi/p4est_2d_refine_03.cc | 88 +- tests/mpi/p4est_2d_renumber_01.cc | 77 +- tests/mpi/p4est_2d_renumber_02.cc | 66 +- tests/mpi/p4est_2d_simple.cc | 54 +- tests/mpi/p4est_3d_constraintmatrix_01.cc | 50 +- tests/mpi/p4est_3d_constraintmatrix_02.cc | 70 +- tests/mpi/p4est_3d_constraintmatrix_03.cc | 246 +- tests/mpi/p4est_3d_constraintmatrix_04.cc | 46 +- tests/mpi/p4est_3d_ghost_01.cc | 102 +- tests/mpi/p4est_3d_refine_01.cc | 146 +- tests/mpi/p4est_3d_refine_02.cc | 78 +- tests/mpi/p4est_3d_refine_03.cc | 54 +- tests/mpi/p4est_3d_refine_04.cc | 114 +- tests/mpi/p4est_data_out_01.cc | 26 +- tests/mpi/p4est_get_subdomain_association.cc | 46 +- tests/mpi/p4est_max_refine.cc | 68 +- tests/mpi/p4est_save_01.cc | 56 +- tests/mpi/p4est_save_02.cc | 90 +- tests/mpi/p4est_save_03.cc | 60 +- tests/mpi/parallel_block_vector_01.cc | 255 + .../ncpu_1/cmp/generic | 24 + .../ncpu_10/cmp/generic | 24 + .../ncpu_4/cmp/generic | 24 + tests/mpi/parallel_partitioner_01.cc | 49 +- tests/mpi/parallel_partitioner_02.cc | 43 +- tests/mpi/parallel_partitioner_03.cc | 41 +- tests/mpi/parallel_partitioner_04.cc | 45 +- tests/mpi/parallel_vector_01.cc | 34 +- tests/mpi/parallel_vector_02.cc | 40 +- tests/mpi/parallel_vector_03.cc | 43 +- tests/mpi/parallel_vector_04.cc | 54 +- tests/mpi/parallel_vector_05.cc | 40 +- tests/mpi/parallel_vector_06.cc | 76 +- tests/mpi/parallel_vector_07.cc | 52 +- tests/mpi/parallel_vector_08.cc | 80 +- tests/mpi/parallel_vector_09.cc | 49 +- tests/mpi/parallel_vector_10.cc | 35 +- tests/mpi/parallel_vector_11.cc | 30 +- tests/mpi/parallel_vector_12.cc | 44 +- tests/mpi/parallel_vector_13.cc | 116 + .../parallel_vector_13/ncpu_10/cmp/generic | 8 + .../mpi/parallel_vector_13/ncpu_4/cmp/generic | 8 + tests/mpi/parallel_vector_back_interpolate.cc | 99 + .../ncpu_4/cmp/generic | 1 + tests/mpi/parallel_vector_interpolate.cc | 98 + .../ncpu_4/cmp/generic | 1 + tests/mpi/petsc_01.cc | 56 +- tests/mpi/petsc_02.cc | 28 +- tests/mpi/petsc_03.cc | 22 +- tests/mpi/petsc_distribute_01.cc | 167 + .../petsc_distribute_01/ncpu_1/cmp/generic | 2 + .../petsc_distribute_01/ncpu_10/cmp/generic | 2 + .../petsc_distribute_01/ncpu_2/cmp/generic | 2 + .../petsc_distribute_01/ncpu_4/cmp/generic | 2 + tests/mpi/petsc_distribute_01_block.cc | 201 + .../ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../ncpu_2/cmp/generic | 2 + .../ncpu_4/cmp/generic | 2 + tests/mpi/petsc_distribute_01_inhomogenous.cc | 161 + .../ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../ncpu_2/cmp/generic | 2 + .../ncpu_4/cmp/generic | 2 + tests/mpi/petsc_locally_owned_elements.cc | 85 + .../ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../ncpu_2/cmp/generic | 2 + .../ncpu_4/cmp/generic | 2 + tests/mpi/point_to_point_pattern_01.cc | 82 +- .../refine_and_coarsen_fixed_fraction_01.cc | 92 +- .../refine_and_coarsen_fixed_fraction_02.cc | 106 +- .../refine_and_coarsen_fixed_fraction_03.cc | 66 +- .../refine_and_coarsen_fixed_fraction_04.cc | 106 +- .../refine_and_coarsen_fixed_fraction_05.cc | 104 +- .../refine_and_coarsen_fixed_fraction_06.cc | 108 +- .../mpi/refine_and_coarsen_fixed_number_01.cc | 70 +- .../mpi/refine_and_coarsen_fixed_number_02.cc | 70 +- .../mpi/refine_and_coarsen_fixed_number_03.cc | 66 +- .../mpi/refine_and_coarsen_fixed_number_04.cc | 106 +- .../mpi/refine_and_coarsen_fixed_number_05.cc | 104 +- .../mpi/refine_and_coarsen_fixed_number_06.cc | 40 +- tests/mpi/refinement_listener_01.cc | 34 +- tests/mpi/refinement_listener_02.cc | 40 +- tests/mpi/renumber_z_order_01.cc | 30 +- tests/mpi/renumber_z_order_02.cc | 38 +- tests/mpi/simple_mpi_01.cc | 46 +- tests/mpi/solution_transfer_01.cc | 40 +- tests/mpi/step-39.cc | 795 + tests/mpi/step-39/ncpu_1/cmp/generic | 62 + tests/mpi/step-39/ncpu_2/cmp/generic | 62 + tests/mpi/step-39/ncpu_6/cmp/generic | 699 + tests/mpi/step-40.cc | 148 +- tests/mpi/step-40_direct_solver.cc | 140 +- tests/mpi/step-48.cc | 41 +- tests/mpi/tria_01.cc | 85 + tests/mpi/tria_01/ncpu_10/cmp/generic | 82 + tests/mpi/tria_01/ncpu_2/cmp/generic | 18 + tests/mpi/tria_01/ncpu_4/cmp/generic | 34 + tests/mpi/tria_copy_triangulation.cc | 144 + .../ncpu_1/cmp/generic | 97 + .../ncpu_2/cmp/generic | 65 + .../ncpu_4/cmp/generic | 49 + tests/mpi/trilinos_01.cc | 52 +- tests/mpi/trilinos_02.cc | 24 +- tests/mpi/trilinos_bug_5609.cc | 36 +- tests/mpi/trilinos_compress_bug.cc | 64 +- tests/mpi/trilinos_distribute_01.cc | 172 + .../trilinos_distribute_01/ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../trilinos_distribute_01/ncpu_2/cmp/generic | 2 + .../trilinos_distribute_01/ncpu_4/cmp/generic | 2 + tests/mpi/trilinos_distribute_01_block.cc | 205 + .../ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../ncpu_2/cmp/generic | 2 + .../ncpu_4/cmp/generic | 2 + .../trilinos_distribute_01_inhomogenous.cc | 166 + .../ncpu_1/cmp/generic | 2 + .../ncpu_10/cmp/generic | 2 + .../ncpu_2/cmp/generic | 2 + .../ncpu_4/cmp/generic | 2 + tests/mpi/trilinos_distribute_03.cc | 80 + .../trilinos_distribute_03/ncpu_1/cmp/generic | 2 + .../trilinos_distribute_03/ncpu_2/cmp/generic | 2 + tests/mpi/trilinos_distribute_04.cc | 142 + .../trilinos_distribute_04/ncpu_1/cmp/generic | 37 + .../trilinos_distribute_04/ncpu_2/cmp/generic | 29 + tests/mpi/trilinos_ghost_01.cc | 30 +- tests/mpi/trilinos_ghost_02.cc | 42 +- tests/mpi/trilinos_ghost_03.cc | 36 +- tests/mpi/trilinos_ghost_03_linfty.cc | 38 +- tests/mpi/trilinos_ghost_05.cc | 40 +- .../mpi/trilinos_locally_owned_elements_01.cc | 92 + .../ncpu_2/cmp/generic | 2 + tests/mpi/trilinos_matvec_01.cc | 56 +- tests/mpi/trilinos_matvec_02.cc | 54 +- tests/mpi/trilinos_matvec_03.cc | 166 + .../mpi/trilinos_matvec_03/ncpu_2/cmp/generic | 2 + tests/mpi/trilinos_sparse_matrix_01.cc | 139 + .../ncpu_1/cmp/generic | 3 + .../ncpu_2/cmp/generic | 3 + tests/mpi/trilinos_sparse_matrix_mmult_01.cc | 104 +- tests/mpi/trilinos_sparse_matrix_print_01.cc | 50 +- tests/mpi/trilinos_vector_ghosts_01.cc | 95 + .../ncpu_4/cmp/generic | 2 + tests/mpi/trilinos_vector_reinit.cc | 32 +- tests/multigrid/boundary_01.cc | 44 +- tests/multigrid/count_01.cc | 52 +- tests/multigrid/cycles.cc | 80 +- tests/multigrid/cycles/cmp/generic | 14 + tests/multigrid/dof_01.cc | 46 +- tests/multigrid/dof_02.cc | 62 +- tests/multigrid/dof_03.cc | 76 +- tests/multigrid/mg_output.cc | 200 +- tests/multigrid/mg_renumbered_01.cc | 420 +- tests/multigrid/mg_renumbered_02.cc | 270 +- tests/multigrid/mg_renumbered_03.cc | 322 +- tests/multigrid/renumbering_01.cc | 78 +- tests/multigrid/renumbering_02.cc | 27 +- tests/multigrid/renumbering_03.cc | 32 +- tests/multigrid/smoother_block.cc | 204 +- tests/multigrid/step-16.cc | 1220 +- tests/multigrid/step-39-02.cc | 761 + tests/multigrid/step-39-02/cmp/generic | 74 + tests/multigrid/step-39-03.cc | 762 + tests/multigrid/step-39-03/cmp/generic | 86 + tests/multigrid/step-39.cc | 63 +- tests/multigrid/transfer_01.cc | 78 +- tests/multigrid/transfer_02.cc | 100 +- tests/multigrid/transfer_03.cc | 158 +- tests/multigrid/transfer_block.cc | 126 +- tests/multigrid/transfer_block_select.cc | 98 +- tests/multigrid/transfer_compare_01.cc | 134 +- tests/multigrid/transfer_prebuilt_01.cc | 85 + .../transfer_prebuilt_01/cmp/generic | 6158 + tests/multigrid/transfer_prebuilt_02.cc | 93 + .../transfer_prebuilt_02/cmp/generic | 5976 + tests/multigrid/transfer_prebuilt_03.cc | 98 + .../transfer_prebuilt_03/cmp/generic | 5976 + tests/multigrid/transfer_select.cc | 92 +- tests/multigrid/transfer_system_01.cc | 42 +- tests/multigrid/transfer_system_02.cc | 54 +- tests/multigrid/transfer_system_03.cc | 50 +- tests/multigrid/transfer_system_04.cc | 44 +- tests/multigrid/transfer_system_05.cc | 77 +- .../multigrid/transfer_system_adaptive_01.cc | 72 +- .../multigrid/transfer_system_adaptive_02.cc | 76 +- .../multigrid/transfer_system_adaptive_03.cc | 76 +- .../multigrid/transfer_system_adaptive_04.cc | 86 +- .../multigrid/transfer_system_adaptive_05.cc | 74 +- .../multigrid/transfer_system_adaptive_06.cc | 78 +- .../multigrid/transfer_system_adaptive_07.cc | 94 +- .../multigrid/transfer_system_adaptive_08.cc | 96 +- .../multigrid/transfer_system_adaptive_09.cc | 107 +- tests/normalize.pl | 7 +- tests/petsc/01.cc | 60 +- tests/petsc/02.cc | 60 +- tests/petsc/04.cc | 54 +- tests/petsc/05.cc | 60 +- tests/petsc/06.cc | 66 +- tests/petsc/07.cc | 66 +- tests/petsc/08.cc | 64 +- tests/petsc/09.cc | 66 +- tests/petsc/10.cc | 66 +- tests/petsc/11.cc | 58 +- tests/petsc/12.cc | 68 +- tests/petsc/13.cc | 64 +- tests/petsc/17.cc | 58 +- tests/petsc/18.cc | 58 +- tests/petsc/19.cc | 58 +- tests/petsc/20.cc | 64 +- tests/petsc/21.cc | 64 +- tests/petsc/22.cc | 60 +- tests/petsc/23.cc | 64 +- tests/petsc/24.cc | 60 +- tests/petsc/25.cc | 60 +- tests/petsc/26.cc | 56 +- tests/petsc/27.cc | 66 +- tests/petsc/28.cc | 66 +- tests/petsc/29.cc | 56 +- tests/petsc/30.cc | 60 +- tests/petsc/31.cc | 58 +- tests/petsc/32.cc | 58 +- tests/petsc/33.cc | 58 +- tests/petsc/34.cc | 60 +- tests/petsc/35.cc | 64 +- tests/petsc/36.cc | 64 +- tests/petsc/37.cc | 58 +- tests/petsc/38.cc | 60 +- tests/petsc/39.cc | 60 +- tests/petsc/40.cc | 58 +- tests/petsc/41.cc | 60 +- tests/petsc/42.cc | 60 +- tests/petsc/43.cc | 58 +- tests/petsc/44.cc | 58 +- tests/petsc/45.cc | 58 +- tests/petsc/46.cc | 58 +- tests/petsc/47.cc | 58 +- tests/petsc/48.cc | 58 +- tests/petsc/49.cc | 58 +- tests/petsc/50.cc | 68 +- tests/petsc/51.cc | 66 +- tests/petsc/52.cc | 64 +- tests/petsc/55.cc | 64 +- tests/petsc/56.cc | 64 +- tests/petsc/57.cc | 68 +- tests/petsc/58.cc | 60 +- tests/petsc/59.cc | 60 +- tests/petsc/60.cc | 66 +- tests/petsc/61.cc | 72 +- tests/petsc/62.cc | 52 +- tests/petsc/63.cc | 54 +- tests/petsc/64.cc | 80 +- tests/petsc/65.cc | 52 +- tests/petsc/66.cc | 72 +- tests/petsc/67.cc | 86 +- tests/petsc/68.cc | 76 +- tests/petsc/69.cc | 90 +- tests/petsc/70.cc | 24 +- tests/petsc/block_vector_iterator_01.cc | 70 +- tests/petsc/block_vector_iterator_02.cc | 70 +- tests/petsc/block_vector_iterator_03.cc | 324 +- tests/petsc/deal_solver_01.cc | 32 +- tests/petsc/deal_solver_02.cc | 34 +- tests/petsc/deal_solver_02/cmp/generic | 4 +- tests/petsc/deal_solver_03.cc | 32 +- tests/petsc/deal_solver_04.cc | 32 +- tests/petsc/deal_solver_05.cc | 32 +- tests/petsc/full_matrix_01.cc | 60 +- tests/petsc/full_matrix_02.cc | 60 +- tests/petsc/full_matrix_04.cc | 54 +- tests/petsc/full_matrix_05.cc | 64 +- tests/petsc/full_matrix_06.cc | 66 +- tests/petsc/full_matrix_07.cc | 66 +- tests/petsc/full_matrix_08.cc | 64 +- tests/petsc/full_matrix_09.cc | 66 +- tests/petsc/full_matrix_10.cc | 66 +- tests/petsc/full_matrix_iterator_01.cc | 56 +- tests/petsc/full_matrix_vector_01.cc | 58 +- tests/petsc/full_matrix_vector_02.cc | 58 +- tests/petsc/full_matrix_vector_03.cc | 58 +- tests/petsc/full_matrix_vector_04.cc | 58 +- tests/petsc/full_matrix_vector_05.cc | 58 +- tests/petsc/full_matrix_vector_06.cc | 58 +- tests/petsc/full_matrix_vector_07.cc | 58 +- tests/petsc/parallel_sparse_matrix_01.cc | 96 +- tests/petsc/petsc_mf_testmatrix.h | 146 +- tests/petsc/slowness_01.cc | 78 +- tests/petsc/slowness_02.cc | 72 +- tests/petsc/slowness_03.cc | 70 +- tests/petsc/slowness_04.cc | 92 +- tests/petsc/solver_01.cc | 46 +- tests/petsc/solver_02.cc | 44 +- tests/petsc/solver_03.cc | 40 +- tests/petsc/solver_03_mf.cc | 36 +- .../petsc/solver_03_precondition_boomeramg.cc | 32 +- ...ver_03_precondition_boomeramg_symmetric.cc | 32 +- .../petsc/solver_03_precondition_eisenstat.cc | 32 +- tests/petsc/solver_03_precondition_icc.cc | 32 +- tests/petsc/solver_03_precondition_ilu.cc | 32 +- tests/petsc/solver_03_precondition_lu.cc | 40 +- .../petsc/solver_03_precondition_parasails.cc | 32 +- tests/petsc/solver_03_precondition_sor.cc | 32 +- tests/petsc/solver_03_precondition_ssor.cc | 32 +- tests/petsc/solver_04.cc | 40 +- tests/petsc/solver_05.cc | 40 +- tests/petsc/solver_06.cc | 40 +- tests/petsc/solver_07.cc | 38 +- tests/petsc/solver_08.cc | 40 +- tests/petsc/solver_09.cc | 40 +- tests/petsc/solver_10.cc | 40 +- tests/petsc/solver_11.cc | 44 +- tests/petsc/solver_12.cc | 40 +- tests/petsc/solver_13.cc | 44 +- tests/petsc/sparse_direct_mumps.cc | 34 +- tests/petsc/sparse_matrix_01.cc | 38 +- tests/petsc/sparse_matrix_02.cc | 106 + tests/petsc/sparse_matrix_02/cmp/generic | 2 + tests/petsc/sparse_matrix_iterator_01.cc | 56 +- tests/petsc/sparse_matrix_vector_01.cc | 58 +- tests/petsc/sparse_matrix_vector_02.cc | 58 +- tests/petsc/sparse_matrix_vector_03.cc | 58 +- tests/petsc/sparse_matrix_vector_04.cc | 58 +- tests/petsc/sparse_matrix_vector_05.cc | 58 +- tests/petsc/sparse_matrix_vector_06.cc | 58 +- tests/petsc/sparse_matrix_vector_07.cc | 58 +- tests/petsc/vector_assign_01.cc | 58 +- tests/petsc/vector_assign_02.cc | 58 +- tests/petsc/vector_equality_1.cc | 56 +- tests/petsc/vector_equality_2.cc | 60 +- tests/petsc/vector_equality_3.cc | 56 +- tests/petsc/vector_equality_4.cc | 60 +- tests/petsc/vector_print.cc | 102 + tests/petsc/vector_print/cmp/generic | 12 + tests/petsc/vector_wrap_01.cc | 64 +- tests/serialization/dof_handler_01.cc | 191 +- tests/serialization/parameter_handler.cc | 106 +- tests/serialization/point.cc | 22 +- tests/serialization/pointer_01.cc | 96 +- tests/serialization/pointer_02.cc | 114 +- tests/serialization/pointer_03.cc | 130 +- tests/serialization/pointer_04.cc | 134 +- tests/serialization/pointer_05.cc | 156 +- tests/serialization/polynomial.cc | 30 +- .../serialization/polynomial_hierarchical.cc | 28 +- .../polynomial_lagrange_equidistant.cc | 22 +- tests/serialization/polynomial_lagrange_gl.cc | 26 +- tests/serialization/polynomial_legendre.cc | 22 +- tests/serialization/polynomial_lobatto.cc | 22 +- tests/serialization/polynomial_monomial.cc | 26 +- tests/serialization/quadrature.cc | 36 +- .../serialization/quadrature_qanisotropic.cc | 36 +- tests/serialization/quadrature_qiterated.cc | 36 +- tests/serialization/serialization.h | 37 +- tests/serialization/sparsity_pattern.cc | 28 +- tests/serialization/symmetric_tensor.cc | 36 +- tests/serialization/table_1.cc | 36 +- tests/serialization/table_2.cc | 43 +- tests/serialization/table_3.cc | 52 +- tests/serialization/table_4.cc | 55 +- tests/serialization/table_5.cc | 62 +- tests/serialization/table_6.cc | 65 +- tests/serialization/table_7.cc | 72 +- tests/serialization/table_handler.cc | 36 +- tests/serialization/tensor.cc | 34 +- tests/serialization/tensor_base.cc | 22 +- tests/serialization/tensor_base_scalar.cc | 22 +- tests/serialization/test_01.cc | 90 +- tests/serialization/triangulation_01.cc | 137 +- tests/serialization/triangulation_02.cc | 140 +- tests/serialization/vector.cc | 40 +- tests/slepc/00.cc | 92 +- tests/tests.h | 296 +- tests/trilinos/01.cc | 58 +- tests/trilinos/02.cc | 64 +- tests/trilinos/03.cc | 66 +- tests/trilinos/03a.cc | 68 +- tests/trilinos/03b.cc | 68 +- tests/trilinos/04.cc | 56 +- tests/trilinos/05.cc | 62 +- tests/trilinos/06.cc | 68 +- tests/trilinos/07.cc | 68 +- tests/trilinos/08.cc | 66 +- tests/trilinos/09.cc | 68 +- tests/trilinos/10.cc | 68 +- tests/trilinos/11.cc | 60 +- tests/trilinos/12.cc | 68 +- tests/trilinos/13.cc | 68 +- tests/trilinos/14.cc | 70 +- tests/trilinos/15.cc | 68 +- tests/trilinos/16.cc | 68 +- tests/trilinos/17.cc | 60 +- tests/trilinos/18.cc | 60 +- tests/trilinos/19.cc | 60 +- tests/trilinos/20.cc | 70 +- tests/trilinos/21.cc | 68 +- tests/trilinos/22.cc | 62 +- tests/trilinos/23.cc | 66 +- tests/trilinos/24.cc | 62 +- tests/trilinos/25.cc | 62 +- tests/trilinos/26.cc | 58 +- tests/trilinos/27.cc | 68 +- tests/trilinos/28.cc | 68 +- tests/trilinos/29.cc | 58 +- tests/trilinos/30.cc | 62 +- tests/trilinos/31.cc | 60 +- tests/trilinos/32.cc | 60 +- tests/trilinos/33.cc | 60 +- tests/trilinos/34.cc | 62 +- tests/trilinos/35.cc | 66 +- tests/trilinos/36.cc | 66 +- tests/trilinos/37.cc | 60 +- tests/trilinos/38.cc | 62 +- tests/trilinos/39.cc | 62 +- tests/trilinos/40.cc | 60 +- tests/trilinos/41.cc | 62 +- tests/trilinos/42.cc | 62 +- tests/trilinos/43.cc | 60 +- tests/trilinos/44.cc | 60 +- tests/trilinos/45.cc | 60 +- tests/trilinos/46.cc | 60 +- tests/trilinos/47.cc | 60 +- tests/trilinos/48.cc | 60 +- tests/trilinos/49.cc | 60 +- tests/trilinos/49a.cc | 70 +- tests/trilinos/49b.cc | 61 +- tests/trilinos/50.cc | 70 +- tests/trilinos/51.cc | 68 +- tests/trilinos/52.cc | 67 +- tests/trilinos/53.cc | 68 +- tests/trilinos/54.cc | 68 +- tests/trilinos/55.cc | 68 +- tests/trilinos/56.cc | 68 +- tests/trilinos/57.cc | 70 +- tests/trilinos/58.cc | 62 +- tests/trilinos/59.cc | 62 +- tests/trilinos/60.cc | 68 +- tests/trilinos/61.cc | 74 +- tests/trilinos/62.cc | 54 +- tests/trilinos/63.cc | 56 +- tests/trilinos/64.cc | 80 +- tests/trilinos/65.cc | 59 +- tests/trilinos/66.cc | 76 +- tests/trilinos/66/cmp/generic | 4 +- tests/trilinos/67.cc | 80 +- tests/trilinos/67/cmp/generic | 4 +- tests/trilinos/68.cc | 80 +- tests/trilinos/68/cmp/generic | 4 +- tests/trilinos/69.cc | 84 +- tests/trilinos/69/cmp/generic | 4 +- tests/trilinos/70.cc | 28 +- tests/trilinos/block_sparse_matrix_add_01.cc | 154 +- tests/trilinos/block_sparse_matrix_set_01.cc | 156 +- .../trilinos/block_sparse_matrix_vector_01.cc | 130 + .../block_sparse_matrix_vector_01/cmp/generic | 2 + .../trilinos/block_sparse_matrix_vector_02.cc | 124 + .../block_sparse_matrix_vector_02/cmp/generic | 2 + .../trilinos/block_sparse_matrix_vector_03.cc | 124 + .../block_sparse_matrix_vector_03/cmp/generic | 2 + .../trilinos/block_sparse_matrix_vector_04.cc | 116 + .../block_sparse_matrix_vector_04/cmp/generic | 2 + tests/trilinos/block_vector_iterator_01.cc | 72 +- tests/trilinos/block_vector_iterator_02.cc | 72 +- tests/trilinos/block_vector_iterator_03.cc | 326 +- tests/trilinos/deal_solver_01.cc | 40 +- tests/trilinos/deal_solver_02.cc | 44 +- tests/trilinos/deal_solver_02/cmp/generic | 4 +- tests/trilinos/deal_solver_03.cc | 42 +- tests/trilinos/deal_solver_04.cc | 42 +- tests/trilinos/deal_solver_05.cc | 42 +- tests/trilinos/deal_solver_06.cc | 30 +- tests/trilinos/mg_transfer_prebuilt_01.cc | 98 +- tests/trilinos/parallel_sparse_matrix_01.cc | 108 +- tests/trilinos/precondition_q_iso_q1.cc | 355 + .../precondition_q_iso_q1/cmp/generic | 11 + tests/trilinos/slowness_01.cc | 78 +- tests/trilinos/slowness_02.cc | 72 +- tests/trilinos/slowness_03.cc | 73 +- tests/trilinos/slowness_04.cc | 97 +- tests/trilinos/slowness_04/cmp/generic | 2 +- tests/trilinos/solver_03.cc | 42 +- tests/trilinos/solver_05.cc | 42 +- tests/trilinos/solver_07.cc | 36 +- tests/trilinos/solver_07/cmp/generic | 2 +- tests/trilinos/sparse_matrix_01.cc | 32 +- tests/trilinos/sparse_matrix_02.cc | 29 +- tests/trilinos/sparse_matrix_03.cc | 27 +- tests/trilinos/sparse_matrix_04.cc | 30 +- tests/trilinos/sparse_matrix_05.cc | 27 +- tests/trilinos/sparse_matrix_07.cc | 27 +- tests/trilinos/sparse_matrix_07_rectangle.cc | 29 +- tests/trilinos/sparse_matrix_add_01.cc | 121 +- tests/trilinos/sparse_matrix_add_02.cc | 106 +- tests/trilinos/sparse_matrix_copy_from_01.cc | 30 +- tests/trilinos/sparse_matrix_iterator.cc | 61 +- tests/trilinos/sparse_matrix_iterator_01.cc | 44 +- tests/trilinos/sparse_matrix_set_01.cc | 114 +- tests/trilinos/sparse_matrix_set_02.cc | 106 +- tests/trilinos/sparse_matrix_vector_01.cc | 60 +- tests/trilinos/sparse_matrix_vector_02.cc | 60 +- tests/trilinos/sparse_matrix_vector_03.cc | 60 +- tests/trilinos/sparse_matrix_vector_04.cc | 58 +- tests/trilinos/sparse_matrix_vector_05.cc | 60 +- tests/trilinos/sparse_matrix_vector_06.cc | 60 +- tests/trilinos/sparse_matrix_vector_07.cc | 60 +- tests/trilinos/sparse_matrix_vector_08.cc | 112 + .../sparse_matrix_vector_08/cmp/generic | 2 + tests/trilinos/sparse_matrix_vector_09.cc | 112 + .../sparse_matrix_vector_09/cmp/generic | 2 + tests/trilinos/sparse_matrix_vector_10.cc | 113 + .../sparse_matrix_vector_10/cmp/generic | 2 + tests/trilinos/sparse_matrix_vector_11.cc | 112 + .../sparse_matrix_vector_11/cmp/generic | 2 + tests/trilinos/sparsity_pattern_01.cc | 28 +- tests/trilinos/sparsity_pattern_02.cc | 28 +- tests/trilinos/sparsity_pattern_03.cc | 28 +- tests/trilinos/sparsity_pattern_common.h | 35 +- tests/trilinos/trilinos_64_bit_crash_01.cc | 69 + .../trilinos_64_bit_crash_01/cmp/generic | 4 + .../trilinos_sparse_matrix_iterator_01.cc | 44 +- .../trilinos_sparse_matrix_iterator_02.cc | 44 +- .../trilinos_sparse_matrix_iterator_03.cc | 44 +- .../trilinos_sparse_matrix_iterator_04.cc | 44 +- .../trilinos_sparse_matrix_iterator_05.cc | 44 +- .../trilinos_sparse_matrix_iterator_06.cc | 44 +- .../trilinos_sparse_matrix_iterator_07.cc | 44 +- .../trilinos_sparse_matrix_iterator_08.cc | 44 +- .../trilinos_sparse_matrix_iterator_09.cc | 54 +- .../trilinos_sparse_matrix_iterator_10.cc | 54 +- .../trilinos_sparse_matrix_iterator_11.cc | 54 +- .../trilinos_sparse_matrix_iterator_12.cc | 54 +- tests/trilinos/vector_assign_01.cc | 60 +- tests/trilinos/vector_assign_02.cc | 60 +- tests/trilinos/vector_equality_1.cc | 58 +- tests/trilinos/vector_equality_2.cc | 62 +- tests/trilinos/vector_equality_3.cc | 58 +- tests/trilinos/vector_equality_4.cc | 62 +- tests/trilinos/vector_swap_01.cc | 76 +- tests/umfpack/umfpack_01.cc | 61 +- tests/umfpack/umfpack_01/cmp/generic | 24 + tests/umfpack/umfpack_02.cc | 64 +- tests/umfpack/umfpack_02/cmp/generic | 24 + tests/umfpack/umfpack_03.cc | 55 +- tests/umfpack/umfpack_03/cmp/generic | 24 + tests/umfpack/umfpack_04.cc | 168 +- tests/umfpack/umfpack_05.cc | 40 +- tests/umfpack/umfpack_06.cc | 40 +- tests/umfpack/umfpack_07.cc | 56 +- tests/umfpack/umfpack_08.cc | 78 +- tests/umfpack/umfpack_09.cc | 78 +- tests/umfpack/umfpack_10.cc | 44 +- tests/umfpack/umfpack_11.cc | 173 + tests/umfpack/umfpack_11/cmp/generic | 25 + 3114 files changed, 1831643 insertions(+), 106531 deletions(-) create mode 100644 tests/CMakeLists.txt create mode 100644 tests/base/convergence_table_04.cc create mode 100644 tests/base/convergence_table_04/cmp/generic create mode 100644 tests/base/data_out_base_vtk_cycle.cc create mode 100644 tests/base/data_out_base_vtk_cycle/cmp/generic create mode 100644 tests/base/data_out_base_vtk_time.cc create mode 100644 tests/base/data_out_base_vtk_time/cmp/generic create mode 100644 tests/base/data_out_base_vtk_time_and_cycle.cc create mode 100644 tests/base/data_out_base_vtk_time_and_cycle/cmp/generic create mode 100644 tests/base/data_out_base_vtu_cycle.cc create mode 100644 tests/base/data_out_base_vtu_cycle/cmp/generic create mode 100644 tests/base/data_out_base_vtu_time.cc create mode 100644 tests/base/data_out_base_vtu_time/cmp/generic create mode 100644 tests/base/data_out_base_vtu_time_and_cycle.cc create mode 100644 tests/base/data_out_base_vtu_time_and_cycle/cmp/generic create mode 100644 tests/base/functions_09.cc create mode 100644 tests/base/functions_09/cmp/generic create mode 100644 tests/base/index_set_20_offset.cc create mode 100644 tests/base/index_set_20_offset/cmp/generic create mode 100644 tests/base/index_set_23.cc create mode 100644 tests/base/index_set_23/cmp/generic create mode 100644 tests/base/index_set_readwrite_03.cc create mode 100644 tests/base/index_set_readwrite_03/cmp/generic create mode 100644 tests/base/log_precision.cc create mode 100644 tests/base/log_precision/cmp/generic create mode 100644 tests/base/log_width.cc create mode 100644 tests/base/log_width/cmp/generic create mode 100644 tests/base/symmetric_tensor_27.cc create mode 100644 tests/base/symmetric_tensor_27/cmp/generic create mode 100644 tests/base/table_handler_13.cc create mode 100644 tests/base/table_handler_13/cmp/generic create mode 100644 tests/base/table_indices_01.cc create mode 100644 tests/base/table_indices_01/cmp/generic create mode 100644 tests/base/tensor_24.cc create mode 100644 tests/base/tensor_24/cmp/generic create mode 100644 tests/base/tensor_25.cc create mode 100644 tests/base/tensor_25/cmp/generic create mode 100644 tests/base/work_stream_03.cc create mode 100644 tests/base/work_stream_03/cmp/generic mode change 100644 => 100755 tests/benchmarks/bench.sh mode change 100644 => 100755 tests/benchmarks/benchrev.sh delete mode 100644 tests/benchmarks/index.html mode change 100644 => 100755 tests/benchmarks/plot.sh mode change 100644 => 100755 tests/benchmarks/setup.sh create mode 100644 tests/benchmarks/step-22/CMakeLists.txt delete mode 100644 tests/benchmarks/step-22/Makefile create mode 100644 tests/benchmarks/tablehandler/CMakeLists.txt delete mode 100644 tests/benchmarks/tablehandler/Makefile create mode 100644 tests/benchmarks/test_assembly/CMakeLists.txt delete mode 100644 tests/benchmarks/test_assembly/Makefile create mode 100644 tests/benchmarks/test_poisson/CMakeLists.txt delete mode 100644 tests/benchmarks/test_poisson/Makefile mode change 100644 => 100755 tests/benchmarks/testlist.sh create mode 100644 tests/bits/chunk_sparse_matrix_11.cc create mode 100644 tests/bits/chunk_sparse_matrix_11/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_12.cc create mode 100644 tests/bits/chunk_sparse_matrix_12/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_13.cc create mode 100644 tests/bits/chunk_sparse_matrix_13/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_14.cc create mode 100644 tests/bits/chunk_sparse_matrix_14/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_15.cc create mode 100644 tests/bits/chunk_sparse_matrix_15/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_01.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_01/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_02.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_02/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_03.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_03/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_04.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_04/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_05.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_05/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_06.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_06/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_07.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_07/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_08.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_08/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_09.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_09/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_10.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_10/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_11.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_11/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_12.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_12/cmp/generic create mode 100644 tests/bits/chunk_sparse_matrix_iterator_13.cc create mode 100644 tests/bits/chunk_sparse_matrix_iterator_13/cmp/generic create mode 100644 tests/bits/data_out_06.cc create mode 100644 tests/bits/data_out_06/cmp/generic create mode 100644 tests/bits/data_out_07.cc create mode 100644 tests/bits/data_out_07/cmp/generic create mode 100644 tests/bits/data_out_faces_05.cc create mode 100644 tests/bits/data_out_faces_05/cmp/generic create mode 100644 tests/bits/data_out_multi_dh_01.cc create mode 100644 tests/bits/data_out_multi_dh_01/cmp/generic create mode 100644 tests/bits/data_out_multi_dh_02.cc create mode 100644 tests/bits/data_out_multi_dh_02/cmp/generic create mode 100644 tests/bits/data_out_multi_dh_03.cc create mode 100644 tests/bits/data_out_multi_dh_03/cmp/generic create mode 100644 tests/bits/data_out_multi_dh_04.cc create mode 100644 tests/bits/data_out_multi_dh_04/cmp/generic create mode 100644 tests/bits/data_out_multi_dh_05.cc create mode 100644 tests/bits/data_out_multi_dh_05/cmp/generic create mode 100644 tests/bits/data_out_rotation_05.cc create mode 100644 tests/bits/data_out_rotation_05/cmp/generic create mode 100644 tests/bits/dof_tools_21_b_x.cc create mode 100644 tests/bits/dof_tools_21_b_x/cmp/generic create mode 100644 tests/bits/dof_tools_21_b_x_q3.cc create mode 100644 tests/bits/dof_tools_21_b_x_q3/cmp/generic create mode 100644 tests/bits/dof_tools_21_b_y.cc create mode 100644 tests/bits/dof_tools_21_b_y/cmp/generic create mode 100644 tests/bits/faceq_face_interpolation.cc create mode 100644 tests/bits/faceq_face_interpolation/cmp/generic create mode 100644 tests/bits/faceq_subface_interpolation.cc create mode 100644 tests/bits/faceq_subface_interpolation/cmp/generic delete mode 100644 tests/bits/fe_face_to_cell_index.cc delete mode 100644 tests/bits/fe_face_to_cell_index/cmp/generic create mode 100644 tests/bits/fe_tools_06b.cc create mode 100644 tests/bits/fe_tools_06b/cmp/generic delete mode 100644 tests/bits/fe_tools_13.cc delete mode 100644 tests/bits/fe_tools_13/cmp/generic create mode 100644 tests/bits/grid_generator_01a.cc create mode 100644 tests/bits/grid_generator_01a/cmp/generic create mode 100644 tests/bits/parameter_handler_6_bool.cc create mode 100644 tests/bits/parameter_handler_6_bool/cmp/generic create mode 100644 tests/bits/parameter_handler_6_bool/prm create mode 100644 tests/bits/periodicity_01.cc create mode 100644 tests/bits/periodicity_01/cmp/generic create mode 100644 tests/bits/periodicity_02.cc create mode 100644 tests/bits/periodicity_02/cmp/generic create mode 100644 tests/bits/periodicity_03.cc create mode 100644 tests/bits/periodicity_03/cmp/generic create mode 100644 tests/bits/periodicity_04.cc create mode 100644 tests/bits/periodicity_04/cmp/generic create mode 100644 tests/bits/periodicity_05.cc create mode 100644 tests/bits/periodicity_05/cmp/generic create mode 100644 tests/deal.II/create_laplace_matrix_constraints_01.cc create mode 100644 tests/deal.II/create_laplace_matrix_constraints_01/cmp/generic create mode 100644 tests/deal.II/create_laplace_matrix_constraints_02.cc create mode 100644 tests/deal.II/create_laplace_matrix_constraints_02/cmp/generic create mode 100644 tests/deal.II/create_laplace_matrix_constraints_02b.cc create mode 100644 tests/deal.II/create_laplace_matrix_constraints_02b/cmp/generic create mode 100644 tests/deal.II/create_laplace_matrix_constraints_03.cc create mode 100644 tests/deal.II/create_laplace_matrix_constraints_03/cmp/generic create mode 100644 tests/deal.II/create_laplace_matrix_constraints_04.cc create mode 100644 tests/deal.II/create_laplace_matrix_constraints_04/cmp/generic create mode 100644 tests/deal.II/create_mass_matrix_constraints_01.cc create mode 100644 tests/deal.II/create_mass_matrix_constraints_01/cmp/generic create mode 100644 tests/deal.II/create_mass_matrix_constraints_02.cc create mode 100644 tests/deal.II/create_mass_matrix_constraints_02/cmp/generic create mode 100644 tests/deal.II/create_mass_matrix_constraints_02b.cc create mode 100644 tests/deal.II/create_mass_matrix_constraints_02b/cmp/generic create mode 100644 tests/deal.II/create_mass_matrix_constraints_03.cc create mode 100644 tests/deal.II/create_mass_matrix_constraints_03/cmp/generic create mode 100644 tests/deal.II/create_mass_matrix_constraints_04.cc create mode 100644 tests/deal.II/create_mass_matrix_constraints_04/cmp/generic create mode 100644 tests/deal.II/fe_values_view_21_nonsymmetric.cc create mode 100644 tests/deal.II/fe_values_view_21_nonsymmetric/cmp/generic create mode 100644 tests/deal.II/fe_values_view_21_nonsymmetric/fe_values_view_09/cmp/generic create mode 100644 tests/deal.II/fe_values_view_21_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/fe_values_view_21_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/fe_values_view_23_nonsymmetric.cc create mode 100644 tests/deal.II/fe_values_view_23_nonsymmetric/cmp/generic create mode 100644 tests/deal.II/fe_values_view_23_nonsymmetric/fe_values_view_09/cmp/generic create mode 100644 tests/deal.II/fe_values_view_23_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/fe_values_view_23_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/fe_values_view_24_nonsymmetric.cc create mode 100644 tests/deal.II/fe_values_view_24_nonsymmetric/cmp/generic create mode 100644 tests/deal.II/fe_values_view_24_nonsymmetric/fe_values_view_09/cmp/generic create mode 100644 tests/deal.II/fe_values_view_24_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/fe_values_view_24_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/fe_values_view_25_nonsymmetric.cc create mode 100644 tests/deal.II/fe_values_view_25_nonsymmetric/cmp/generic create mode 100644 tests/deal.II/fe_values_view_25_nonsymmetric/fe_values_view_09/cmp/generic create mode 100644 tests/deal.II/fe_values_view_25_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/fe_values_view_25_nonsymmetric/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/fe_values_view_invalid_03_nonsymmetric.cc create mode 100644 tests/deal.II/fe_values_view_invalid_03_nonsymmetric/cmp/generic create mode 100644 tests/deal.II/fe_values_view_tensor_01.cc create mode 100644 tests/deal.II/fe_values_view_tensor_01/cmp/generic create mode 100644 tests/deal.II/fe_values_view_tensor_01/fe_values_view_09/cmp/generic create mode 100644 tests/deal.II/fe_values_view_tensor_01/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/fe_values_view_tensor_01/fe_values_view_09/cmp/x86_64-unknown-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/project_01_curved_boundary.cc create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/generic create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.3 create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.4 create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/powerpc-apple-darwin8.8.0+gcc4.0 create mode 100644 tests/deal.II/project_01_curved_boundary/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/deal.II/tria_last.cc create mode 100644 tests/deal.II/tria_last/cmp/generic create mode 100644 tests/deal.II/tria_last/cmp/i686-pc-linux-gnu+gcc4.2 create mode 100644 tests/deal.II/tria_last/cmp/i686-pc-linux-gnu+gcc4.3 create mode 100644 tests/deal.II/tria_last/cmp/i686-pc-linux-gnu+gcc4.4 create mode 100644 tests/deal.II/tria_last/cmp/powerpc-apple-darwin8.8.0+gcc4.0 create mode 100644 tests/deal.II/tria_last/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/distributed_grids/2d_refinement_07.cc create mode 100644 tests/distributed_grids/2d_refinement_07/cmp/generic create mode 100644 tests/distributed_grids/3d_refinement_09.cc create mode 100644 tests/distributed_grids/3d_refinement_09/cmp/generic create mode 100644 tests/distributed_grids/subdomain_id_01.cc create mode 100644 tests/distributed_grids/subdomain_id_01/cmp/generic create mode 100644 tests/fe/face_to_cell_q1_2d.cc create mode 100644 tests/fe/face_to_cell_q1_2d/cmp/generic create mode 100644 tests/fe/face_to_cell_q2_2d.cc create mode 100644 tests/fe/face_to_cell_q2_2d/cmp/generic create mode 100644 tests/fe/face_to_cell_q2xq2_2d.cc create mode 100644 tests/fe/face_to_cell_q2xq2_2d/cmp/generic create mode 100644 tests/fe/face_to_cell_q3_2d.cc create mode 100644 tests/fe/face_to_cell_q3_2d/cmp/generic create mode 100644 tests/fe/face_to_cell_q3xq4_2d.cc create mode 100644 tests/fe/face_to_cell_q3xq4_2d/cmp/generic create mode 100644 tests/fe/face_to_cell_q4_2d.cc create mode 100644 tests/fe/face_to_cell_q4_2d/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec.h create mode 100644 tests/fe/fe_face_orientation_nedelec_0.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_0/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_000.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_000/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_001.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_001/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_010.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_010/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_011.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_011/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_100.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_100/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_101.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_101/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_110.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_110/cmp/generic create mode 100644 tests/fe/fe_face_orientation_nedelec_111.cc create mode 100644 tests/fe/fe_face_orientation_nedelec_111/cmp/generic create mode 100644 tests/fe/fe_prolongation_q_iso_q1.cc create mode 100644 tests/fe/fe_prolongation_q_iso_q1/cmp/generic create mode 100644 tests/fe/fe_q_01.cc create mode 100644 tests/fe/fe_q_01/cmp/generic create mode 100644 tests/fe/fe_restriction_q_iso_q1.cc create mode 100644 tests/fe/fe_restriction_q_iso_q1/cmp/generic create mode 100644 tests/fe/fe_support_points_q_iso_q1.cc create mode 100644 tests/fe/fe_support_points_q_iso_q1/cmp/generic create mode 100644 tests/fe/injection_q_iso_q1.cc create mode 100644 tests/fe/injection_q_iso_q1/cmp/generic create mode 100644 tests/fe/interpolate_q_iso_q1.cc create mode 100644 tests/fe/interpolate_q_iso_q1/cmp/generic create mode 100644 tests/fe/q_iso_q1_projection_01.cc create mode 100644 tests/fe/q_iso_q1_projection_01/cmp/generic create mode 100644 tests/fe/q_iso_q1_projection_01/rt.gpl create mode 100644 tests/fe/shapes_q_iso_q1.cc create mode 100644 tests/fe/shapes_q_iso_q1/cmp/generic create mode 100644 tests/gla/Makefile create mode 100644 tests/gla/block_mat_01.cc create mode 100644 tests/gla/block_mat_01/ncpu_10/cmp/generic create mode 100644 tests/gla/block_mat_01/ncpu_4/cmp/generic create mode 100644 tests/gla/block_mat_02.cc create mode 100644 tests/gla/block_mat_02/ncpu_1/cmp/generic create mode 100644 tests/gla/block_mat_02/ncpu_2/cmp/generic create mode 100644 tests/gla/block_mat_02/ncpu_4/cmp/generic create mode 100644 tests/gla/block_mat_03.cc create mode 100644 tests/gla/block_mat_03/ncpu_1/cmp/generic create mode 100644 tests/gla/block_mat_03/ncpu_2/cmp/generic create mode 100644 tests/gla/block_vec_01.cc create mode 100644 tests/gla/block_vec_01/ncpu_10/cmp/generic create mode 100644 tests/gla/block_vec_01/ncpu_4/cmp/generic create mode 100644 tests/gla/block_vec_02.cc create mode 100644 tests/gla/block_vec_02/ncpu_2/cmp/generic create mode 100644 tests/gla/block_vec_02/ncpu_4/cmp/generic create mode 100644 tests/gla/block_vec_03.cc create mode 100644 tests/gla/block_vec_03/ncpu_2/cmp/generic create mode 100644 tests/gla/block_vec_03/ncpu_4/cmp/generic create mode 100644 tests/gla/block_vec_04.cc create mode 100644 tests/gla/block_vec_04/ncpu_2/cmp/generic create mode 100644 tests/gla/gla.h create mode 100644 tests/gla/mat_01.cc create mode 100644 tests/gla/mat_01/ncpu_10/cmp/generic create mode 100644 tests/gla/mat_01/ncpu_4/cmp/generic create mode 100644 tests/gla/mat_02.cc create mode 100644 tests/gla/mat_02/ncpu_2/cmp/generic create mode 100644 tests/gla/mat_03.cc create mode 100644 tests/gla/mat_03/ncpu_2/cmp/generic create mode 100644 tests/gla/mat_04.cc create mode 100644 tests/gla/mat_04/ncpu_2/cmp/generic create mode 100644 tests/gla/vec_00.cc create mode 100644 tests/gla/vec_00/ncpu_10/cmp/generic create mode 100644 tests/gla/vec_00/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_01.cc create mode 100644 tests/gla/vec_01/ncpu_10/cmp/generic create mode 100644 tests/gla/vec_01/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_02.cc create mode 100644 tests/gla/vec_02/ncpu_10/cmp/generic create mode 100644 tests/gla/vec_02/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_03.cc create mode 100644 tests/gla/vec_03/ncpu_10/cmp/generic create mode 100644 tests/gla/vec_03/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_04.cc create mode 100644 tests/gla/vec_04/ncpu_2/cmp/generic create mode 100644 tests/gla/vec_04/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_05.cc create mode 100644 tests/gla/vec_05/ncpu_2/cmp/generic create mode 100644 tests/gla/vec_05/ncpu_4/cmp/generic create mode 100644 tests/gla/vec_06.cc create mode 100644 tests/gla/vec_06/ncpu_10/cmp/generic create mode 100644 tests/gla/vec_06/ncpu_4/cmp/generic create mode 100644 tests/grid/cell_id_01.cc create mode 100644 tests/grid/cell_id_01/cmp/generic create mode 100644 tests/grid/cell_id_02.cc create mode 100644 tests/grid/cell_id_02/cmp/generic create mode 100644 tests/grid/grid_out_svg_02.cc create mode 100644 tests/grid/grid_out_svg_02/cmp/generic create mode 100644 tests/grid/ordering_01.cc create mode 100644 tests/grid/ordering_01/cmp/generic create mode 100644 tests/hp/create_laplace_matrix_constraints_02.cc create mode 100644 tests/hp/create_laplace_matrix_constraints_02/cmp/generic create mode 100644 tests/hp/create_laplace_matrix_constraints_02b.cc create mode 100644 tests/hp/create_laplace_matrix_constraints_02b/cmp/generic create mode 100644 tests/hp/create_mass_matrix_constraints_02.cc create mode 100644 tests/hp/create_mass_matrix_constraints_02/cmp/generic create mode 100644 tests/hp/create_mass_matrix_constraints_02b.cc create mode 100644 tests/hp/create_mass_matrix_constraints_02b/cmp/generic create mode 100644 tests/hp/fe_nothing_18.cc create mode 100644 tests/hp/fe_nothing_18/cmp/generic create mode 100644 tests/hp/fe_nothing_19.cc create mode 100644 tests/hp/fe_nothing_19/cmp/generic create mode 100644 tests/hp/n_boundary_dofs.cc create mode 100644 tests/hp/n_boundary_dofs/cmp/generic create mode 100644 tests/hp/project_01.cc create mode 100644 tests/hp/project_01/cmp/generic create mode 100644 tests/hp/project_01/cmp/i686-pc-linux-gnu+gcc4.2 create mode 100644 tests/hp/project_01/cmp/i686-pc-linux-gnu+gcc4.3 create mode 100644 tests/hp/project_01/cmp/i686-pc-linux-gnu+gcc4.4 create mode 100644 tests/hp/project_01/cmp/powerpc-apple-darwin8.8.0+gcc4.0 create mode 100644 tests/hp/project_01/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/hp/project_01_curved_boundary.cc create mode 100644 tests/hp/project_01_curved_boundary/cmp/generic create mode 100644 tests/hp/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.2 create mode 100644 tests/hp/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.3 create mode 100644 tests/hp/project_01_curved_boundary/cmp/i686-pc-linux-gnu+gcc4.4 create mode 100644 tests/hp/project_01_curved_boundary/cmp/powerpc-apple-darwin8.8.0+gcc4.0 create mode 100644 tests/hp/project_01_curved_boundary/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/hp/project_02.cc create mode 100644 tests/hp/project_02/cmp/generic create mode 100644 tests/hp/project_02/cmp/i686-pc-linux-gnu+gcc4.2 create mode 100644 tests/hp/project_02/cmp/i686-pc-linux-gnu+gcc4.3 create mode 100644 tests/hp/project_02/cmp/i686-pc-linux-gnu+gcc4.4 create mode 100644 tests/hp/project_02/cmp/powerpc-apple-darwin8.8.0+gcc4.0 create mode 100644 tests/hp/project_02/cmp/x86_64-unknown-linux-gnu+gcc4.1 create mode 100644 tests/hp/solution_transfer_03.cc create mode 100644 tests/hp/solution_transfer_03/cmp/generic create mode 100644 tests/integrators/assembler_simple_matrix_03tri.cc create mode 100644 tests/integrators/assembler_simple_matrix_03tri/cmp/generic create mode 100644 tests/integrators/mesh_worker_matrix_01.cc create mode 100644 tests/integrators/mesh_worker_matrix_01/cmp/generic create mode 100644 tests/lac/ala_01.cc create mode 100644 tests/lac/ala_01/cmp/generic create mode 100644 tests/lac/bicgstab_large.cc create mode 100644 tests/lac/bicgstab_large/cmp/generic create mode 100644 tests/lac/block_matrices_02.cc create mode 100644 tests/lac/block_matrices_02/cmp/generic create mode 100644 tests/lac/block_matrices_03.cc create mode 100644 tests/lac/block_matrices_03/cmp/generic create mode 100644 tests/lac/block_sparsity_pattern_03.cc create mode 100644 tests/lac/block_sparsity_pattern_03/cmp/generic create mode 100644 tests/lac/full_matrix_07.cc create mode 100644 tests/lac/full_matrix_07/cmp/generic create mode 100644 tests/lac/full_matrix_08.cc create mode 100644 tests/lac/full_matrix_08/cmp/generic create mode 100644 tests/lac/full_matrix_print.cc create mode 100644 tests/lac/full_matrix_print/cmp/generic create mode 100644 tests/lac/gmres_reorthogonalize_01.cc create mode 100644 tests/lac/gmres_reorthogonalize_01/cmp/generic create mode 100644 tests/lac/gmres_reorthogonalize_02.cc create mode 100644 tests/lac/gmres_reorthogonalize_02/cmp/generic create mode 100644 tests/lac/gmres_reorthogonalize_03.cc create mode 100644 tests/lac/gmres_reorthogonalize_03/cmp/generic create mode 100644 tests/lac/gmres_reorthogonalize_04.cc create mode 100644 tests/lac/gmres_reorthogonalize_04/cmp/generic create mode 100644 tests/lac/gmres_reorthogonalize_05.cc create mode 100644 tests/lac/gmres_reorthogonalize_05/cmp/generic create mode 100644 tests/matrix_free/no_index_initialize.cc create mode 100644 tests/matrix_free/no_index_initialize/cmp/generic create mode 100644 tests/matrix_free/update_mapping_only.cc create mode 100644 tests/matrix_free/update_mapping_only/cmp/generic create mode 100755 tests/mesh_converter/meshes/2d/2d_test.cub create mode 100755 tests/mesh_converter/meshes/2d/2d_test.inp create mode 100755 tests/mesh_converter/meshes/2d/2d_test.ucd create mode 100755 tests/mesh_converter/meshes/2d/quad.cub create mode 100755 tests/mesh_converter/meshes/2d/quad.inp create mode 100755 tests/mesh_converter/meshes/2d/quad.ucd create mode 100755 tests/mesh_converter/meshes/3d/CC.cub create mode 100755 tests/mesh_converter/meshes/3d/CC_cubit_new.inp create mode 100755 tests/mesh_converter/meshes/3d/CC_cubit_new.ucd create mode 100755 tests/mesh_converter/meshes/3d/CC_cubit_old.inp create mode 100755 tests/mesh_converter/meshes/3d/CC_cubit_old.ucd create mode 100644 tests/mesh_converter/meshes/3d/other_simple.inp create mode 100644 tests/mesh_converter/meshes/3d/other_simple.ucd create mode 100755 tests/mesh_converter/meshes/3d/test_cube_1.cub create mode 100755 tests/mesh_converter/meshes/3d/test_cube_1.inp create mode 100755 tests/mesh_converter/meshes/3d/test_cube_1.ucd create mode 100755 tests/mesh_converter/meshes/3d/test_cube_pave_1.cub create mode 100755 tests/mesh_converter/meshes/3d/test_cube_pave_1.inp create mode 100755 tests/mesh_converter/meshes/3d/test_cube_pave_1.ucd create mode 100755 tests/mesh_converter/meshes/3d/test_cube_two_materials.cub create mode 100755 tests/mesh_converter/meshes/3d/test_cube_two_materials.inp create mode 100755 tests/mesh_converter/meshes/3d/test_cube_two_materials.ucd create mode 100644 tests/mpi/constraint_matrix_set_zero_01.cc create mode 100644 tests/mpi/constraint_matrix_set_zero_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/constraint_matrix_set_zero_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/constraint_matrix_set_zero_02.cc create mode 100644 tests/mpi/constraint_matrix_set_zero_02/ncpu_1/cmp/generic create mode 100644 tests/mpi/constraint_matrix_set_zero_02/ncpu_2/cmp/generic create mode 100644 tests/mpi/flux_edge_01.cc create mode 100644 tests/mpi/flux_edge_01/ncpu_4/cmp/generic create mode 100644 tests/mpi/matrix_free_04.cc create mode 100644 tests/mpi/matrix_free_04/ncpu_1/cmp/generic create mode 100644 tests/mpi/matrix_free_04/ncpu_2/cmp/generic create mode 100644 tests/mpi/mesh_worker_matrix_01.cc create mode 100644 tests/mpi/mesh_worker_matrix_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/mesh_worker_matrix_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/mesh_worker_matrix_01/ordering.2 create mode 100644 tests/mpi/mg_04.cc create mode 100644 tests/mpi/mg_04/ncpu_1/cmp/generic create mode 100644 tests/mpi/mg_04/ncpu_10/cmp/generic create mode 100644 tests/mpi/mg_04/ncpu_2/cmp/generic create mode 100644 tests/mpi/mg_04/ncpu_4/cmp/generic create mode 100644 tests/mpi/multigrid_adaptive.cc create mode 100644 tests/mpi/multigrid_adaptive/ncpu_1/cmp/generic create mode 100644 tests/mpi/multigrid_adaptive/ncpu_4/cmp/generic create mode 100644 tests/mpi/multigrid_uniform.cc create mode 100644 tests/mpi/multigrid_uniform/ncpu_1/cmp/generic create mode 100644 tests/mpi/multigrid_uniform/ncpu_4/cmp/generic create mode 100644 tests/mpi/parallel_block_vector_01.cc create mode 100644 tests/mpi/parallel_block_vector_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/parallel_block_vector_01/ncpu_10/cmp/generic create mode 100644 tests/mpi/parallel_block_vector_01/ncpu_4/cmp/generic create mode 100644 tests/mpi/parallel_vector_13.cc create mode 100644 tests/mpi/parallel_vector_13/ncpu_10/cmp/generic create mode 100644 tests/mpi/parallel_vector_13/ncpu_4/cmp/generic create mode 100644 tests/mpi/parallel_vector_back_interpolate.cc create mode 100644 tests/mpi/parallel_vector_back_interpolate/ncpu_4/cmp/generic create mode 100644 tests/mpi/parallel_vector_interpolate.cc create mode 100644 tests/mpi/parallel_vector_interpolate/ncpu_4/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01.cc create mode 100644 tests/mpi/petsc_distribute_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01/ncpu_10/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01/ncpu_4/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_block.cc create mode 100644 tests/mpi/petsc_distribute_01_block/ncpu_1/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_block/ncpu_10/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_block/ncpu_2/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_block/ncpu_4/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_inhomogenous.cc create mode 100644 tests/mpi/petsc_distribute_01_inhomogenous/ncpu_1/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_inhomogenous/ncpu_10/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_inhomogenous/ncpu_2/cmp/generic create mode 100644 tests/mpi/petsc_distribute_01_inhomogenous/ncpu_4/cmp/generic create mode 100644 tests/mpi/petsc_locally_owned_elements.cc create mode 100644 tests/mpi/petsc_locally_owned_elements/ncpu_1/cmp/generic create mode 100644 tests/mpi/petsc_locally_owned_elements/ncpu_10/cmp/generic create mode 100644 tests/mpi/petsc_locally_owned_elements/ncpu_2/cmp/generic create mode 100644 tests/mpi/petsc_locally_owned_elements/ncpu_4/cmp/generic create mode 100644 tests/mpi/step-39.cc create mode 100644 tests/mpi/step-39/ncpu_1/cmp/generic create mode 100644 tests/mpi/step-39/ncpu_2/cmp/generic create mode 100644 tests/mpi/step-39/ncpu_6/cmp/generic create mode 100644 tests/mpi/tria_01.cc create mode 100644 tests/mpi/tria_01/ncpu_10/cmp/generic create mode 100644 tests/mpi/tria_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/tria_01/ncpu_4/cmp/generic create mode 100644 tests/mpi/tria_copy_triangulation.cc create mode 100644 tests/mpi/tria_copy_triangulation/ncpu_1/cmp/generic create mode 100644 tests/mpi/tria_copy_triangulation/ncpu_2/cmp/generic create mode 100644 tests/mpi/tria_copy_triangulation/ncpu_4/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01.cc create mode 100644 tests/mpi/trilinos_distribute_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01/ncpu_10/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01/ncpu_4/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_block.cc create mode 100644 tests/mpi/trilinos_distribute_01_block/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_block/ncpu_10/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_block/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_block/ncpu_4/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_inhomogenous.cc create mode 100644 tests/mpi/trilinos_distribute_01_inhomogenous/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_inhomogenous/ncpu_10/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_inhomogenous/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_01_inhomogenous/ncpu_4/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_03.cc create mode 100644 tests/mpi/trilinos_distribute_03/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_03/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_04.cc create mode 100644 tests/mpi/trilinos_distribute_04/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_distribute_04/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_locally_owned_elements_01.cc create mode 100644 tests/mpi/trilinos_locally_owned_elements_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_matvec_03.cc create mode 100644 tests/mpi/trilinos_matvec_03/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_sparse_matrix_01.cc create mode 100644 tests/mpi/trilinos_sparse_matrix_01/ncpu_1/cmp/generic create mode 100644 tests/mpi/trilinos_sparse_matrix_01/ncpu_2/cmp/generic create mode 100644 tests/mpi/trilinos_vector_ghosts_01.cc create mode 100644 tests/mpi/trilinos_vector_ghosts_01/ncpu_4/cmp/generic create mode 100644 tests/multigrid/step-39-02.cc create mode 100644 tests/multigrid/step-39-02/cmp/generic create mode 100644 tests/multigrid/step-39-03.cc create mode 100644 tests/multigrid/step-39-03/cmp/generic create mode 100644 tests/multigrid/transfer_prebuilt_01.cc create mode 100644 tests/multigrid/transfer_prebuilt_01/cmp/generic create mode 100644 tests/multigrid/transfer_prebuilt_02.cc create mode 100644 tests/multigrid/transfer_prebuilt_02/cmp/generic create mode 100644 tests/multigrid/transfer_prebuilt_03.cc create mode 100644 tests/multigrid/transfer_prebuilt_03/cmp/generic create mode 100644 tests/petsc/sparse_matrix_02.cc create mode 100644 tests/petsc/sparse_matrix_02/cmp/generic create mode 100644 tests/petsc/vector_print.cc create mode 100644 tests/petsc/vector_print/cmp/generic create mode 100644 tests/trilinos/block_sparse_matrix_vector_01.cc create mode 100644 tests/trilinos/block_sparse_matrix_vector_01/cmp/generic create mode 100644 tests/trilinos/block_sparse_matrix_vector_02.cc create mode 100644 tests/trilinos/block_sparse_matrix_vector_02/cmp/generic create mode 100644 tests/trilinos/block_sparse_matrix_vector_03.cc create mode 100644 tests/trilinos/block_sparse_matrix_vector_03/cmp/generic create mode 100644 tests/trilinos/block_sparse_matrix_vector_04.cc create mode 100644 tests/trilinos/block_sparse_matrix_vector_04/cmp/generic create mode 100644 tests/trilinos/precondition_q_iso_q1.cc create mode 100644 tests/trilinos/precondition_q_iso_q1/cmp/generic create mode 100644 tests/trilinos/sparse_matrix_vector_08.cc create mode 100644 tests/trilinos/sparse_matrix_vector_08/cmp/generic create mode 100644 tests/trilinos/sparse_matrix_vector_09.cc create mode 100644 tests/trilinos/sparse_matrix_vector_09/cmp/generic create mode 100644 tests/trilinos/sparse_matrix_vector_10.cc create mode 100644 tests/trilinos/sparse_matrix_vector_10/cmp/generic create mode 100644 tests/trilinos/sparse_matrix_vector_11.cc create mode 100644 tests/trilinos/sparse_matrix_vector_11/cmp/generic create mode 100644 tests/trilinos/trilinos_64_bit_crash_01.cc create mode 100644 tests/trilinos/trilinos_64_bit_crash_01/cmp/generic create mode 100644 tests/umfpack/umfpack_11.cc create mode 100644 tests/umfpack/umfpack_11/cmp/generic diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000000..dcca0f909d --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1 @@ +ADD_CUSTOM_TARGET(foobar) diff --git a/tests/Makefile b/tests/Makefile index 04e51a615d..3f284371c9 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -22,6 +22,7 @@ nofail-dirs = a-framework \ serialization \ mesh_converter \ $(if $(DEAL_II_USE_MPI:no=), $(if $(USE_CONTRIB_P4EST:no=),mpi,),) \ + $(if $(DEAL_II_USE_MPI:no=), $(if $(USE_CONTRIB_P4EST:no=),gla,),) \ $(if $(USE_CONTRIB_P4EST:no=), distributed_grids,) \ $(if $(USE_CONTRIB_PETSC:no=), petsc,) \ $(if $(USE_CONTRIB_SLEPC:no=), slepc,) \ diff --git a/tests/Makefile.rules b/tests/Makefile.rules index 10824a7bc5..b918accb07 100644 --- a/tests/Makefile.rules +++ b/tests/Makefile.rules @@ -18,14 +18,15 @@ verbose = off # # MAIL=mymailprog # -# on the command line to use a different mail agent or to tunnel through ssh. -# The mail program takes a single argument, which is the mail address for tests -# The contents of the mail will be provided on STDIN -MAIL = mail +# as part of the 'make' arguments or in the environment to use a different +# mail agent or to tunnel through ssh. The mail program takes a single +# argument, which is the mail address for tests The contents of the mail will +# be provided on STDIN +MAIL ?= mail # this lets you overwrite the diff tool for comparisons. # recommended environment setting: -# export DEAL_II_DIFF="numdiff -a 1e-6 -q" +# export DEAL_II_DIFF="numdiff -a 1e-6 -q -s ' \t\n:'" DEAL_II_DIFF ?= diff PLATFORM = $(TARGET)+$(GXX-VERSION:intel_%=%) @@ -226,7 +227,7 @@ summary: report+mail: @$(MAKE) report | tee testresults - @cat testresults | $(MAIL) regression-tests@dealii.org + @cat testresults | $(MAIL) dealii.regression.tests@gmail.com @rm testresults ###################################################################### @@ -256,10 +257,25 @@ report+mail: done ############################################################ -# by default, all .cc-files are tests. individual Makefiles -# may overrule this: +# all .cc-files are tests by default. After that, find out which tests +# require unconfigured prerequisites and eliminate those. +# We first test if $tests exists and in this case do not do anything. ifeq ($(tests),) -tests = $(basename $(wildcard *.cc)) + tests_all = $(wildcard *.cc) + ifeq ($(USE_CONTRIB_PETSC),no) + tests1 = $(foreach file, $(tests_all), $(shell grep -L PETScWrappers $(file))) + else + tests1 = $(tests_all) + endif + + ifeq ($(USE_CONTRIB_TRILINOS),no) + tests2 = $(foreach file, $(tests1), $(shell grep -L TrilinosWrappers $(file))) + else + tests2 = $(tests1) + endif + + tests_cc = $(tests2) + tests = $(basename $(tests2)) endif ############################################################ @@ -289,7 +305,7 @@ update: $(tests:%=%/update) clean: -rm -f Makefile.depend Makefile.*tests */obj.$(OBJEXT) \ */obj.g.$(OBJEXT) */output *~ */*.vtu */*.pvtu */*visit \ - */status */OK \ + */status */*/OK */OK \ */ncpu*/status distclean: clean diff --git a/tests/a-framework/compile.cc b/tests/a-framework/compile.cc index 6d49ddd8a9..2a85bf623a 100644 --- a/tests/a-framework/compile.cc +++ b/tests/a-framework/compile.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010by 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + // test the testsuite framework. this test is supposed to compile @@ -30,7 +34,7 @@ int main () deallog.depth_console(0); function_that_does_not_exist (); - + deallog << "OK" << std::endl; } diff --git a/tests/a-framework/fail.cc b/tests/a-framework/fail.cc index af7800cda3..d564110b2c 100644 --- a/tests/a-framework/fail.cc +++ b/tests/a-framework/fail.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010by 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + // test the testsuite framework. this test is supposed to compile and link @@ -28,7 +32,7 @@ int main () deallog.depth_console(0); compile error; - + deallog << "OK" << std::endl; } diff --git a/tests/a-framework/link.cc b/tests/a-framework/link.cc index ca59a0f26d..d2da112194 100644 --- a/tests/a-framework/link.cc +++ b/tests/a-framework/link.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010by 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + // test the testsuite framework. this test is supposed to compile and link @@ -28,7 +32,7 @@ int main () deallog.depth_console(0); std::abort (); - + deallog << "OK" << std::endl; } diff --git a/tests/a-framework/miscompare.cc b/tests/a-framework/miscompare.cc index 6ea58a0882..496f97b4fa 100644 --- a/tests/a-framework/miscompare.cc +++ b/tests/a-framework/miscompare.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010by 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + // test the testsuite framework. this test is supposed to compile successfully diff --git a/tests/a-framework/run.cc b/tests/a-framework/run.cc index 01816de27a..737431af4e 100644 --- a/tests/a-framework/run.cc +++ b/tests/a-framework/run.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010by 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + // test the testsuite framework. this test is supposed to run successfully diff --git a/tests/all-headers/Makefile b/tests/all-headers/Makefile index c8069250bb..25232bb861 100644 --- a/tests/all-headers/Makefile +++ b/tests/all-headers/Makefile @@ -9,6 +9,16 @@ include ../Makefile.paths include $D/common/Make.global_options +# The mail program. Override this by something like +# +# MAIL=mymailprog +# +# as part of the 'make' arguments or in the environment to use a different +# mail agent or to tunnel through ssh. The mail program takes a single +# argument, which is the mail address for tests The contents of the mail will +# be provided on STDIN +MAIL ?= mail + ############################################################ # First how to create executables, including all necessary @@ -82,7 +92,7 @@ report: report+mail: all @$(MAKE) report | tee testresults - @cat testresults | mail regression-tests@dealii.org + @cat testresults | $(MAIL) dealii.regression.tests@gmail.com @rm testresults diff --git a/tests/aniso/anisotropic_crash.cc b/tests/aniso/anisotropic_crash.cc index adced64089..34b5fb308e 100644 --- a/tests/aniso/anisotropic_crash.cc +++ b/tests/aniso/anisotropic_crash.cc @@ -1,15 +1,19 @@ -//---------------------------- anisotropic_crash.cc --------------------------- -// anisotropic_crash.cc,v 1.1 2003/06/09 15:59:07 wolf Exp -// Version: +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2012 by the deal.II authors and Abner Salgado +// Copyright (C) 2012 - 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. // -//---------------------------- anisotropic_crash.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. +// +// --------------------------------------------------------------------- + // GridTools::find_cells_adjacent_to_vertex had a problem in that it @@ -41,53 +45,53 @@ int main() deallog.depth_console(0); deallog.threshold_double(1.e-10); - // Create triangulation + // Create triangulation Triangulation<2> tri; GridGenerator::hyper_cube( tri ); tri.refine_global( 2 ); - // now do some sort of random, anisotropic - // refinement + // now do some sort of random, anisotropic + // refinement Triangulation<2>::active_cell_iterator cell = tri.begin_active(), end = tri.end(); - for( ; cell != end; ++cell ) + for ( ; cell != end; ++cell ) { switch (rand()%4) - { - /// If a randomly drawn - /// number is 0 or 1 we - /// cut x or y, resp. - case 0: - cell->set_refine_flag( RefinementCase<2>::cut_axis(0) ); - break; - case 1: - cell->set_refine_flag( RefinementCase<2>::cut_axis(1) ); - break; - - case 2: - /// If the number is 2 we - /// refine isotropically - cell->set_refine_flag(); - break; - - default: - /// If the number is 3 we don't refine - ; - } + { + /// If a randomly drawn + /// number is 0 or 1 we + /// cut x or y, resp. + case 0: + cell->set_refine_flag( RefinementCase<2>::cut_axis(0) ); + break; + case 1: + cell->set_refine_flag( RefinementCase<2>::cut_axis(1) ); + break; + + case 2: + /// If the number is 2 we + /// refine isotropically + cell->set_refine_flag(); + break; + + default: + /// If the number is 3 we don't refine + ; + } } - /// refine the mesh + /// refine the mesh tri.execute_coarsening_and_refinement(); - /// For each vertex find the patch of cells - /// that surrounds it - for( unsigned v=0; v void print_formatted (const FullMatrix &A, - const unsigned int precision, - const unsigned int width) + const unsigned int precision, + const unsigned int width) { for (unsigned int i=0; i &A, template -void test_embedding (const FiniteElement& fe) +void test_embedding (const FiniteElement &fe) { const std::string refine_case_names[8]= - {"no_refinement", - "cut_x", - "cut_y", - "cut_xy", - "cut_z", - "cut_xz", - "cut_yz", - "cut_xyz"}; - + { + "no_refinement", + "cut_x", + "cut_y", + "cut_xy", + "cut_z", + "cut_xz", + "cut_yz", + "cut_xyz" + }; + const unsigned int n = fe.dofs_per_cell; - + std::vector > > P; P.resize(RefinementCase::isotropic_refinement); for (unsigned int ref_case=RefinementCase::cut_x; ref_case::isotropic_refinement+1; ++ref_case) for (unsigned int c=0; - c::n_children(RefinementCase(ref_case)); - ++c) + c::n_children(RefinementCase(ref_case)); + ++c) P[ref_case-1].push_back(FullMatrix(n)); - + FETools::compute_embedding_matrices(fe, P); - + for (unsigned int ref_case=RefinementCase::cut_x; ref_case::isotropic_refinement+1; ++ref_case) for (unsigned int c=0; - c::n_children(RefinementCase(ref_case)); - ++c) + c::n_children(RefinementCase(ref_case)); + ++c) { - deallog << fe.get_name() << " embedding, RefinementCase:: " << refine_case_names[ref_case] << ", child " << c << std::endl; - print_formatted(P[ref_case-1][c], 4, 6); + deallog << fe.get_name() << " embedding, RefinementCase:: " << refine_case_names[ref_case] << ", child " << c << std::endl; + print_formatted(P[ref_case-1][c], 4, 6); } } - + template -void test_projection (const FiniteElement& fe1, - const FiniteElement& fe2, - std::ostream& out) +void test_projection (const FiniteElement &fe1, + const FiniteElement &fe2, + std::ostream &out) { out << fe1.get_name() << " -> " << fe2.get_name() << std::endl; - + const unsigned int n1 = fe1.dofs_per_cell; const unsigned int n2 = fe2.dofs_per_cell; @@ -109,13 +115,13 @@ void test_projection (const FiniteElement& fe1, for (unsigned int i=0; i -void test_projection (std::ostream& out) +void test_projection (std::ostream &out) { FE_DGQ q0(0); FE_DGQ q1(1); diff --git a/tests/aniso/hp_constraints_dgp_08.cc b/tests/aniso/hp_constraints_dgp_08.cc index e8a9c03296..8f22793248 100644 --- a/tests/aniso/hp_constraints_dgp_08.cc +++ b/tests/aniso/hp_constraints_dgp_08.cc @@ -1,15 +1,19 @@ -//---------------------------- hp_constraints_dgp_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006 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. // -//---------------------------- hp_constraints_dgp_08.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. +// +// --------------------------------------------------------------------- + // check that computation of hp constraints works for DGP elements correctly @@ -26,6 +30,6 @@ void test () hp::FECollection fe; for (unsigned int i=0; i<4; ++i) fe.push_back (FE_DGP(i)); - + test_with_hanging_nodes_random_aniso (fe); } diff --git a/tests/aniso/hp_constraints_dgp_monomial_08.cc b/tests/aniso/hp_constraints_dgp_monomial_08.cc index b928976778..3c5ad3d265 100644 --- a/tests/aniso/hp_constraints_dgp_monomial_08.cc +++ b/tests/aniso/hp_constraints_dgp_monomial_08.cc @@ -1,15 +1,19 @@ -//---------------------------- hp_constraints_dgp_monomial_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006 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. // -//---------------------------- hp_constraints_dgp_monomial_08.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. +// +// --------------------------------------------------------------------- + // check that computation of hp constraints works for DGP_Monomial elements correctly @@ -26,6 +30,6 @@ void test () hp::FECollection fe; for (unsigned int i=0; i<4; ++i) fe.push_back (FE_DGPMonomial(i)); - + test_with_hanging_nodes_random_aniso (fe); } diff --git a/tests/aniso/hp_constraints_dgp_nonparametric_08.cc b/tests/aniso/hp_constraints_dgp_nonparametric_08.cc index 7a5ddc804c..59fe4fa9a7 100644 --- a/tests/aniso/hp_constraints_dgp_nonparametric_08.cc +++ b/tests/aniso/hp_constraints_dgp_nonparametric_08.cc @@ -1,15 +1,19 @@ -//---------------------------- hp_constraints_dgp_nonparametric_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006 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. // -//---------------------------- hp_constraints_dgp_nonparametric_08.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. +// +// --------------------------------------------------------------------- + // check that computation of hp constraints works for DGPNonparametric elements @@ -27,6 +31,6 @@ void test () hp::FECollection fe; for (unsigned int i=0; i<4; ++i) fe.push_back (FE_DGPMonomial(i)); - + test_with_hanging_nodes_random_aniso (fe); } diff --git a/tests/aniso/hp_constraints_dgq_08.cc b/tests/aniso/hp_constraints_dgq_08.cc index 40eefdd24d..24f29fc550 100644 --- a/tests/aniso/hp_constraints_dgq_08.cc +++ b/tests/aniso/hp_constraints_dgq_08.cc @@ -1,15 +1,19 @@ -//---------------------------- hp_constraints_dgq_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006 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. // -//---------------------------- hp_constraints_dgq_08.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. +// +// --------------------------------------------------------------------- + // check that computation of hp constraints works for DGQ elements correctly diff --git a/tests/aniso/mesh_3d_21.cc b/tests/aniso/mesh_3d_21.cc index 27999caf65..c23032f94a 100644 --- a/tests/aniso/mesh_3d_21.cc +++ b/tests/aniso/mesh_3d_21.cc @@ -1,15 +1,19 @@ -//---------------------------- mesh_3d_21.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2007, 2008, 2010 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. // -//---------------------------- mesh_3d_21.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. +// +// --------------------------------------------------------------------- + // adapted from mesh_3d_14, but check that quadrature points are @@ -40,18 +44,18 @@ FE_DGQ<3> fe(1); QGauss<2> quadrature(3); MappingQ<3> mapping(2); FEFaceValues<3> fe_face_values1 (mapping, fe, quadrature, - update_q_points | update_JxW_values | - update_normal_vectors); + update_q_points | update_JxW_values | + update_normal_vectors); FESubfaceValues<3> fe_face_values2 (mapping, fe, quadrature, - update_q_points | update_JxW_values | - update_normal_vectors); + update_q_points | update_JxW_values | + update_normal_vectors); void check_this (Triangulation<3> &tria) { DoFHandler<3> dof_handler (tria); dof_handler.distribute_dofs (fe); - + DoFHandler<3>::active_cell_iterator cell = dof_handler.begin_active(); for (; cell!=dof_handler.end(); ++cell) for (unsigned int face_no=0; face_no::faces_per_cell; @@ -63,8 +67,8 @@ void check_this (Triangulation<3> &tria) subface_noface(face_no)->number_of_children(); ++subface_no) { - unsigned int neighbor_neighbor = cell->neighbor_face_no(face_no); - + unsigned int neighbor_neighbor = cell->neighbor_face_no(face_no); + const DoFHandler<3>::active_cell_iterator neighbor_child = cell->neighbor_child_on_subface(face_no, subface_no); @@ -85,7 +89,7 @@ void check_this (Triangulation<3> &tria) fe_face_values2.normal_vector(q)).square() < 1e-20, ExcInternalError()); - } + } } } @@ -95,34 +99,34 @@ void check_this (Triangulation<3> &tria) // quadrature points both on faces and neighboring subfaces match. void check (Triangulation<3> &tria_org) { - for (unsigned int c=0;c tria; - tria.copy_triangulation(tria_org); - Triangulation<3>::active_cell_iterator cell=tria.begin_active(); - for (unsigned int j=0;jset_refine_flag (RefinementCase<3>(i)); - tria.execute_coarsening_and_refinement (); - - deallog << "Initial check, cell = "< tria; + tria.copy_triangulation(tria_org); + Triangulation<3>::active_cell_iterator cell=tria.begin_active(); + for (unsigned int j=0; jset_refine_flag (RefinementCase<3>(i)); + tria.execute_coarsening_and_refinement (); + + deallog << "Initial check, cell = "< &tria_org) void check2 (Triangulation<3> &orig_tria) { for (unsigned int i=0; i tria; - tria.copy_triangulation(orig_tria); - Triangulation<3>::cell_iterator cell = tria.begin_active(), - endc = tria.end(); - for (unsigned int j=0; jset_refine_flag(RefinementCase<3>::cut_z); - tria.execute_coarsening_and_refinement (); - - cell=tria.begin(); - for (; cell!=endc;++cell) - if (cell->refinement_case()==RefinementCase<3>::cut_z) - { - cell->child(0)->set_refine_flag(RefinementCase<3>::cut_xy); - cell->child(1)->set_refine_flag(RefinementCase<3>::cut_xy); - } - tria.execute_coarsening_and_refinement (); - - deallog << "2 -> Initial check, cell " << i << ", " << tria.n_active_cells() << " active cells" << std::endl; - check_this (tria); - - for (unsigned int r=0; r<2; ++r) - { - tria.refine_global (1); - deallog << "2 -> Check " << r << ", " << tria.n_active_cells() << " active cells" << std::endl; - check_this (tria); - deallog << " ... done." << std::endl; - } - - coarsen_global (tria); - deallog << "Check " << 0 << ", " << tria.n_active_cells() << " active cells"<< std::endl; - check_this (tria); - - tria.refine_global (1); - deallog << "Check " << 1 << ", " << tria.n_active_cells() << " active cells"<< std::endl; - check_this (tria); - } + { + Triangulation<3> tria; + tria.copy_triangulation(orig_tria); + Triangulation<3>::cell_iterator cell = tria.begin_active(), + endc = tria.end(); + for (unsigned int j=0; jset_refine_flag(RefinementCase<3>::cut_z); + tria.execute_coarsening_and_refinement (); + + cell=tria.begin(); + for (; cell!=endc; ++cell) + if (cell->refinement_case()==RefinementCase<3>::cut_z) + { + cell->child(0)->set_refine_flag(RefinementCase<3>::cut_xy); + cell->child(1)->set_refine_flag(RefinementCase<3>::cut_xy); + } + tria.execute_coarsening_and_refinement (); + + deallog << "2 -> Initial check, cell " << i << ", " << tria.n_active_cells() << " active cells" << std::endl; + check_this (tria); + + for (unsigned int r=0; r<2; ++r) + { + tria.refine_global (1); + deallog << "2 -> Check " << r << ", " << tria.n_active_cells() << " active cells" << std::endl; + check_this (tria); + deallog << " ... done." << std::endl; + } + + coarsen_global (tria); + deallog << "Check " << 0 << ", " << tria.n_active_cells() << " active cells"<< std::endl; + check_this (tria); + + tria.refine_global (1); + deallog << "Check " << 1 << ", " << tria.n_active_cells() << " active cells"<< std::endl; + check_this (tria); + } } -int main () +int main () { std::ofstream logfile("mesh_3d_21/output"); deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - { + { Triangulation<3> coarse_grid(Triangulation<3>::allow_anisotropic_smoothing); GridGenerator::hyper_cube (coarse_grid); coarse_grid.refine_global(1); check2 (coarse_grid); check (coarse_grid); } - - { - Triangulation<3> coarse_grid; - create_two_cubes (coarse_grid); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - create_L_shape (coarse_grid); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - GridGenerator::hyper_ball (coarse_grid); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - create_two_cubes_rotation (coarse_grid,1); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - create_two_cubes_rotation (coarse_grid,2); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - create_two_cubes_rotation (coarse_grid,3); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - GridGenerator::moebius(coarse_grid, 5, 0, 10.0, 2.0); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - GridGenerator::moebius(coarse_grid, 5, 1, 10.0, 2.0); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - GridGenerator::moebius(coarse_grid, 5, 2, 10.0, 2.0); - check (coarse_grid); - } - - { - Triangulation<3> coarse_grid; - GridGenerator::moebius(coarse_grid, 5, 3, 10.0, 2.0); - check (coarse_grid); - } + + { + Triangulation<3> coarse_grid; + create_two_cubes (coarse_grid); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + create_L_shape (coarse_grid); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + GridGenerator::hyper_ball (coarse_grid); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + create_two_cubes_rotation (coarse_grid,1); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + create_two_cubes_rotation (coarse_grid,2); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + create_two_cubes_rotation (coarse_grid,3); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + GridGenerator::moebius(coarse_grid, 5, 0, 10.0, 2.0); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + GridGenerator::moebius(coarse_grid, 5, 1, 10.0, 2.0); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + GridGenerator::moebius(coarse_grid, 5, 2, 10.0, 2.0); + check (coarse_grid); + } + + { + Triangulation<3> coarse_grid; + GridGenerator::moebius(coarse_grid, 5, 3, 10.0, 2.0); + check (coarse_grid); + } } - - + + diff --git a/tests/aniso/refine_and_coarsen_anisotropic.cc b/tests/aniso/refine_and_coarsen_anisotropic.cc index 3e9127e7ae..647e064203 100644 --- a/tests/aniso/refine_and_coarsen_anisotropic.cc +++ b/tests/aniso/refine_and_coarsen_anisotropic.cc @@ -1,15 +1,19 @@ -//------------------ refine_and_coarsen_anisotropic.cc ----------------- -// $Id$ -// Version: $Name: $ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2002, 2003, 2004, 2005, 2007 by the deal.II authors +// 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. +// This file is part of the deal.II library. // -//------------------ refine_and_coarsen_anisotropic.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. +// +// --------------------------------------------------------------------- + // simply perform some random refinement and coarsening operations. if we do // this for several cycles chances are high, that any error in the refinement @@ -32,32 +36,33 @@ #include #include - // flag to decide, whether - // 1) a single output_file should - // be generated for automated tests or - // 2) multiple eps-files and output to - // std::cout in order to check - // changes in the library +// flag to decide, whether +// 1) a single output_file should +// be generated for automated tests or +// 2) multiple eps-files and output to +// std::cout in order to check +// changes in the library bool single_file=true; - // maximum number of refinement steps and cells - // to be created during refinement. whichever - // is reached first terminates the loop +// maximum number of refinement steps and cells +// to be created during refinement. whichever +// is reached first terminates the loop const unsigned int max_cycle = 200; const unsigned int max_cells = 50000; template -void test_isotropic (int type, std::ostream* logfile) +void test_isotropic (int type, std::ostream *logfile) { const RefinementCase ref_cases[7] = - {RefinementCase::cut_x, - RefinementCase(dim > 1 ? RefinementCase<2>::cut_y : RefinementCase<2>::no_refinement), - RefinementCase(dim > 1 ? RefinementCase<2>::cut_xy : RefinementCase<2>::no_refinement), - RefinementCase(dim > 2 ? RefinementCase<3>::cut_z : RefinementCase<3>::no_refinement), - RefinementCase(dim > 2 ? RefinementCase<3>::cut_xz : RefinementCase<3>::no_refinement), - RefinementCase(dim > 2 ? RefinementCase<3>::cut_yz : RefinementCase<3>::no_refinement), - RefinementCase(dim > 2 ? RefinementCase<3>::cut_xyz : RefinementCase<3>::no_refinement) - }; + { + RefinementCase::cut_x, + RefinementCase(dim > 1 ? RefinementCase<2>::cut_y : RefinementCase<2>::no_refinement), + RefinementCase(dim > 1 ? RefinementCase<2>::cut_xy : RefinementCase<2>::no_refinement), + RefinementCase(dim > 2 ? RefinementCase<3>::cut_z : RefinementCase<3>::no_refinement), + RefinementCase(dim > 2 ? RefinementCase<3>::cut_xz : RefinementCase<3>::no_refinement), + RefinementCase(dim > 2 ? RefinementCase<3>::cut_yz : RefinementCase<3>::no_refinement), + RefinementCase(dim > 2 ? RefinementCase<3>::cut_xyz : RefinementCase<3>::no_refinement) + }; Triangulation tria(Triangulation::allow_anisotropic_smoothing); if (type == 0) @@ -66,54 +71,54 @@ void test_isotropic (int type, std::ostream* logfile) GridGenerator::hyper_ball (tria); tria.refine_global(1); - + *logfile << "cycle: 0, number of cells: "<::active_cell_iterator cell = tria.begin_active(), - endc = tria.end(); + endc = tria.end(); for (unsigned int cycle=1; cycleset_refine_flag(ref_cases[rand()% - RefinementCase::isotropic_refinement]); - } - else - cell->set_coarsen_flag(); + if (rand()%5==0) + { + if (rand()%2==0) + cell->set_refine_flag(ref_cases[rand()% + RefinementCase::isotropic_refinement]); + } + else + cell->set_coarsen_flag(); tria.execute_coarsening_and_refinement(); if (!single_file) - { - // graphical output - GridOut grid_out; - GridOutFlags::Eps<2> eps2(GridOutFlags::EpsFlagsBase::width, - 300, .01, false, 5, false); - grid_out.set_flags (eps2); - std::ostringstream filename; - filename << "refine_and_coarsen_anisotropic/grid_" << type << "_" << cycle << ".eps"; - std::ofstream outfile(filename.str().c_str()); - grid_out.write_eps (tria, outfile); - } + { + // graphical output + GridOut grid_out; + GridOutFlags::Eps<2> eps2(GridOutFlags::EpsFlagsBase::width, + 300, .01, false, 5, false); + grid_out.set_flags (eps2); + std::ostringstream filename; + filename << "refine_and_coarsen_anisotropic/grid_" << type << "_" << cycle << ".eps"; + std::ofstream outfile(filename.str().c_str()); + grid_out.write_eps (tria, outfile); + } *logfile << "cycle: "< max_cells || cycle == max_cycle) - break; + break; } } - + int main () { - std::ostream* logfile; + std::ostream *logfile; if (single_file) logfile = new std::ofstream("refine_and_coarsen_anisotropic/output"); @@ -121,19 +126,19 @@ int main () logfile = &std::cout; *logfile< (0,logfile); *logfile<<"HyperBall:"< (1,logfile); - + *logfile< (0,logfile); diff --git a/tests/aniso/solution_transfer.cc b/tests/aniso/solution_transfer.cc index 30bd09048b..ad62b77dbc 100644 --- a/tests/aniso/solution_transfer.cc +++ b/tests/aniso/solution_transfer.cc @@ -1,15 +1,19 @@ -//---------------------------- solution_transfer.cc --------------------------- -// fe_data_test.cc,v 1.14 2003/11/28 11:52:35 guido Exp -// Version: +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, 2007, 2008, 2009 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- solution_transfer.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. +// +// --------------------------------------------------------------------- + #include "../tests.h" @@ -38,17 +42,17 @@ template class MyFunction : public Function { - public: - MyFunction () : Function() {}; - - virtual double value (const Point &p, - const unsigned int) const - { - double ret_value=sin(p[0]*4)*cos(p[1]*4); - if (dim==3) - ret_value*=sin(5*p[2]+1); - return ret_value; - }; +public: + MyFunction () : Function() {}; + + virtual double value (const Point &p, + const unsigned int) const + { + double ret_value=sin(p[0]*4)*cos(p[1]*4); + if (dim==3) + ret_value*=sin(5*p[2]+1); + return ret_value; + }; }; @@ -64,7 +68,7 @@ void transfer(std::ostream &out) Vector solution; MappingQ1 mapping; DataOut data_out; - + dof_handler.distribute_dofs (fe); solution.reinit(dof_handler.n_dofs()); @@ -78,9 +82,9 @@ void transfer(std::ostream &out) SolutionTransfer soltrans(dof_handler); - // test a): pure refinement + // test a): pure refinement typename Triangulation::active_cell_iterator cell=tria.begin_active(), - endc=tria.end(); + endc=tria.end(); for (; cell!=endc; ++cell) cell->set_refine_flag(RefinementCase::cut_x); @@ -100,7 +104,7 @@ void transfer(std::ostream &out) deallog << "Interpolated/tranferred solution after pure refinement" << std::endl << std::endl; data_out.write_gnuplot (out); - // test b): with coarsening + // test b): with coarsening SolutionTransfer soltrans2(dof_handler); cell=tria.begin_active(tria.n_levels()-1); endc=tria.end(tria.n_levels()-1); @@ -131,7 +135,7 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + transfer<2>(logfile); transfer<3>(logfile); } diff --git a/tests/aniso/up_and_down.cc b/tests/aniso/up_and_down.cc index e0e14756e0..453bcef29f 100644 --- a/tests/aniso/up_and_down.cc +++ b/tests/aniso/up_and_down.cc @@ -1,15 +1,19 @@ -//-------------------------------------------------------------------------- -// fe_tools.cc,v 1.1 2003/11/28 15:03:26 guido Exp -// Version: +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009, 2010 by the deal.II authors +// Copyright (C) 1998 - 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. +// +// --------------------------------------------------------------------- + // Try something remarkably simple: take some arbitrary (discrete) // function and transfer it to a coarser grid. transfer it back to the @@ -43,19 +47,19 @@ template Point transform (const Point p) { - switch (dim) + switch (dim) { - case 1: - return p; - case 2: - return Point(p(0)*(1+p(1)), p(1)*(1+p(0))); - case 3: - return Point(p(0)*(1+p(1))*(1+p(2)), - p(1)*(1+p(0))*(1+p(2)), - p(2)*(1+p(0))*(1+p(1))); - default: - Assert (false, ExcNotImplemented()); - return Point(); + case 1: + return p; + case 2: + return Point(p(0)*(1+p(1)), p(1)*(1+p(0))); + case 3: + return Point(p(0)*(1+p(1))*(1+p(2)), + p(1)*(1+p(0))*(1+p(2)), + p(2)*(1+p(0))*(1+p(1))); + default: + Assert (false, ExcNotImplemented()); + return Point(); }; } @@ -67,17 +71,17 @@ void check_element (const Triangulation &tr, DoFHandler dof_handler(tr); dof_handler.distribute_dofs (fe); - // create a mostly arbitrary - // function plus a trend on this - // grid + // create a mostly arbitrary + // function plus a trend on this + // grid Vector tmp(dof_handler.n_dofs()); for (unsigned int i=0; i x(tmp.size()); Vector v(fe.dofs_per_cell); for (typename DoFHandler::cell_iterator cell=dof_handler.begin(); @@ -85,24 +89,24 @@ void check_element (const Triangulation &tr, if (cell->has_children() && cell->child(0)->active()) { - // first make sure that what - // we do is reasonable. for - // this, _all_ children have - // to be active, not only - // some of them + // first make sure that what + // we do is reasonable. for + // this, _all_ children have + // to be active, not only + // some of them for (unsigned int c=0; cn_children(); ++c) Assert (cell->child(c)->active(), ExcInternalError()); - // then restrict and prolongate + // then restrict and prolongate cell->get_interpolated_dof_values (tmp, v); cell->set_dof_values_by_interpolation (v, x); }; - // now x is a function on the fine - // grid that is representable on - // the coarse grid. so another - // cycle should not alter it any - // more: + // now x is a function on the fine + // grid that is representable on + // the coarse grid. so another + // cycle should not alter it any + // more: Vector x2(x.size()); for (typename DoFHandler::cell_iterator cell=dof_handler.begin(); cell!=dof_handler.end(); ++cell) @@ -113,7 +117,7 @@ void check_element (const Triangulation &tr, cell->set_dof_values_by_interpolation (v, x2); }; - // then check that this is so: + // then check that this is so: x2 -= x; const double relative_residual = (x2.l2_norm() / x.l2_norm()); @@ -126,106 +130,108 @@ void check_element (const Triangulation &tr, template -void test () +void test () { const std::string ref_case_names[7]= - {"RefinementCase::cut_x", - "RefinementCase::cut_y", - "RefinementCase::cut_xy", - "RefinementCase::cut_z", - "RefinementCase::cut_xz", - "RefinementCase::cut_yz", - "RefinementCase::cut_xyz"}; - - const unsigned int n_ref_cases_for_dim[4]={0,1,3,7}; - - // now for a list of finite - // elements, for which we want to - // test. we happily waste tons of - // memory here, but who cares... + { + "RefinementCase::cut_x", + "RefinementCase::cut_y", + "RefinementCase::cut_xy", + "RefinementCase::cut_z", + "RefinementCase::cut_xz", + "RefinementCase::cut_yz", + "RefinementCase::cut_xyz" + }; + + const unsigned int n_ref_cases_for_dim[4]= {0,1,3,7}; + + // now for a list of finite + // elements, for which we want to + // test. we happily waste tons of + // memory here, but who cares... const FiniteElement *fe_list[] - = - { - // FE_DGQ - new FE_DGQ(0), - new FE_DGQ(1), - new FE_DGQ(2), - (dim<3 ? new FE_DGQ(3) : 0), - (dim<3 ? new FE_DGQ(4) : 0), - - // FE_DGP - new FE_DGP(0), - new FE_DGP(1), - new FE_DGP(2), - new FE_DGP(3), - - // some composed elements - // of increasing - // complexity, to check the - // logics by which the - // matrices of the composed - // elements are assembled - // from those of the base - // elements. - new FESystem (FE_DGQ(1), 2), - new FESystem (FE_DGP(1), 1, - FE_DGQ(2), 2), - new FESystem (FE_DGP(1), 2, - FE_DGQ(2), 2, - FE_DGP(0), 1), - new FESystem (FE_DGQ(1), 2, - FESystem (FE_DGQ(1), 2, - FE_DGP(2), 2, - FE_DGQ(2), 1), 2, - FE_DGP(0), 1), - new FESystem (FE_DGP(1), 2, - FESystem (FE_DGP(1), 2, - FE_DGQ(2), 2, - FESystem(FE_DGQ(0), - 3), - 1), 2, - FE_DGQ(0), 1), - - // some continuous FEs - new FE_Q(1), - new FE_Q(2), - new FESystem (FE_Q(1), 2), - new FESystem (FE_DGQ(1), 2, - FESystem (FE_Q(1), 2, - FE_Q(2), 1, - FE_DGP(2), 1), 2, - FE_Q(3),1) - }; + = + { + // FE_DGQ + new FE_DGQ(0), + new FE_DGQ(1), + new FE_DGQ(2), + (dim<3 ? new FE_DGQ(3) : 0), + (dim<3 ? new FE_DGQ(4) : 0), + + // FE_DGP + new FE_DGP(0), + new FE_DGP(1), + new FE_DGP(2), + new FE_DGP(3), + + // some composed elements + // of increasing + // complexity, to check the + // logics by which the + // matrices of the composed + // elements are assembled + // from those of the base + // elements. + new FESystem (FE_DGQ(1), 2), + new FESystem (FE_DGP(1), 1, + FE_DGQ(2), 2), + new FESystem (FE_DGP(1), 2, + FE_DGQ(2), 2, + FE_DGP(0), 1), + new FESystem (FE_DGQ(1), 2, + FESystem (FE_DGQ(1), 2, + FE_DGP(2), 2, + FE_DGQ(2), 1), 2, + FE_DGP(0), 1), + new FESystem (FE_DGP(1), 2, + FESystem (FE_DGP(1), 2, + FE_DGQ(2), 2, + FESystem(FE_DGQ(0), + 3), + 1), 2, + FE_DGQ(0), 1), + + // some continuous FEs + new FE_Q(1), + new FE_Q(2), + new FESystem (FE_Q(1), 2), + new FESystem (FE_DGQ(1), 2, + FESystem (FE_Q(1), 2, + FE_Q(2), 1, + FE_DGP(2), 1), 2, + FE_Q(3),1) + }; for (unsigned int j=0; j tr; GridGenerator::hyper_cube(tr, 0., 1.); Point (*p) (Point) = &transform; GridTools::transform (p, tr); tr.refine_global (1); typename Triangulation::active_cell_iterator cell=tr.begin_active(), - endc=tr.end(); + endc=tr.end(); for (; cell!=endc; ++cell) - cell->set_refine_flag(RefinementCase(j+1)); + cell->set_refine_flag(RefinementCase(j+1)); tr.execute_coarsening_and_refinement(); - - + + for (unsigned int i=0; i(); test<2>(); test<3>(); - + return 0; } diff --git a/tests/base/anisotropic_1.cc b/tests/base/anisotropic_1.cc index f75ef5a19a..30746cd61e 100644 --- a/tests/base/anisotropic_1.cc +++ b/tests/base/anisotropic_1.cc @@ -1,15 +1,19 @@ -//---------------------------- anisotropic_1.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2008 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. // -//---------------------------- anisotropic_1.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. +// +// --------------------------------------------------------------------- + // check that TensorProducPolynomials and AnisotropicPolynomials @@ -31,79 +35,79 @@ using namespace Polynomials; template void check_poly(const Point &x, - const POLY1 &p, + const POLY1 &p, const POLY2 &q) { const unsigned int n = p.n(); - + std::vector values1 (n), values2 (n); std::vector > gradients1(n), gradients2(n); std::vector > second1(n), second2(n); - + p.compute (x, values1, gradients1, second1); q.compute (x, values2, gradients2, second2); - + for (unsigned int k=0; k 5.0E-16) - deallog << 'P' << k << ": values differ " << val1 << " != " - << values1[k] << std::endl; + deallog << 'P' << k << ": values differ " << val1 << " != " + << values1[k] << std::endl; double val2 = q.compute_value(k,x); if (std::fabs(val2 - values2[k]) > 5.0E-16) - deallog << 'Q' << k << ": values differ " << val2 << " != " - << values2[k] << std::endl; + deallog << 'Q' << k << ": values differ " << val2 << " != " + << values2[k] << std::endl; if (std::fabs(val2 - val1) > 5.0E-16) - deallog << "PQ" << k << ": values differ " << val1 << " != " - << val2 << std::endl; + deallog << "PQ" << k << ": values differ " << val1 << " != " + << val2 << std::endl; - // Check if compute_grad is ok + // Check if compute_grad is ok Tensor<1,dim> grad1 = p.compute_grad(k,x); if (grad1 != gradients1[k]) - deallog << 'P' << k << ": gradients differ " << grad1 << " != " - << gradients1[k] << std::endl; + deallog << 'P' << k << ": gradients differ " << grad1 << " != " + << gradients1[k] << std::endl; Tensor<1,dim> grad2 = q.compute_grad(k,x); if (grad2 != gradients2[k]) - deallog << 'Q' << k << ": gradients differ " << grad1 << " != " - << gradients2[k] << std::endl; + deallog << 'Q' << k << ": gradients differ " << grad1 << " != " + << gradients2[k] << std::endl; if (grad2 != grad1) - deallog << "PQ" << k << ": gradients differ " << grad1 << " != " - << grad2 << std::endl; - - // Check if compute_grad_grad is ok + deallog << "PQ" << k << ": gradients differ " << grad1 << " != " + << grad2 << std::endl; + + // Check if compute_grad_grad is ok Tensor<2,dim> grad_grad1 = p.compute_grad_grad(k,x); if (grad_grad1 != second1[k]) - deallog << 'P' << k << ": second derivatives differ " << grad_grad1 << " != " - << second1[k] << std::endl; + deallog << 'P' << k << ": second derivatives differ " << grad_grad1 << " != " + << second1[k] << std::endl; Tensor<2,dim> grad_grad2 = q.compute_grad_grad(k,x); if (grad_grad2 != second2[k]) - deallog << 'Q' << k << ": second derivatives differ " << grad_grad2 << " != " - << second2[k] << std::endl; + deallog << 'Q' << k << ": second derivatives differ " << grad_grad2 << " != " + << second2[k] << std::endl; if (grad_grad2 != grad_grad1) - deallog << "PQ" << k << ": second derivatives differ " << grad_grad1 << " != " - << grad_grad2 << std::endl; - - - // finally output values, - // gradients, etc, to make sure - // that they are not only - // consistent, but also - // correct. Multiply them - // somewhat to make them - // significant despite our - // two-post-dot-digits limit + deallog << "PQ" << k << ": second derivatives differ " << grad_grad1 << " != " + << grad_grad2 << std::endl; + + + // finally output values, + // gradients, etc, to make sure + // that they are not only + // consistent, but also + // correct. Multiply them + // somewhat to make them + // significant despite our + // two-post-dot-digits limit values1[k] *= std::pow(10., dim); gradients1[k] *= std::pow(10., dim); - + deallog << 'P' << k << "\t= " << values1[k] - << "\tgradient\t"; - for (unsigned int d=0;d &x, template void -check_tensor (const std::vector >& v, - const Point& x) +check_tensor (const std::vector > &v, + const Point &x) { TensorProductPolynomials p(v); std::vector > > pols (dim, v); AnisotropicPolynomials q(pols); - + check_poly (x, p, q); } void -check_dimensions (const std::vector >& p) +check_dimensions (const std::vector > &p) { deallog.push("1d"); check_tensor(p, Point<1>(.5)); @@ -150,16 +154,16 @@ int main() deallog.push("Lagrange"); std::vector > p; - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (LagrangeEquidistant(3, i)); check_dimensions(p); deallog.pop(); deallog.push("Legendre"); - + p.clear (); - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (Legendre(i)); check_dimensions(p); @@ -168,7 +172,7 @@ int main() deallog.push("Hierarchical"); p.clear (); - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (Hierarchical(i)); check_dimensions(p); diff --git a/tests/base/anisotropic_2.cc b/tests/base/anisotropic_2.cc index 6d7fc02eeb..500d013455 100644 --- a/tests/base/anisotropic_2.cc +++ b/tests/base/anisotropic_2.cc @@ -1,15 +1,19 @@ -//---------------------------- anisotropic_2.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2008 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. // -//---------------------------- anisotropic_2.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. +// +// --------------------------------------------------------------------- + // check AnisotropicPolynomials @@ -54,20 +58,22 @@ void print_2d (const AnisotropicPolynomials<2> &aniso) template -void check_2d () +void check_2d () { - // two checks with higher degree in - // x or y direction + // two checks with higher degree in + // x or y direction { PolVector pols[2] = { Pol::generate_complete_basis (3), - Pol::generate_complete_basis (1) }; + Pol::generate_complete_basis (1) + }; std::vector p(&pols[0], &pols[2]); AnisotropicPolynomials<2> aniso (p); print_2d (aniso); } { PolVector pols[2] = { Pol::generate_complete_basis (2), - Pol::generate_complete_basis (3) }; + Pol::generate_complete_basis (3) + }; std::vector p(&pols[0], &pols[2]); AnisotropicPolynomials<2> aniso (p); @@ -106,14 +112,15 @@ void print_3d (const AnisotropicPolynomials<3> &aniso) template -void check_3d () +void check_3d () { - // three checks with higher degree - // in x, y or z direction + // three checks with higher degree + // in x, y or z direction { PolVector pols[3] = { Pol::generate_complete_basis (3), Pol::generate_complete_basis (1), - Pol::generate_complete_basis (1) }; + Pol::generate_complete_basis (1) + }; std::vector p(&pols[0], &pols[3]); AnisotropicPolynomials<3> aniso (p); print_3d (aniso); @@ -121,7 +128,8 @@ void check_3d () { PolVector pols[3] = { Pol::generate_complete_basis (1), Pol::generate_complete_basis (3), - Pol::generate_complete_basis (1) }; + Pol::generate_complete_basis (1) + }; std::vector p(&pols[0], &pols[3]); AnisotropicPolynomials<3> aniso (p); print_3d (aniso); @@ -129,7 +137,8 @@ void check_3d () { PolVector pols[3] = { Pol::generate_complete_basis (1), Pol::generate_complete_basis (2), - Pol::generate_complete_basis (3) }; + Pol::generate_complete_basis (3) + }; std::vector p(&pols[0], &pols[3]); AnisotropicPolynomials<3> aniso (p); print_3d (aniso); @@ -139,7 +148,7 @@ void check_3d () template -void check () +void check () { check_2d (); check_3d (); diff --git a/tests/base/auto_derivative_function.cc b/tests/base/auto_derivative_function.cc index c996126847..af85ba30dd 100644 --- a/tests/base/auto_derivative_function.cc +++ b/tests/base/auto_derivative_function.cc @@ -1,15 +1,19 @@ -//---------------------------- polynomial_test.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007 by the deal.II authors +// Copyright (C) 2000 - 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. // -//---------------------------- polynomial_test.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. +// +// --------------------------------------------------------------------- + // test the class that generates derivatives of function objects by @@ -30,34 +34,34 @@ template class AutoSinExp: public AutoDerivativeFunction { - public: - AutoSinExp(); - virtual ~AutoSinExp() {} - - virtual double value (const Point &p, - const unsigned int component = 0) const; - - /** - * n_components=2. First - * component=0, second component - * filled by @p{value} function. - */ - virtual void vector_value (const Point &p, - Vector &values) const; +public: + AutoSinExp(); + virtual ~AutoSinExp() {} + + virtual double value (const Point &p, + const unsigned int component = 0) const; + + /** + * n_components=2. First + * component=0, second component + * filled by @p{value} function. + */ + virtual void vector_value (const Point &p, + Vector &values) const; }; template AutoSinExp::AutoSinExp(): - AutoDerivativeFunction(1e-6, 2) + AutoDerivativeFunction(1e-6, 2) {} template double AutoSinExp::value (const Point &p, - const unsigned int) const + const unsigned int) const { return std::sin(2*p(0))*std::exp(3*p(1)); } @@ -65,7 +69,7 @@ double AutoSinExp::value (const Point &p, template void AutoSinExp::vector_value (const Point &p, - Vector &values) const + Vector &values) const { Assert(values.size()==this->n_components, ExcDimensionMismatch(values.size(), this->n_components)); @@ -78,15 +82,15 @@ void AutoSinExp::vector_value (const Point &p, template class ExactSinExp: public AutoSinExp { - public: - ExactSinExp() {} - ~ExactSinExp() {} - - virtual Tensor<1,dim> gradient (const Point &p, - const unsigned int component = 0) const; - - virtual void vector_gradient (const Point &p, - typename std::vector > &gradients) const; +public: + ExactSinExp() {} + ~ExactSinExp() {} + + virtual Tensor<1,dim> gradient (const Point &p, + const unsigned int component = 0) const; + + virtual void vector_gradient (const Point &p, + typename std::vector > &gradients) const; }; @@ -94,7 +98,7 @@ class ExactSinExp: public AutoSinExp template Tensor<1,dim> ExactSinExp::gradient (const Point &p, - const unsigned int) const + const unsigned int) const { Tensor<1,dim> grad; grad[0]=2*std::cos(2*p(0))*std::exp(3*p(1)); @@ -105,11 +109,11 @@ Tensor<1,dim> ExactSinExp::gradient (const Point &p, template void ExactSinExp::vector_gradient (const Point &p, - typename std::vector > &gradients) const + typename std::vector > &gradients) const { Assert(gradients.size()==this->n_components, ExcDimensionMismatch(gradients.size(), this->n_components)); - + gradients[0].clear(); gradients[1]=gradient(p); } @@ -128,7 +132,7 @@ int main() ExactSinExp exact_function; Point p(0.23, 0.1); std::vector > ps(1, p); - + Tensor<1,dim> u_grad=exact_function.gradient(p); @@ -140,57 +144,57 @@ int main() auto_function.set_formula(formula); deallog << "order=" << order << ", formula=" << formula << std::endl; ConvergenceTable history; - + unsigned int factor=1; for (unsigned int i=0; i<6; ++i, factor*=2) - { - history.add_value("f", factor); - history.omit_column_from_convergence_rate_evaluation("f"); - - auto_function.set_h(h_base/factor); - - // Test of gradient function - Tensor<1,dim> a_grad=auto_function.gradient(p); - a_grad-=u_grad; - double value=std::sqrt(a_grad*a_grad); - history.add_value("grad", value); - history.set_scientific("grad", true); - history.set_precision("grad", 2); - - // Test of gradient_list - // function - std::vector > a_grads(1); - auto_function.gradient_list(ps, a_grads); - a_grads[0]-=u_grad; - value=std::sqrt(a_grads[0]*a_grads[0]); - history.add_value("grads[0]", value); - history.set_scientific("grads[0]", true); - history.set_precision("grads[0]", 2); - - // Test of vector_gradient - // function - std::vector > a_vgrad(2); - auto_function.vector_gradient(p, a_vgrad); - a_vgrad[1]-=u_grad; - value=std::sqrt(a_vgrad[1]*a_vgrad[1]); - history.add_value("vgrad[1]", value); - history.set_scientific("vgrad[1]", true); - history.set_precision("vgrad[1]", 2); - - // Test of - // vector_gradient_list - // function - std::vector > > - a_vgrads(1, std::vector > (2)); - auto_function.vector_gradient_list(ps, a_vgrads); - a_vgrads[0][1]-=u_grad; - value=std::sqrt(a_vgrads[0][1]*a_vgrads[0][1]); - history.add_value("vgrads[1]", value); - history.set_scientific("vgrads[1]", true); - history.set_precision("vgrads[1]", 2); - } + { + history.add_value("f", factor); + history.omit_column_from_convergence_rate_evaluation("f"); + + auto_function.set_h(h_base/factor); + + // Test of gradient function + Tensor<1,dim> a_grad=auto_function.gradient(p); + a_grad-=u_grad; + double value=std::sqrt(a_grad*a_grad); + history.add_value("grad", value); + history.set_scientific("grad", true); + history.set_precision("grad", 2); + + // Test of gradient_list + // function + std::vector > a_grads(1); + auto_function.gradient_list(ps, a_grads); + a_grads[0]-=u_grad; + value=std::sqrt(a_grads[0]*a_grads[0]); + history.add_value("grads[0]", value); + history.set_scientific("grads[0]", true); + history.set_precision("grads[0]", 2); + + // Test of vector_gradient + // function + std::vector > a_vgrad(2); + auto_function.vector_gradient(p, a_vgrad); + a_vgrad[1]-=u_grad; + value=std::sqrt(a_vgrad[1]*a_vgrad[1]); + history.add_value("vgrad[1]", value); + history.set_scientific("vgrad[1]", true); + history.set_precision("vgrad[1]", 2); + + // Test of + // vector_gradient_list + // function + std::vector > > + a_vgrads(1, std::vector > (2)); + auto_function.vector_gradient_list(ps, a_vgrads); + a_vgrads[0][1]-=u_grad; + value=std::sqrt(a_vgrads[0][1]*a_vgrads[0][1]); + history.add_value("vgrads[1]", value); + history.set_scientific("vgrads[1]", true); + history.set_precision("vgrads[1]", 2); + } history.evaluate_all_convergence_rates( - ConvergenceTable::reduction_rate); + ConvergenceTable::reduction_rate); history.write_text(deallog.get_file_stream()); } } diff --git a/tests/base/conditional_ostream.cc b/tests/base/conditional_ostream.cc index a95eacf53d..6e12f63f37 100644 --- a/tests/base/conditional_ostream.cc +++ b/tests/base/conditional_ostream.cc @@ -1,15 +1,19 @@ -//---------------------------- conditional_ostream.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- conditional_ostream.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. +// +// --------------------------------------------------------------------- + // test the functions of ConditionalOStream @@ -28,7 +32,7 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + ConditionalOStream o(logfile, true); o << "Yes" << std::endl; deallog << o.is_active() << std::endl; diff --git a/tests/base/convergence_table_01.cc b/tests/base/convergence_table_01.cc index 88d58e8a85..a736b3bde6 100644 --- a/tests/base/convergence_table_01.cc +++ b/tests/base/convergence_table_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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 "../tests.h" #include @@ -22,7 +26,8 @@ #include #include -// test the method evaluate_convergence_rates with argument reference_column_key, +// test the method evaluate_convergence_rates with argument +// reference_column_key, assuming data coming from 2d int main () { @@ -35,17 +40,17 @@ int main () ConvergenceTable table_2; for (unsigned int i=1; i<=4; ++i) - { - table.add_value("error", 3.*i); - table.add_value("key", i); - table_2.add_value("error", std::pow(1./sqrt(i),4.)); - table_2.add_value("key", i); - } + { + table.add_value("error", 3.*i); + table.add_value("key", i); + table_2.add_value("error", std::pow(1./sqrt(i),4.)); + table_2.add_value("key", i); + } table.evaluate_convergence_rates("error", "key", ConvergenceTable::reduction_rate); table_2.evaluate_convergence_rates("error", "key", ConvergenceTable::reduction_rate_log2); - // output + // output table.write_text(deallog.get_file_stream()); table_2.write_text(deallog.get_file_stream()); } diff --git a/tests/base/convergence_table_02.cc b/tests/base/convergence_table_02.cc index be5d476dff..f2dad06233 100644 --- a/tests/base/convergence_table_02.cc +++ b/tests/base/convergence_table_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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 "../tests.h" #include @@ -22,7 +26,7 @@ #include #include -// test the method evaluate_all_convergence_rates with argument reference_column_key, +// test the method evaluate_all_convergence_rates with argument reference_column_key, int main () { @@ -34,16 +38,16 @@ int main () ConvergenceTable table; for (unsigned int i=1; i<=4; ++i) - { - table.add_value("error", 1./sqrt(i)); - table.add_value("error2", std::pow(1./sqrt(i),2.)); - table.add_value("error3", std::pow(1./sqrt(i),3.)); - table.add_value("error4", std::pow(1./sqrt(i),4.)); - table.add_value("key", i); - } + { + table.add_value("error", 1./sqrt(i)); + table.add_value("error2", std::pow(1./sqrt(i),2.)); + table.add_value("error3", std::pow(1./sqrt(i),3.)); + table.add_value("error4", std::pow(1./sqrt(i),4.)); + table.add_value("key", i); + } table.omit_column_from_convergence_rate_evaluation ( "key" ); table.evaluate_all_convergence_rates("key", ConvergenceTable::reduction_rate_log2); - // output + // output table.write_text(deallog.get_file_stream()); } diff --git a/tests/base/convergence_table_03.cc b/tests/base/convergence_table_03.cc index 8628e7d6aa..71a775928a 100644 --- a/tests/base/convergence_table_03.cc +++ b/tests/base/convergence_table_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // like _02, but with auto fill mode set on the underlying table @@ -36,16 +40,16 @@ int main () table.set_auto_fill_mode (true); for (unsigned int i=1; i<=4; ++i) - { - table.add_value("error", 1./sqrt(i)); - table.add_value("error2", std::pow(1./sqrt(i),2.)); - table.add_value("error3", std::pow(1./sqrt(i),3.)); - table.add_value("error4", std::pow(1./sqrt(i),4.)); - table.add_value("key", i); - } + { + table.add_value("error", 1./sqrt(i)); + table.add_value("error2", std::pow(1./sqrt(i),2.)); + table.add_value("error3", std::pow(1./sqrt(i),3.)); + table.add_value("error4", std::pow(1./sqrt(i),4.)); + table.add_value("key", i); + } table.omit_column_from_convergence_rate_evaluation ( "key" ); table.evaluate_all_convergence_rates("key", ConvergenceTable::reduction_rate_log2); - // output + // output table.write_text(deallog.get_file_stream()); } diff --git a/tests/base/convergence_table_04.cc b/tests/base/convergence_table_04.cc new file mode 100644 index 0000000000..31666ca791 --- /dev/null +++ b/tests/base/convergence_table_04.cc @@ -0,0 +1,108 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2010 - 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. +// +// --------------------------------------------------------------------- + + +#include "../tests.h" +#include +#include +#include +#include + +#include +#include +#include +#include + +// test the method evaluate_convergence_rates with argument +// reference_column_key and data from various dimension where the reference +// data must be scaled by dimension + +// data generated from a run of step-7 with Q2 elements for 1D, 2D and Q1 +// elements for 3D + +int main () +{ + std::ofstream logfile("convergence_table_04/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + ConvergenceTable table_1; + ConvergenceTable table_2; + ConvergenceTable table_3; + + deallog << "Testing 1D data" << std::endl; + table_1.add_value("n_cells", 16); + table_1.add_value("error", 4.841e-04); + table_1.add_value("n_cells", 24); + table_1.add_value("error", 1.446e-04); + table_1.add_value("n_cells", 32); + table_1.add_value("error", 6.120e-05); + table_1.add_value("n_cells", 48); + table_1.add_value("error", 1.817e-05); + table_1.add_value("n_cells", 64); + table_1.add_value("error", 7.672e-06); + table_1.add_value("n_cells", 96); + table_1.add_value("error", 2.274e-06); + table_1.add_value("n_cells", 128); + table_1.add_value("error", 9.597e-07); + table_1.set_scientific("error", true); + table_1.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate); + table_1.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate_log2, 1); + table_1.write_text(deallog.get_file_stream()); + + deallog << std::endl << "Testing 2d data" << std::endl; + table_2.add_value("n_cells", 64); + table_2.add_value("error", 7.755e-03); + table_2.add_value("n_cells", 144); + table_2.add_value("error", 2.326e-03); + table_2.add_value("n_cells", 256); + table_2.add_value("error", 9.969e-04); + table_2.add_value("n_cells", 576); + table_2.add_value("error", 2.987e-04); + table_2.add_value("n_cells", 1024); + table_2.add_value("error", 1.265e-04); + table_2.add_value("n_cells", 2304); + table_2.add_value("error", 3.759e-05); + table_2.add_value("n_cells", 4096); + table_2.add_value("error", 1.587e-05); + table_2.set_scientific("error", true); + table_2.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate); + table_2.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate_log2, 2); + table_2.write_text(deallog.get_file_stream()); + + deallog << std::endl << "Testing 3d data" << std::endl; + table_3.add_value("n_cells", 512); + table_3.add_value("error", 5.791e-02); + table_3.add_value("n_cells", 1728); + table_3.add_value("error", 2.624e-02); + table_3.add_value("n_cells", 4096); + table_3.add_value("error", 1.480e-02); + table_3.add_value("n_cells", 13824); + table_3.add_value("error", 6.587e-03); + table_3.add_value("n_cells", 32768); + table_3.add_value("error", 3.708e-03); + table_3.add_value("n_cells", 110592); + table_3.add_value("error", 1.649e-03); + table_3.add_value("n_cells", 262144); + table_3.add_value("error", 9.275e-04); + table_3.set_scientific("error", true); + table_3.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate); + table_3.evaluate_convergence_rates("error", "n_cells", ConvergenceTable::reduction_rate_log2, 3); + table_3.write_text(deallog.get_file_stream()); + + +} diff --git a/tests/base/convergence_table_04/cmp/generic b/tests/base/convergence_table_04/cmp/generic new file mode 100644 index 0000000000..b133f2d458 --- /dev/null +++ b/tests/base/convergence_table_04/cmp/generic @@ -0,0 +1,30 @@ + +DEAL::Testing 1D data +n_cells error +16 4.8410e-04 - - +24 1.4460e-04 5.02 2.98 +32 6.1200e-05 3.15 2.99 +48 1.8170e-05 5.05 3.00 +64 7.6720e-06 3.16 3.00 +96 2.2740e-06 5.06 3.00 +128 9.5970e-07 3.16 3.00 +DEAL:: +DEAL::Testing 2d data +n_cells error +64 7.7550e-03 - - +144 2.3260e-03 7.50 2.97 +256 9.9690e-04 4.15 2.95 +576 2.9870e-04 7.51 2.97 +1024 1.2650e-04 4.20 2.99 +2304 3.7590e-05 7.57 2.99 +4096 1.5870e-05 4.21 3.00 +DEAL:: +DEAL::Testing 3d data +n_cells error +512 5.7910e-02 - - +1728 2.6240e-02 7.45 1.95 +4096 1.4800e-02 4.20 1.99 +13824 6.5870e-03 7.58 2.00 +32768 3.7080e-03 4.21 2.00 +110592 1.6490e-03 7.59 2.00 +262144 9.2750e-04 4.21 2.00 diff --git a/tests/base/data_out_base.cc b/tests/base/data_out_base.cc index 45f2ac7870..e31b508051 100644 --- a/tests/base/data_out_base.cc +++ b/tests/base/data_out_base.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010 by the deal.II authors +// Copyright (C) 2000 - 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 "../tests.h" #include @@ -23,13 +27,13 @@ //TODO: Several functions are commented out since implementations are missing #define WRITE(type) { out << "Writing " # type " dimensions " \ -<< dim << ',' << spacedim << std::endl; \ -DataOutBase::write_ ## type (patches, names, vectors, type ## flags, out); } + << dim << ',' << spacedim << std::endl; \ + DataOutBase::write_ ## type (patches, names, vectors, type ## flags, out); } template void -write_patches(const std::vector >& patches, - std::ostream& out) +write_patches(const std::vector > &patches, + std::ostream &out) { std::vector names(2); names[0] = std::string("first name"); @@ -63,9 +67,9 @@ write_patches(const std::vector >& patches, template struct PatchInfo { - static double vertices[GeometryInfo::vertices_per_cell][3]; - static double offsets[GeometryInfo::vertices_per_cell][3]; - static int neighbors[GeometryInfo::vertices_per_cell][GeometryInfo::faces_per_cell]; + static double vertices[GeometryInfo::vertices_per_cell][3]; + static double offsets[GeometryInfo::vertices_per_cell][3]; + static int neighbors[GeometryInfo::vertices_per_cell][GeometryInfo::faces_per_cell]; }; @@ -160,43 +164,43 @@ double PatchInfo<3>::offsets[8][3] template void -create_patches(std::vector >& patches) +create_patches(std::vector > &patches) { const unsigned int ncells = GeometryInfo::vertices_per_cell; const unsigned int nsub = 3; patches.resize(ncells); - for (unsigned int c = 0; c < ncells;++c) + for (unsigned int c = 0; c < ncells; ++c) { - DataOutBase::Patch& p = patches[c]; + DataOutBase::Patch &p = patches[c]; p.patch_index = c; p.n_subdivisions = nsub; - for (unsigned int i=0;i::vertices[i][j] - + PatchInfo::offsets[c][j]; + for (unsigned int i=0; i::vertices[i][j] + + PatchInfo::offsets[c][j]; - for (unsigned int i=0;i::faces_per_cell;++i) - p.neighbors[i] = (unsigned int) PatchInfo::neighbors[c][i]; + for (unsigned int i=0; i::faces_per_cell; ++i) + p.neighbors[i] = (unsigned int) PatchInfo::neighbors[c][i]; unsigned int ndata = 1; - for (unsigned int i=0;i -void test(std::ostream& out) +void test(std::ostream &out) { std::vector > patches; create_patches(patches); diff --git a/tests/base/data_out_base/cmp/generic b/tests/base/data_out_base/cmp/generic index 2df9e91444..8bdefbe72d 100644 --- a/tests/base/data_out_base/cmp/generic +++ b/tests/base/data_out_base/cmp/generic @@ -155,7 +155,7 @@ LOOKUP_TABLE default Writing deal_II_intermediate dimensions 1,2 1 2 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 2 first name @@ -1259,7 +1259,7 @@ LOOKUP_TABLE default Writing deal_II_intermediate dimensions 2,2 2 2 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 2 first name @@ -2049,7 +2049,7 @@ LOOKUP_TABLE default Writing deal_II_intermediate dimensions 2,3 2 3 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 2 first name @@ -10415,7 +10415,7 @@ LOOKUP_TABLE default Writing deal_II_intermediate dimensions 3,3 3 3 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 2 first name diff --git a/tests/base/data_out_base_dx.cc b/tests/base/data_out_base_dx.cc index be632b55a2..59e4c20d05 100644 --- a/tests/base/data_out_base_dx.cc +++ b/tests/base/data_out_base_dx.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -32,14 +36,14 @@ template void check(DataOutBase::DXFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -55,14 +59,14 @@ void check(DataOutBase::DXFlags flags, template void check_cont(unsigned int ncells, - unsigned int nsub, - DataOutBase::DXFlags flags, - std::ostream& out) + unsigned int nsub, + DataOutBase::DXFlags flags, + std::ostream &out) { std::vector > patches; - + create_continuous_patches(patches, ncells, nsub); - + std::vector names(1); names[0] = "CutOff"; std::vector > vectors; @@ -71,85 +75,91 @@ void check_cont(unsigned int ncells, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; - const char* format = "data_out_base_dx/%d%d%s.dx"; + const char *format = "data_out_base_dx/%d%d%s.dx"; DataOutBase::DXFlags flags(false, false, false, false); - if (dim == 2 && spacedim == 2) { - sprintf(name, format, dim, spacedim, "ffffcont"); + if (dim == 2 && spacedim == 2) + { + sprintf(name, format, dim, spacedim, "ffffcont"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check_cont(4,4,flags, out); - } - if (true) { - sprintf(name, format, dim, spacedim, "ffff"); + check_cont(4,4,flags, out); + } + if (true) + { + sprintf(name, format, dim, spacedim, "ffff"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } flags.int_binary = true; - if (true) { - sprintf(name, format, dim, spacedim, "tfff"); + if (true) + { + sprintf(name, format, dim, spacedim, "tfff"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } flags.coordinates_binary = true; - if (true) { - sprintf(name, format, dim, spacedim, "ttff"); + if (true) + { + sprintf(name, format, dim, spacedim, "ttff"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } flags.data_binary = true; - if (true) { - sprintf(name, format, dim, spacedim, "tttf"); + if (true) + { + sprintf(name, format, dim, spacedim, "tttf"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } flags.data_double = true; - if (true) { - sprintf(name, format, dim, spacedim, "tttf"); + if (true) + { + sprintf(name, format, dim, spacedim, "tttf"); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } } int main() @@ -159,5 +169,5 @@ int main() check_all<1,2>(logfile); check_all<2,2>(logfile); check_all<2,3>(logfile); - check_all<3,3>(logfile); + check_all<3,3>(logfile); } diff --git a/tests/base/data_out_base_eps.cc b/tests/base/data_out_base_eps.cc index 41c726897e..c993d53a9e 100644 --- a/tests/base/data_out_base_eps.cc +++ b/tests/base/data_out_base_eps.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -32,14 +36,14 @@ template void check(DataOutBase::EpsFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -53,14 +57,14 @@ void check(DataOutBase::EpsFlags flags, template void check_cont(unsigned int ncells, - unsigned int nsub, - DataOutBase::EpsFlags flags, - std::ostream& out) + unsigned int nsub, + DataOutBase::EpsFlags flags, + std::ostream &out) { std::vector > patches; - + create_continuous_patches(patches, ncells, nsub); - + std::vector names(1); names[0] = "CutOff"; std::vector > vectors; @@ -69,14 +73,14 @@ void check_cont(unsigned int ncells, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; - const char* format = "data_out_base_eps/%d%d%d%s.eps"; + const char *format = "data_out_base_eps/%d%d%d%s.eps"; DataOutBase::EpsFlags flags; if (true) @@ -86,24 +90,24 @@ void check_all(std::ostream& log) std::ofstream out(name); #else out << "==============================\n" - << name - << "\n==============================\n"; + << name + << "\n==============================\n"; #endif check_cont(4, 4, flags, out); } - for (unsigned int i=0;i<5;++i) + for (unsigned int i=0; i<5; ++i) { flags.height_vector = i; flags.color_vector = i; - + sprintf(name, format, dim, spacedim, i, ""); #if SEPARATE_FILES==1 std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif check(flags, out); } @@ -116,5 +120,5 @@ int main() // check_all<1,2>(logfile); check_all<2,2>(logfile); check_all<2,3>(logfile); -// check_all<3,3>(logfile); +// check_all<3,3>(logfile); } diff --git a/tests/base/data_out_base_gmv.cc b/tests/base/data_out_base_gmv.cc index df2006a6b7..7c67694ad6 100644 --- a/tests/base/data_out_base_gmv.cc +++ b/tests/base/data_out_base_gmv.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -31,14 +35,14 @@ template void check(DataOutBase::GmvFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -51,25 +55,26 @@ void check(DataOutBase::GmvFlags flags, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; DataOutBase::GmvFlags flags; - if (true) { - sprintf(name, "data_out_base_gmv/%d%d.gmv", dim, spacedim); + if (true) + { + sprintf(name, "data_out_base_gmv/%d%d.gmv", dim, spacedim); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } } int main() diff --git a/tests/base/data_out_base_gnuplot.cc b/tests/base/data_out_base_gnuplot.cc index d111905d2c..849c8d5cc2 100644 --- a/tests/base/data_out_base_gnuplot.cc +++ b/tests/base/data_out_base_gnuplot.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -30,14 +34,14 @@ template void check(DataOutBase::GnuplotFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -50,24 +54,24 @@ void check(DataOutBase::GnuplotFlags flags, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; - const char* format = "data_out_base_gnuplot/%d%d.gnuplot"; + const char *format = "data_out_base_gnuplot/%d%d.gnuplot"; DataOutBase::GnuplotFlags flags; - for (unsigned int i=0;i<5;++i) + for (unsigned int i=0; i<5; ++i) { sprintf(name, format, dim, spacedim, ""); #if SEPARATE_FILES==1 std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif check(flags, out); } @@ -80,5 +84,5 @@ int main() check_all<1,2>(logfile); check_all<2,2>(logfile); check_all<2,3>(logfile); - check_all<3,3>(logfile); + check_all<3,3>(logfile); } diff --git a/tests/base/data_out_base_povray.cc b/tests/base/data_out_base_povray.cc index 0229e92197..1eb125d2ed 100644 --- a/tests/base/data_out_base_povray.cc +++ b/tests/base/data_out_base_povray.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -32,14 +36,14 @@ template void check(DataOutBase::PovrayFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -53,14 +57,14 @@ void check(DataOutBase::PovrayFlags flags, template void check_cont(unsigned int ncells, - unsigned int nsub, - DataOutBase::PovrayFlags flags, - std::ostream& out) + unsigned int nsub, + DataOutBase::PovrayFlags flags, + std::ostream &out) { std::vector > patches; - + create_continuous_patches(patches, ncells, nsub); - + std::vector names(1); names[0] = "CutOff"; std::vector > vectors; @@ -69,12 +73,12 @@ void check_cont(unsigned int ncells, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; // const char* format = "data_out_base_povray/%d%d%d%s.pov"; DataOutBase::PovrayFlags flags; @@ -86,12 +90,12 @@ void check_all(std::ostream& log) std::ofstream out(name); #else out << "==============================\n" - << name - << "\n==============================\n"; + << name + << "\n==============================\n"; #endif check_cont(4, 4, flags, out); } - + flags.external_data = true; if (true) { @@ -100,8 +104,8 @@ void check_all(std::ostream& log) std::ofstream out(name); #else out << "==============================\n" - << name - << "\n==============================\n"; + << name + << "\n==============================\n"; #endif check_cont(4, 4, flags, out); } @@ -114,12 +118,12 @@ void check_all(std::ostream& log) std::ofstream out(name); #else out << "==============================\n" - << name - << "\n==============================\n"; + << name + << "\n==============================\n"; #endif check_cont(4, 4, flags, out); } - + flags.bicubic_patch = true; if (true) { @@ -128,8 +132,8 @@ void check_all(std::ostream& log) std::ofstream out(name); #else out << "==============================\n" - << name - << "\n==============================\n"; + << name + << "\n==============================\n"; #endif check_cont(4, 3, flags, out); } @@ -142,5 +146,5 @@ int main() // check_all<1,2>(logfile); check_all<2,2>(logfile); check_all<2,3>(logfile); -// check_all<3,3>(logfile); +// check_all<3,3>(logfile); } diff --git a/tests/base/data_out_base_pvd.cc b/tests/base/data_out_base_pvd.cc index 8af1b7727b..2a9d144a67 100644 --- a/tests/base/data_out_base_pvd.cc +++ b/tests/base/data_out_base_pvd.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2007, 2010, 2012 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. +// +// --------------------------------------------------------------------- + // write the pvd master record for parallel visualization through the // vtu file format @@ -32,24 +36,24 @@ std::vector > patches; class DataOutX : public DataOutInterface<2,2> { - virtual - const std::vector< ::DataOutBase::Patch<2,2> > & - get_patches () const - { - return patches; - } - - virtual - std::vector - get_dataset_names () const - { - return std::vector(); - } + virtual + const std::vector< ::DataOutBase::Patch<2,2> > & + get_patches () const + { + return patches; + } + + virtual + std::vector + get_dataset_names () const + { + return std::vector(); + } }; template -void check(std::ostream& out) +void check(std::ostream &out) { std::vector > names(5); names[0] = std::make_pair(0,"x1"); diff --git a/tests/base/data_out_base_pvtu.cc b/tests/base/data_out_base_pvtu.cc index 46be8967e7..4715dbe084 100644 --- a/tests/base/data_out_base_pvtu.cc +++ b/tests/base/data_out_base_pvtu.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2007, 2010, 2012 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. +// +// --------------------------------------------------------------------- + // write the pvtu master record for parallel visualization through the // vtu file format @@ -33,24 +37,24 @@ std::vector names; class DataOutX : public DataOutInterface<2,2> { - virtual - const std::vector< ::DataOutBase::Patch<2,2> > & - get_patches () const - { - return patches; - } - - virtual - std::vector - get_dataset_names () const - { - return names; - } + virtual + const std::vector< ::DataOutBase::Patch<2,2> > & + get_patches () const + { + return patches; + } + + virtual + std::vector + get_dataset_names () const + { + return names; + } }; template -void check(std::ostream& out) +void check(std::ostream &out) { names.resize (5); names[0] = "x1"; diff --git a/tests/base/data_out_base_tecplot.cc b/tests/base/data_out_base_tecplot.cc index 80d60af881..7294d43b2d 100644 --- a/tests/base/data_out_base_tecplot.cc +++ b/tests/base/data_out_base_tecplot.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -31,14 +35,14 @@ template void check(DataOutBase::TecplotFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -51,31 +55,32 @@ void check(DataOutBase::TecplotFlags flags, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; DataOutBase::TecplotFlags flags; - if (true) { - sprintf(name, "data_out_base_tecplot/%d%d.tecplot", dim, spacedim); + if (true) + { + sprintf(name, "data_out_base_tecplot/%d%d.tecplot", dim, spacedim); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } } int main() { std::ofstream logfile("data_out_base_tecplot/output", - std::ios_base::trunc | std::ios_base::binary); + std::ios_base::trunc | std::ios_base::binary); check_all<1,1>(logfile); check_all<1,2>(logfile); check_all<2,2>(logfile); diff --git a/tests/base/data_out_base_tecplot_bin.cc b/tests/base/data_out_base_tecplot_bin.cc index cf9fbd46de..5825318924 100644 --- a/tests/base/data_out_base_tecplot_bin.cc +++ b/tests/base/data_out_base_tecplot_bin.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2010 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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -28,14 +32,14 @@ template void check(DataOutBase::TecplotFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -52,12 +56,13 @@ void check_all() { char name[100]; DataOutBase::TecplotFlags flags; - if (true) { - sprintf(name, "data_out_base_tecplot_bin/%d%d.tecplot", dim, spacedim); - flags.tecplot_binary_file_name=name; - - check(flags, deallog.get_file_stream()); - } + if (true) + { + sprintf(name, "data_out_base_tecplot_bin/%d%d.tecplot", dim, spacedim); + flags.tecplot_binary_file_name=name; + + check(flags, deallog.get_file_stream()); + } } int main() diff --git a/tests/base/data_out_base_vtk.cc b/tests/base/data_out_base_vtk.cc index 5357dea5e9..5845cc6ae9 100644 --- a/tests/base/data_out_base_vtk.cc +++ b/tests/base/data_out_base_vtk.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -31,14 +35,14 @@ template void check(DataOutBase::VtkFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -51,25 +55,26 @@ void check(DataOutBase::VtkFlags flags, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif - + char name[100]; DataOutBase::VtkFlags flags; - if (true) { - sprintf(name, "data_out_base_vtk/%d%d.vtk", dim, spacedim); + if (true) + { + sprintf(name, "data_out_base_vtk/%d%d.vtk", dim, spacedim); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } } int main() diff --git a/tests/base/data_out_base_vtk_cycle.cc b/tests/base/data_out_base_vtk_cycle.cc new file mode 100644 index 0000000000..bdca62d055 --- /dev/null +++ b/tests/base/data_out_base_vtk_cycle.cc @@ -0,0 +1,94 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtk, but output cycle as well + + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtk(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.cycle = 42; + + if (true) + { + sprintf(name, "data_out_base_vtk_cycle/%d%d.vtk", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtk_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtk_cycle/cmp/generic b/tests/base/data_out_base_vtk_cycle/cmp/generic new file mode 100644 index 0000000000..4ea2ca1660 --- /dev/null +++ b/tests/base/data_out_base_vtk_cycle/cmp/generic @@ -0,0 +1,705 @@ +============================== +data_out_base_vtk_cycle/11.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +CYCLE 1 1 int +42 +POINTS 14 double +0 0 0 +1 0 0 +1 0 0 +1.5 0 0 +2 0 0 +2 0 0 +2.33333 0 0 +2.66667 0 0 +3 0 0 +3 0 0 +3.25 0 0 +3.5 0 0 +3.75 0 0 +4 0 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_cycle/12.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +CYCLE 1 1 int +42 +POINTS 14 double +0 0 0 +1 1 0 +1 1 0 +1.5 1.5 0 +2 2 0 +2 2 0 +2.33333 2.33333 0 +2.66667 2.66667 0 +3 3 0 +3 3 0 +3.25 3.25 0 +3.5 3.5 0 +3.75 3.75 0 +4 4 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_cycle/22.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +CYCLE 1 1 int +42 +POINTS 54 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +1 1 0 +1.5 1 0 +2 1 0 +1 1.5 0 +1.5 1.5 0 +2 1.5 0 +1 2 0 +1.5 2 0 +2 2 0 +2 2 0 +2.33333 2 0 +2.66667 2 0 +3 2 0 +2 2.33333 0 +2.33333 2.33333 0 +2.66667 2.33333 0 +3 2.33333 0 +2 2.66667 0 +2.33333 2.66667 0 +2.66667 2.66667 0 +3 2.66667 0 +2 3 0 +2.33333 3 0 +2.66667 3 0 +3 3 0 +3 3 0 +3.25 3 0 +3.5 3 0 +3.75 3 0 +4 3 0 +3 3.25 0 +3.25 3.25 0 +3.5 3.25 0 +3.75 3.25 0 +4 3.25 0 +3 3.5 0 +3.25 3.5 0 +3.5 3.5 0 +3.75 3.5 0 +4 3.5 0 +3 3.75 0 +3.25 3.75 0 +3.5 3.75 0 +3.75 3.75 0 +4 3.75 0 +3 4 0 +3.25 4 0 +3.5 4 0 +3.75 4 0 +4 4 0 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_cycle/23.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +CYCLE 1 1 int +42 +POINTS 54 double +0 0 0 +1 0 1 +0 1 2 +1 1 3 +1 1 1 +1.5 1 1.5 +2 1 2 +1 1.5 2 +1.5 1.5 2.5 +2 1.5 3 +1 2 3 +1.5 2 3.5 +2 2 4 +2 2 2 +2.33333 2 2.33333 +2.66667 2 2.66667 +3 2 3 +2 2.33333 2.66667 +2.33333 2.33333 3 +2.66667 2.33333 3.33333 +3 2.33333 3.66667 +2 2.66667 3.33333 +2.33333 2.66667 3.66667 +2.66667 2.66667 4 +3 2.66667 4.33333 +2 3 4 +2.33333 3 4.33333 +2.66667 3 4.66667 +3 3 5 +3 3 3 +3.25 3 3.25 +3.5 3 3.5 +3.75 3 3.75 +4 3 4 +3 3.25 3.5 +3.25 3.25 3.75 +3.5 3.25 4 +3.75 3.25 4.25 +4 3.25 4.5 +3 3.5 4 +3.25 3.5 4.25 +3.5 3.5 4.5 +3.75 3.5 4.75 +4 3.5 5 +3 3.75 4.5 +3.25 3.75 4.75 +3.5 3.75 5 +3.75 3.75 5.25 +4 3.75 5.5 +3 4 5 +3.25 4 5.25 +3.5 4 5.5 +3.75 4 5.75 +4 4 6 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_cycle/33.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +CYCLE 1 1 int +42 +POINTS 224 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +0 0 1 +1 0 1 +0 1 1 +1 1 1 +1 1 1 +1.5 1 1 +2 1 1 +1 1.5 1 +1.5 1.5 1 +2 1.5 1 +1 2 1 +1.5 2 1 +2 2 1 +1 1 1.5 +1.5 1 1.5 +2 1 1.5 +1 1.5 1.5 +1.5 1.5 1.5 +2 1.5 1.5 +1 2 1.5 +1.5 2 1.5 +2 2 1.5 +1 1 2 +1.5 1 2 +2 1 2 +1 1.5 2 +1.5 1.5 2 +2 1.5 2 +1 2 2 +1.5 2 2 +2 2 2 +2 2 2 +2.33333 2 2 +2.66667 2 2 +3 2 2 +2 2.33333 2 +2.33333 2.33333 2 +2.66667 2.33333 2 +3 2.33333 2 +2 2.66667 2 +2.33333 2.66667 2 +2.66667 2.66667 2 +3 2.66667 2 +2 3 2 +2.33333 3 2 +2.66667 3 2 +3 3 2 +2 2 2.33333 +2.33333 2 2.33333 +2.66667 2 2.33333 +3 2 2.33333 +2 2.33333 2.33333 +2.33333 2.33333 2.33333 +2.66667 2.33333 2.33333 +3 2.33333 2.33333 +2 2.66667 2.33333 +2.33333 2.66667 2.33333 +2.66667 2.66667 2.33333 +3 2.66667 2.33333 +2 3 2.33333 +2.33333 3 2.33333 +2.66667 3 2.33333 +3 3 2.33333 +2 2 2.66667 +2.33333 2 2.66667 +2.66667 2 2.66667 +3 2 2.66667 +2 2.33333 2.66667 +2.33333 2.33333 2.66667 +2.66667 2.33333 2.66667 +3 2.33333 2.66667 +2 2.66667 2.66667 +2.33333 2.66667 2.66667 +2.66667 2.66667 2.66667 +3 2.66667 2.66667 +2 3 2.66667 +2.33333 3 2.66667 +2.66667 3 2.66667 +3 3 2.66667 +2 2 3 +2.33333 2 3 +2.66667 2 3 +3 2 3 +2 2.33333 3 +2.33333 2.33333 3 +2.66667 2.33333 3 +3 2.33333 3 +2 2.66667 3 +2.33333 2.66667 3 +2.66667 2.66667 3 +3 2.66667 3 +2 3 3 +2.33333 3 3 +2.66667 3 3 +3 3 3 +3 3 3 +3.25 3 3 +3.5 3 3 +3.75 3 3 +4 3 3 +3 3.25 3 +3.25 3.25 3 +3.5 3.25 3 +3.75 3.25 3 +4 3.25 3 +3 3.5 3 +3.25 3.5 3 +3.5 3.5 3 +3.75 3.5 3 +4 3.5 3 +3 3.75 3 +3.25 3.75 3 +3.5 3.75 3 +3.75 3.75 3 +4 3.75 3 +3 4 3 +3.25 4 3 +3.5 4 3 +3.75 4 3 +4 4 3 +3 3 3.25 +3.25 3 3.25 +3.5 3 3.25 +3.75 3 3.25 +4 3 3.25 +3 3.25 3.25 +3.25 3.25 3.25 +3.5 3.25 3.25 +3.75 3.25 3.25 +4 3.25 3.25 +3 3.5 3.25 +3.25 3.5 3.25 +3.5 3.5 3.25 +3.75 3.5 3.25 +4 3.5 3.25 +3 3.75 3.25 +3.25 3.75 3.25 +3.5 3.75 3.25 +3.75 3.75 3.25 +4 3.75 3.25 +3 4 3.25 +3.25 4 3.25 +3.5 4 3.25 +3.75 4 3.25 +4 4 3.25 +3 3 3.5 +3.25 3 3.5 +3.5 3 3.5 +3.75 3 3.5 +4 3 3.5 +3 3.25 3.5 +3.25 3.25 3.5 +3.5 3.25 3.5 +3.75 3.25 3.5 +4 3.25 3.5 +3 3.5 3.5 +3.25 3.5 3.5 +3.5 3.5 3.5 +3.75 3.5 3.5 +4 3.5 3.5 +3 3.75 3.5 +3.25 3.75 3.5 +3.5 3.75 3.5 +3.75 3.75 3.5 +4 3.75 3.5 +3 4 3.5 +3.25 4 3.5 +3.5 4 3.5 +3.75 4 3.5 +4 4 3.5 +3 3 3.75 +3.25 3 3.75 +3.5 3 3.75 +3.75 3 3.75 +4 3 3.75 +3 3.25 3.75 +3.25 3.25 3.75 +3.5 3.25 3.75 +3.75 3.25 3.75 +4 3.25 3.75 +3 3.5 3.75 +3.25 3.5 3.75 +3.5 3.5 3.75 +3.75 3.5 3.75 +4 3.5 3.75 +3 3.75 3.75 +3.25 3.75 3.75 +3.5 3.75 3.75 +3.75 3.75 3.75 +4 3.75 3.75 +3 4 3.75 +3.25 4 3.75 +3.5 4 3.75 +3.75 4 3.75 +4 4 3.75 +3 3 4 +3.25 3 4 +3.5 3 4 +3.75 3 4 +4 3 4 +3 3.25 4 +3.25 3.25 4 +3.5 3.25 4 +3.75 3.25 4 +4 3.25 4 +3 3.5 4 +3.25 3.5 4 +3.5 3.5 4 +3.75 3.5 4 +4 3.5 4 +3 3.75 4 +3.25 3.75 4 +3.5 3.75 4 +3.75 3.75 4 +4 3.75 4 +3 4 4 +3.25 4 4 +3.5 4 4 +3.75 4 4 +4 4 4 + +CELLS 100 900 +8 0 1 3 2 4 5 7 6 +8 8 9 12 11 17 18 21 20 +8 9 10 13 12 18 19 22 21 +8 11 12 15 14 20 21 24 23 +8 12 13 16 15 21 22 25 24 +8 17 18 21 20 26 27 30 29 +8 18 19 22 21 27 28 31 30 +8 20 21 24 23 29 30 33 32 +8 21 22 25 24 30 31 34 33 +8 35 36 40 39 51 52 56 55 +8 36 37 41 40 52 53 57 56 +8 37 38 42 41 53 54 58 57 +8 39 40 44 43 55 56 60 59 +8 40 41 45 44 56 57 61 60 +8 41 42 46 45 57 58 62 61 +8 43 44 48 47 59 60 64 63 +8 44 45 49 48 60 61 65 64 +8 45 46 50 49 61 62 66 65 +8 51 52 56 55 67 68 72 71 +8 52 53 57 56 68 69 73 72 +8 53 54 58 57 69 70 74 73 +8 55 56 60 59 71 72 76 75 +8 56 57 61 60 72 73 77 76 +8 57 58 62 61 73 74 78 77 +8 59 60 64 63 75 76 80 79 +8 60 61 65 64 76 77 81 80 +8 61 62 66 65 77 78 82 81 +8 67 68 72 71 83 84 88 87 +8 68 69 73 72 84 85 89 88 +8 69 70 74 73 85 86 90 89 +8 71 72 76 75 87 88 92 91 +8 72 73 77 76 88 89 93 92 +8 73 74 78 77 89 90 94 93 +8 75 76 80 79 91 92 96 95 +8 76 77 81 80 92 93 97 96 +8 77 78 82 81 93 94 98 97 +8 99 100 105 104 124 125 130 129 +8 100 101 106 105 125 126 131 130 +8 101 102 107 106 126 127 132 131 +8 102 103 108 107 127 128 133 132 +8 104 105 110 109 129 130 135 134 +8 105 106 111 110 130 131 136 135 +8 106 107 112 111 131 132 137 136 +8 107 108 113 112 132 133 138 137 +8 109 110 115 114 134 135 140 139 +8 110 111 116 115 135 136 141 140 +8 111 112 117 116 136 137 142 141 +8 112 113 118 117 137 138 143 142 +8 114 115 120 119 139 140 145 144 +8 115 116 121 120 140 141 146 145 +8 116 117 122 121 141 142 147 146 +8 117 118 123 122 142 143 148 147 +8 124 125 130 129 149 150 155 154 +8 125 126 131 130 150 151 156 155 +8 126 127 132 131 151 152 157 156 +8 127 128 133 132 152 153 158 157 +8 129 130 135 134 154 155 160 159 +8 130 131 136 135 155 156 161 160 +8 131 132 137 136 156 157 162 161 +8 132 133 138 137 157 158 163 162 +8 134 135 140 139 159 160 165 164 +8 135 136 141 140 160 161 166 165 +8 136 137 142 141 161 162 167 166 +8 137 138 143 142 162 163 168 167 +8 139 140 145 144 164 165 170 169 +8 140 141 146 145 165 166 171 170 +8 141 142 147 146 166 167 172 171 +8 142 143 148 147 167 168 173 172 +8 149 150 155 154 174 175 180 179 +8 150 151 156 155 175 176 181 180 +8 151 152 157 156 176 177 182 181 +8 152 153 158 157 177 178 183 182 +8 154 155 160 159 179 180 185 184 +8 155 156 161 160 180 181 186 185 +8 156 157 162 161 181 182 187 186 +8 157 158 163 162 182 183 188 187 +8 159 160 165 164 184 185 190 189 +8 160 161 166 165 185 186 191 190 +8 161 162 167 166 186 187 192 191 +8 162 163 168 167 187 188 193 192 +8 164 165 170 169 189 190 195 194 +8 165 166 171 170 190 191 196 195 +8 166 167 172 171 191 192 197 196 +8 167 168 173 172 192 193 198 197 +8 174 175 180 179 199 200 205 204 +8 175 176 181 180 200 201 206 205 +8 176 177 182 181 201 202 207 206 +8 177 178 183 182 202 203 208 207 +8 179 180 185 184 204 205 210 209 +8 180 181 186 185 205 206 211 210 +8 181 182 187 186 206 207 212 211 +8 182 183 188 187 207 208 213 212 +8 184 185 190 189 209 210 215 214 +8 185 186 191 190 210 211 216 215 +8 186 187 192 191 211 212 217 216 +8 187 188 193 192 212 213 218 217 +8 189 190 195 194 214 215 220 219 +8 190 191 196 195 215 216 221 220 +8 191 192 197 196 216 217 222 221 +8 192 193 198 197 217 218 223 222 + +CELL_TYPES 100 + 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +POINT_DATA 224 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 diff --git a/tests/base/data_out_base_vtk_time.cc b/tests/base/data_out_base_vtk_time.cc new file mode 100644 index 0000000000..7f42523a59 --- /dev/null +++ b/tests/base/data_out_base_vtk_time.cc @@ -0,0 +1,94 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtk, but output time as well + + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtk(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + + if (true) + { + sprintf(name, "data_out_base_vtk_time/%d%d.vtk", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtk_time/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtk_time/cmp/generic b/tests/base/data_out_base_vtk_time/cmp/generic new file mode 100644 index 0000000000..671d824dd6 --- /dev/null +++ b/tests/base/data_out_base_vtk_time/cmp/generic @@ -0,0 +1,705 @@ +============================== +data_out_base_vtk_time/11.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +TIME 1 1 double +3.14159 +POINTS 14 double +0 0 0 +1 0 0 +1 0 0 +1.5 0 0 +2 0 0 +2 0 0 +2.33333 0 0 +2.66667 0 0 +3 0 0 +3 0 0 +3.25 0 0 +3.5 0 0 +3.75 0 0 +4 0 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_time/12.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +TIME 1 1 double +3.14159 +POINTS 14 double +0 0 0 +1 1 0 +1 1 0 +1.5 1.5 0 +2 2 0 +2 2 0 +2.33333 2.33333 0 +2.66667 2.66667 0 +3 3 0 +3 3 0 +3.25 3.25 0 +3.5 3.5 0 +3.75 3.75 0 +4 4 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_time/22.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +TIME 1 1 double +3.14159 +POINTS 54 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +1 1 0 +1.5 1 0 +2 1 0 +1 1.5 0 +1.5 1.5 0 +2 1.5 0 +1 2 0 +1.5 2 0 +2 2 0 +2 2 0 +2.33333 2 0 +2.66667 2 0 +3 2 0 +2 2.33333 0 +2.33333 2.33333 0 +2.66667 2.33333 0 +3 2.33333 0 +2 2.66667 0 +2.33333 2.66667 0 +2.66667 2.66667 0 +3 2.66667 0 +2 3 0 +2.33333 3 0 +2.66667 3 0 +3 3 0 +3 3 0 +3.25 3 0 +3.5 3 0 +3.75 3 0 +4 3 0 +3 3.25 0 +3.25 3.25 0 +3.5 3.25 0 +3.75 3.25 0 +4 3.25 0 +3 3.5 0 +3.25 3.5 0 +3.5 3.5 0 +3.75 3.5 0 +4 3.5 0 +3 3.75 0 +3.25 3.75 0 +3.5 3.75 0 +3.75 3.75 0 +4 3.75 0 +3 4 0 +3.25 4 0 +3.5 4 0 +3.75 4 0 +4 4 0 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_time/23.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +TIME 1 1 double +3.14159 +POINTS 54 double +0 0 0 +1 0 1 +0 1 2 +1 1 3 +1 1 1 +1.5 1 1.5 +2 1 2 +1 1.5 2 +1.5 1.5 2.5 +2 1.5 3 +1 2 3 +1.5 2 3.5 +2 2 4 +2 2 2 +2.33333 2 2.33333 +2.66667 2 2.66667 +3 2 3 +2 2.33333 2.66667 +2.33333 2.33333 3 +2.66667 2.33333 3.33333 +3 2.33333 3.66667 +2 2.66667 3.33333 +2.33333 2.66667 3.66667 +2.66667 2.66667 4 +3 2.66667 4.33333 +2 3 4 +2.33333 3 4.33333 +2.66667 3 4.66667 +3 3 5 +3 3 3 +3.25 3 3.25 +3.5 3 3.5 +3.75 3 3.75 +4 3 4 +3 3.25 3.5 +3.25 3.25 3.75 +3.5 3.25 4 +3.75 3.25 4.25 +4 3.25 4.5 +3 3.5 4 +3.25 3.5 4.25 +3.5 3.5 4.5 +3.75 3.5 4.75 +4 3.5 5 +3 3.75 4.5 +3.25 3.75 4.75 +3.5 3.75 5 +3.75 3.75 5.25 +4 3.75 5.5 +3 4 5 +3.25 4 5.25 +3.5 4 5.5 +3.75 4 5.75 +4 4 6 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_time/33.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 1 +TIME 1 1 double +3.14159 +POINTS 224 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +0 0 1 +1 0 1 +0 1 1 +1 1 1 +1 1 1 +1.5 1 1 +2 1 1 +1 1.5 1 +1.5 1.5 1 +2 1.5 1 +1 2 1 +1.5 2 1 +2 2 1 +1 1 1.5 +1.5 1 1.5 +2 1 1.5 +1 1.5 1.5 +1.5 1.5 1.5 +2 1.5 1.5 +1 2 1.5 +1.5 2 1.5 +2 2 1.5 +1 1 2 +1.5 1 2 +2 1 2 +1 1.5 2 +1.5 1.5 2 +2 1.5 2 +1 2 2 +1.5 2 2 +2 2 2 +2 2 2 +2.33333 2 2 +2.66667 2 2 +3 2 2 +2 2.33333 2 +2.33333 2.33333 2 +2.66667 2.33333 2 +3 2.33333 2 +2 2.66667 2 +2.33333 2.66667 2 +2.66667 2.66667 2 +3 2.66667 2 +2 3 2 +2.33333 3 2 +2.66667 3 2 +3 3 2 +2 2 2.33333 +2.33333 2 2.33333 +2.66667 2 2.33333 +3 2 2.33333 +2 2.33333 2.33333 +2.33333 2.33333 2.33333 +2.66667 2.33333 2.33333 +3 2.33333 2.33333 +2 2.66667 2.33333 +2.33333 2.66667 2.33333 +2.66667 2.66667 2.33333 +3 2.66667 2.33333 +2 3 2.33333 +2.33333 3 2.33333 +2.66667 3 2.33333 +3 3 2.33333 +2 2 2.66667 +2.33333 2 2.66667 +2.66667 2 2.66667 +3 2 2.66667 +2 2.33333 2.66667 +2.33333 2.33333 2.66667 +2.66667 2.33333 2.66667 +3 2.33333 2.66667 +2 2.66667 2.66667 +2.33333 2.66667 2.66667 +2.66667 2.66667 2.66667 +3 2.66667 2.66667 +2 3 2.66667 +2.33333 3 2.66667 +2.66667 3 2.66667 +3 3 2.66667 +2 2 3 +2.33333 2 3 +2.66667 2 3 +3 2 3 +2 2.33333 3 +2.33333 2.33333 3 +2.66667 2.33333 3 +3 2.33333 3 +2 2.66667 3 +2.33333 2.66667 3 +2.66667 2.66667 3 +3 2.66667 3 +2 3 3 +2.33333 3 3 +2.66667 3 3 +3 3 3 +3 3 3 +3.25 3 3 +3.5 3 3 +3.75 3 3 +4 3 3 +3 3.25 3 +3.25 3.25 3 +3.5 3.25 3 +3.75 3.25 3 +4 3.25 3 +3 3.5 3 +3.25 3.5 3 +3.5 3.5 3 +3.75 3.5 3 +4 3.5 3 +3 3.75 3 +3.25 3.75 3 +3.5 3.75 3 +3.75 3.75 3 +4 3.75 3 +3 4 3 +3.25 4 3 +3.5 4 3 +3.75 4 3 +4 4 3 +3 3 3.25 +3.25 3 3.25 +3.5 3 3.25 +3.75 3 3.25 +4 3 3.25 +3 3.25 3.25 +3.25 3.25 3.25 +3.5 3.25 3.25 +3.75 3.25 3.25 +4 3.25 3.25 +3 3.5 3.25 +3.25 3.5 3.25 +3.5 3.5 3.25 +3.75 3.5 3.25 +4 3.5 3.25 +3 3.75 3.25 +3.25 3.75 3.25 +3.5 3.75 3.25 +3.75 3.75 3.25 +4 3.75 3.25 +3 4 3.25 +3.25 4 3.25 +3.5 4 3.25 +3.75 4 3.25 +4 4 3.25 +3 3 3.5 +3.25 3 3.5 +3.5 3 3.5 +3.75 3 3.5 +4 3 3.5 +3 3.25 3.5 +3.25 3.25 3.5 +3.5 3.25 3.5 +3.75 3.25 3.5 +4 3.25 3.5 +3 3.5 3.5 +3.25 3.5 3.5 +3.5 3.5 3.5 +3.75 3.5 3.5 +4 3.5 3.5 +3 3.75 3.5 +3.25 3.75 3.5 +3.5 3.75 3.5 +3.75 3.75 3.5 +4 3.75 3.5 +3 4 3.5 +3.25 4 3.5 +3.5 4 3.5 +3.75 4 3.5 +4 4 3.5 +3 3 3.75 +3.25 3 3.75 +3.5 3 3.75 +3.75 3 3.75 +4 3 3.75 +3 3.25 3.75 +3.25 3.25 3.75 +3.5 3.25 3.75 +3.75 3.25 3.75 +4 3.25 3.75 +3 3.5 3.75 +3.25 3.5 3.75 +3.5 3.5 3.75 +3.75 3.5 3.75 +4 3.5 3.75 +3 3.75 3.75 +3.25 3.75 3.75 +3.5 3.75 3.75 +3.75 3.75 3.75 +4 3.75 3.75 +3 4 3.75 +3.25 4 3.75 +3.5 4 3.75 +3.75 4 3.75 +4 4 3.75 +3 3 4 +3.25 3 4 +3.5 3 4 +3.75 3 4 +4 3 4 +3 3.25 4 +3.25 3.25 4 +3.5 3.25 4 +3.75 3.25 4 +4 3.25 4 +3 3.5 4 +3.25 3.5 4 +3.5 3.5 4 +3.75 3.5 4 +4 3.5 4 +3 3.75 4 +3.25 3.75 4 +3.5 3.75 4 +3.75 3.75 4 +4 3.75 4 +3 4 4 +3.25 4 4 +3.5 4 4 +3.75 4 4 +4 4 4 + +CELLS 100 900 +8 0 1 3 2 4 5 7 6 +8 8 9 12 11 17 18 21 20 +8 9 10 13 12 18 19 22 21 +8 11 12 15 14 20 21 24 23 +8 12 13 16 15 21 22 25 24 +8 17 18 21 20 26 27 30 29 +8 18 19 22 21 27 28 31 30 +8 20 21 24 23 29 30 33 32 +8 21 22 25 24 30 31 34 33 +8 35 36 40 39 51 52 56 55 +8 36 37 41 40 52 53 57 56 +8 37 38 42 41 53 54 58 57 +8 39 40 44 43 55 56 60 59 +8 40 41 45 44 56 57 61 60 +8 41 42 46 45 57 58 62 61 +8 43 44 48 47 59 60 64 63 +8 44 45 49 48 60 61 65 64 +8 45 46 50 49 61 62 66 65 +8 51 52 56 55 67 68 72 71 +8 52 53 57 56 68 69 73 72 +8 53 54 58 57 69 70 74 73 +8 55 56 60 59 71 72 76 75 +8 56 57 61 60 72 73 77 76 +8 57 58 62 61 73 74 78 77 +8 59 60 64 63 75 76 80 79 +8 60 61 65 64 76 77 81 80 +8 61 62 66 65 77 78 82 81 +8 67 68 72 71 83 84 88 87 +8 68 69 73 72 84 85 89 88 +8 69 70 74 73 85 86 90 89 +8 71 72 76 75 87 88 92 91 +8 72 73 77 76 88 89 93 92 +8 73 74 78 77 89 90 94 93 +8 75 76 80 79 91 92 96 95 +8 76 77 81 80 92 93 97 96 +8 77 78 82 81 93 94 98 97 +8 99 100 105 104 124 125 130 129 +8 100 101 106 105 125 126 131 130 +8 101 102 107 106 126 127 132 131 +8 102 103 108 107 127 128 133 132 +8 104 105 110 109 129 130 135 134 +8 105 106 111 110 130 131 136 135 +8 106 107 112 111 131 132 137 136 +8 107 108 113 112 132 133 138 137 +8 109 110 115 114 134 135 140 139 +8 110 111 116 115 135 136 141 140 +8 111 112 117 116 136 137 142 141 +8 112 113 118 117 137 138 143 142 +8 114 115 120 119 139 140 145 144 +8 115 116 121 120 140 141 146 145 +8 116 117 122 121 141 142 147 146 +8 117 118 123 122 142 143 148 147 +8 124 125 130 129 149 150 155 154 +8 125 126 131 130 150 151 156 155 +8 126 127 132 131 151 152 157 156 +8 127 128 133 132 152 153 158 157 +8 129 130 135 134 154 155 160 159 +8 130 131 136 135 155 156 161 160 +8 131 132 137 136 156 157 162 161 +8 132 133 138 137 157 158 163 162 +8 134 135 140 139 159 160 165 164 +8 135 136 141 140 160 161 166 165 +8 136 137 142 141 161 162 167 166 +8 137 138 143 142 162 163 168 167 +8 139 140 145 144 164 165 170 169 +8 140 141 146 145 165 166 171 170 +8 141 142 147 146 166 167 172 171 +8 142 143 148 147 167 168 173 172 +8 149 150 155 154 174 175 180 179 +8 150 151 156 155 175 176 181 180 +8 151 152 157 156 176 177 182 181 +8 152 153 158 157 177 178 183 182 +8 154 155 160 159 179 180 185 184 +8 155 156 161 160 180 181 186 185 +8 156 157 162 161 181 182 187 186 +8 157 158 163 162 182 183 188 187 +8 159 160 165 164 184 185 190 189 +8 160 161 166 165 185 186 191 190 +8 161 162 167 166 186 187 192 191 +8 162 163 168 167 187 188 193 192 +8 164 165 170 169 189 190 195 194 +8 165 166 171 170 190 191 196 195 +8 166 167 172 171 191 192 197 196 +8 167 168 173 172 192 193 198 197 +8 174 175 180 179 199 200 205 204 +8 175 176 181 180 200 201 206 205 +8 176 177 182 181 201 202 207 206 +8 177 178 183 182 202 203 208 207 +8 179 180 185 184 204 205 210 209 +8 180 181 186 185 205 206 211 210 +8 181 182 187 186 206 207 212 211 +8 182 183 188 187 207 208 213 212 +8 184 185 190 189 209 210 215 214 +8 185 186 191 190 210 211 216 215 +8 186 187 192 191 211 212 217 216 +8 187 188 193 192 212 213 218 217 +8 189 190 195 194 214 215 220 219 +8 190 191 196 195 215 216 221 220 +8 191 192 197 196 216 217 222 221 +8 192 193 198 197 217 218 223 222 + +CELL_TYPES 100 + 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +POINT_DATA 224 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 diff --git a/tests/base/data_out_base_vtk_time_and_cycle.cc b/tests/base/data_out_base_vtk_time_and_cycle.cc new file mode 100644 index 0000000000..7a9f0fbba1 --- /dev/null +++ b/tests/base/data_out_base_vtk_time_and_cycle.cc @@ -0,0 +1,95 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtk, but output time and cycle as well + + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtk(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + flags.cycle = 42; + + if (true) + { + sprintf(name, "data_out_base_vtk_time_and_cycle/%d%d.vtk", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtk_time_and_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtk_time_and_cycle/cmp/generic b/tests/base/data_out_base_vtk_time_and_cycle/cmp/generic new file mode 100644 index 0000000000..9e84e47283 --- /dev/null +++ b/tests/base/data_out_base_vtk_time_and_cycle/cmp/generic @@ -0,0 +1,715 @@ +============================== +data_out_base_vtk_time_and_cycle/11.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 2 +CYCLE 1 1 int +42 +TIME 1 1 double +3.14159 +POINTS 14 double +0 0 0 +1 0 0 +1 0 0 +1.5 0 0 +2 0 0 +2 0 0 +2.33333 0 0 +2.66667 0 0 +3 0 0 +3 0 0 +3.25 0 0 +3.5 0 0 +3.75 0 0 +4 0 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_time_and_cycle/12.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 2 +CYCLE 1 1 int +42 +TIME 1 1 double +3.14159 +POINTS 14 double +0 0 0 +1 1 0 +1 1 0 +1.5 1.5 0 +2 2 0 +2 2 0 +2.33333 2.33333 0 +2.66667 2.66667 0 +3 3 0 +3 3 0 +3.25 3.25 0 +3.5 3.5 0 +3.75 3.75 0 +4 4 0 + +CELLS 10 30 +2 0 1 +2 2 3 +2 3 4 +2 5 6 +2 6 7 +2 7 8 +2 9 10 +2 10 11 +2 11 12 +2 12 13 + +CELL_TYPES 10 + 3 3 3 3 3 3 3 3 3 3 +POINT_DATA 14 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 1 1.5 2 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 1 1 1 2 2 2 2 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 0 1 2 0 1 2 3 0 1 2 3 4 +============================== +data_out_base_vtk_time_and_cycle/22.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 2 +CYCLE 1 1 int +42 +TIME 1 1 double +3.14159 +POINTS 54 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +1 1 0 +1.5 1 0 +2 1 0 +1 1.5 0 +1.5 1.5 0 +2 1.5 0 +1 2 0 +1.5 2 0 +2 2 0 +2 2 0 +2.33333 2 0 +2.66667 2 0 +3 2 0 +2 2.33333 0 +2.33333 2.33333 0 +2.66667 2.33333 0 +3 2.33333 0 +2 2.66667 0 +2.33333 2.66667 0 +2.66667 2.66667 0 +3 2.66667 0 +2 3 0 +2.33333 3 0 +2.66667 3 0 +3 3 0 +3 3 0 +3.25 3 0 +3.5 3 0 +3.75 3 0 +4 3 0 +3 3.25 0 +3.25 3.25 0 +3.5 3.25 0 +3.75 3.25 0 +4 3.25 0 +3 3.5 0 +3.25 3.5 0 +3.5 3.5 0 +3.75 3.5 0 +4 3.5 0 +3 3.75 0 +3.25 3.75 0 +3.5 3.75 0 +3.75 3.75 0 +4 3.75 0 +3 4 0 +3.25 4 0 +3.5 4 0 +3.75 4 0 +4 4 0 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_time_and_cycle/23.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 2 +CYCLE 1 1 int +42 +TIME 1 1 double +3.14159 +POINTS 54 double +0 0 0 +1 0 1 +0 1 2 +1 1 3 +1 1 1 +1.5 1 1.5 +2 1 2 +1 1.5 2 +1.5 1.5 2.5 +2 1.5 3 +1 2 3 +1.5 2 3.5 +2 2 4 +2 2 2 +2.33333 2 2.33333 +2.66667 2 2.66667 +3 2 3 +2 2.33333 2.66667 +2.33333 2.33333 3 +2.66667 2.33333 3.33333 +3 2.33333 3.66667 +2 2.66667 3.33333 +2.33333 2.66667 3.66667 +2.66667 2.66667 4 +3 2.66667 4.33333 +2 3 4 +2.33333 3 4.33333 +2.66667 3 4.66667 +3 3 5 +3 3 3 +3.25 3 3.25 +3.5 3 3.5 +3.75 3 3.75 +4 3 4 +3 3.25 3.5 +3.25 3.25 3.75 +3.5 3.25 4 +3.75 3.25 4.25 +4 3.25 4.5 +3 3.5 4 +3.25 3.5 4.25 +3.5 3.5 4.5 +3.75 3.5 4.75 +4 3.5 5 +3 3.75 4.5 +3.25 3.75 4.75 +3.5 3.75 5 +3.75 3.75 5.25 +4 3.75 5.5 +3 4 5 +3.25 4 5.25 +3.5 4 5.5 +3.75 4 5.75 +4 4 6 + +CELLS 30 150 +4 0 1 3 2 +4 4 5 8 7 +4 5 6 9 8 +4 7 8 11 10 +4 8 9 12 11 +4 13 14 18 17 +4 14 15 19 18 +4 15 16 20 19 +4 17 18 22 21 +4 18 19 23 22 +4 19 20 24 23 +4 21 22 26 25 +4 22 23 27 26 +4 23 24 28 27 +4 29 30 35 34 +4 30 31 36 35 +4 31 32 37 36 +4 32 33 38 37 +4 34 35 40 39 +4 35 36 41 40 +4 36 37 42 41 +4 37 38 43 42 +4 39 40 45 44 +4 40 41 46 45 +4 41 42 47 46 +4 42 43 48 47 +4 44 45 50 49 +4 45 46 51 50 +4 46 47 52 51 +4 47 48 53 52 + +CELL_TYPES 30 + 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 +POINT_DATA 54 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 +============================== +data_out_base_vtk_time_and_cycle/33.vtk +============================== +# vtk DataFile Version 3.0 +#This file was generated +ASCII +DATASET UNSTRUCTURED_GRID + +FIELD FieldData 2 +CYCLE 1 1 int +42 +TIME 1 1 double +3.14159 +POINTS 224 double +0 0 0 +1 0 0 +0 1 0 +1 1 0 +0 0 1 +1 0 1 +0 1 1 +1 1 1 +1 1 1 +1.5 1 1 +2 1 1 +1 1.5 1 +1.5 1.5 1 +2 1.5 1 +1 2 1 +1.5 2 1 +2 2 1 +1 1 1.5 +1.5 1 1.5 +2 1 1.5 +1 1.5 1.5 +1.5 1.5 1.5 +2 1.5 1.5 +1 2 1.5 +1.5 2 1.5 +2 2 1.5 +1 1 2 +1.5 1 2 +2 1 2 +1 1.5 2 +1.5 1.5 2 +2 1.5 2 +1 2 2 +1.5 2 2 +2 2 2 +2 2 2 +2.33333 2 2 +2.66667 2 2 +3 2 2 +2 2.33333 2 +2.33333 2.33333 2 +2.66667 2.33333 2 +3 2.33333 2 +2 2.66667 2 +2.33333 2.66667 2 +2.66667 2.66667 2 +3 2.66667 2 +2 3 2 +2.33333 3 2 +2.66667 3 2 +3 3 2 +2 2 2.33333 +2.33333 2 2.33333 +2.66667 2 2.33333 +3 2 2.33333 +2 2.33333 2.33333 +2.33333 2.33333 2.33333 +2.66667 2.33333 2.33333 +3 2.33333 2.33333 +2 2.66667 2.33333 +2.33333 2.66667 2.33333 +2.66667 2.66667 2.33333 +3 2.66667 2.33333 +2 3 2.33333 +2.33333 3 2.33333 +2.66667 3 2.33333 +3 3 2.33333 +2 2 2.66667 +2.33333 2 2.66667 +2.66667 2 2.66667 +3 2 2.66667 +2 2.33333 2.66667 +2.33333 2.33333 2.66667 +2.66667 2.33333 2.66667 +3 2.33333 2.66667 +2 2.66667 2.66667 +2.33333 2.66667 2.66667 +2.66667 2.66667 2.66667 +3 2.66667 2.66667 +2 3 2.66667 +2.33333 3 2.66667 +2.66667 3 2.66667 +3 3 2.66667 +2 2 3 +2.33333 2 3 +2.66667 2 3 +3 2 3 +2 2.33333 3 +2.33333 2.33333 3 +2.66667 2.33333 3 +3 2.33333 3 +2 2.66667 3 +2.33333 2.66667 3 +2.66667 2.66667 3 +3 2.66667 3 +2 3 3 +2.33333 3 3 +2.66667 3 3 +3 3 3 +3 3 3 +3.25 3 3 +3.5 3 3 +3.75 3 3 +4 3 3 +3 3.25 3 +3.25 3.25 3 +3.5 3.25 3 +3.75 3.25 3 +4 3.25 3 +3 3.5 3 +3.25 3.5 3 +3.5 3.5 3 +3.75 3.5 3 +4 3.5 3 +3 3.75 3 +3.25 3.75 3 +3.5 3.75 3 +3.75 3.75 3 +4 3.75 3 +3 4 3 +3.25 4 3 +3.5 4 3 +3.75 4 3 +4 4 3 +3 3 3.25 +3.25 3 3.25 +3.5 3 3.25 +3.75 3 3.25 +4 3 3.25 +3 3.25 3.25 +3.25 3.25 3.25 +3.5 3.25 3.25 +3.75 3.25 3.25 +4 3.25 3.25 +3 3.5 3.25 +3.25 3.5 3.25 +3.5 3.5 3.25 +3.75 3.5 3.25 +4 3.5 3.25 +3 3.75 3.25 +3.25 3.75 3.25 +3.5 3.75 3.25 +3.75 3.75 3.25 +4 3.75 3.25 +3 4 3.25 +3.25 4 3.25 +3.5 4 3.25 +3.75 4 3.25 +4 4 3.25 +3 3 3.5 +3.25 3 3.5 +3.5 3 3.5 +3.75 3 3.5 +4 3 3.5 +3 3.25 3.5 +3.25 3.25 3.5 +3.5 3.25 3.5 +3.75 3.25 3.5 +4 3.25 3.5 +3 3.5 3.5 +3.25 3.5 3.5 +3.5 3.5 3.5 +3.75 3.5 3.5 +4 3.5 3.5 +3 3.75 3.5 +3.25 3.75 3.5 +3.5 3.75 3.5 +3.75 3.75 3.5 +4 3.75 3.5 +3 4 3.5 +3.25 4 3.5 +3.5 4 3.5 +3.75 4 3.5 +4 4 3.5 +3 3 3.75 +3.25 3 3.75 +3.5 3 3.75 +3.75 3 3.75 +4 3 3.75 +3 3.25 3.75 +3.25 3.25 3.75 +3.5 3.25 3.75 +3.75 3.25 3.75 +4 3.25 3.75 +3 3.5 3.75 +3.25 3.5 3.75 +3.5 3.5 3.75 +3.75 3.5 3.75 +4 3.5 3.75 +3 3.75 3.75 +3.25 3.75 3.75 +3.5 3.75 3.75 +3.75 3.75 3.75 +4 3.75 3.75 +3 4 3.75 +3.25 4 3.75 +3.5 4 3.75 +3.75 4 3.75 +4 4 3.75 +3 3 4 +3.25 3 4 +3.5 3 4 +3.75 3 4 +4 3 4 +3 3.25 4 +3.25 3.25 4 +3.5 3.25 4 +3.75 3.25 4 +4 3.25 4 +3 3.5 4 +3.25 3.5 4 +3.5 3.5 4 +3.75 3.5 4 +4 3.5 4 +3 3.75 4 +3.25 3.75 4 +3.5 3.75 4 +3.75 3.75 4 +4 3.75 4 +3 4 4 +3.25 4 4 +3.5 4 4 +3.75 4 4 +4 4 4 + +CELLS 100 900 +8 0 1 3 2 4 5 7 6 +8 8 9 12 11 17 18 21 20 +8 9 10 13 12 18 19 22 21 +8 11 12 15 14 20 21 24 23 +8 12 13 16 15 21 22 25 24 +8 17 18 21 20 26 27 30 29 +8 18 19 22 21 27 28 31 30 +8 20 21 24 23 29 30 33 32 +8 21 22 25 24 30 31 34 33 +8 35 36 40 39 51 52 56 55 +8 36 37 41 40 52 53 57 56 +8 37 38 42 41 53 54 58 57 +8 39 40 44 43 55 56 60 59 +8 40 41 45 44 56 57 61 60 +8 41 42 46 45 57 58 62 61 +8 43 44 48 47 59 60 64 63 +8 44 45 49 48 60 61 65 64 +8 45 46 50 49 61 62 66 65 +8 51 52 56 55 67 68 72 71 +8 52 53 57 56 68 69 73 72 +8 53 54 58 57 69 70 74 73 +8 55 56 60 59 71 72 76 75 +8 56 57 61 60 72 73 77 76 +8 57 58 62 61 73 74 78 77 +8 59 60 64 63 75 76 80 79 +8 60 61 65 64 76 77 81 80 +8 61 62 66 65 77 78 82 81 +8 67 68 72 71 83 84 88 87 +8 68 69 73 72 84 85 89 88 +8 69 70 74 73 85 86 90 89 +8 71 72 76 75 87 88 92 91 +8 72 73 77 76 88 89 93 92 +8 73 74 78 77 89 90 94 93 +8 75 76 80 79 91 92 96 95 +8 76 77 81 80 92 93 97 96 +8 77 78 82 81 93 94 98 97 +8 99 100 105 104 124 125 130 129 +8 100 101 106 105 125 126 131 130 +8 101 102 107 106 126 127 132 131 +8 102 103 108 107 127 128 133 132 +8 104 105 110 109 129 130 135 134 +8 105 106 111 110 130 131 136 135 +8 106 107 112 111 131 132 137 136 +8 107 108 113 112 132 133 138 137 +8 109 110 115 114 134 135 140 139 +8 110 111 116 115 135 136 141 140 +8 111 112 117 116 136 137 142 141 +8 112 113 118 117 137 138 143 142 +8 114 115 120 119 139 140 145 144 +8 115 116 121 120 140 141 146 145 +8 116 117 122 121 141 142 147 146 +8 117 118 123 122 142 143 148 147 +8 124 125 130 129 149 150 155 154 +8 125 126 131 130 150 151 156 155 +8 126 127 132 131 151 152 157 156 +8 127 128 133 132 152 153 158 157 +8 129 130 135 134 154 155 160 159 +8 130 131 136 135 155 156 161 160 +8 131 132 137 136 156 157 162 161 +8 132 133 138 137 157 158 163 162 +8 134 135 140 139 159 160 165 164 +8 135 136 141 140 160 161 166 165 +8 136 137 142 141 161 162 167 166 +8 137 138 143 142 162 163 168 167 +8 139 140 145 144 164 165 170 169 +8 140 141 146 145 165 166 171 170 +8 141 142 147 146 166 167 172 171 +8 142 143 148 147 167 168 173 172 +8 149 150 155 154 174 175 180 179 +8 150 151 156 155 175 176 181 180 +8 151 152 157 156 176 177 182 181 +8 152 153 158 157 177 178 183 182 +8 154 155 160 159 179 180 185 184 +8 155 156 161 160 180 181 186 185 +8 156 157 162 161 181 182 187 186 +8 157 158 163 162 182 183 188 187 +8 159 160 165 164 184 185 190 189 +8 160 161 166 165 185 186 191 190 +8 161 162 167 166 186 187 192 191 +8 162 163 168 167 187 188 193 192 +8 164 165 170 169 189 190 195 194 +8 165 166 171 170 190 191 196 195 +8 166 167 172 171 191 192 197 196 +8 167 168 173 172 192 193 198 197 +8 174 175 180 179 199 200 205 204 +8 175 176 181 180 200 201 206 205 +8 176 177 182 181 201 202 207 206 +8 177 178 183 182 202 203 208 207 +8 179 180 185 184 204 205 210 209 +8 180 181 186 185 205 206 211 210 +8 181 182 187 186 206 207 212 211 +8 182 183 188 187 207 208 213 212 +8 184 185 190 189 209 210 215 214 +8 185 186 191 190 210 211 216 215 +8 186 187 192 191 211 212 217 216 +8 187 188 193 192 212 213 218 217 +8 189 190 195 194 214 215 220 219 +8 190 191 196 195 215 216 221 220 +8 191 192 197 196 216 217 222 221 +8 192 193 198 197 217 218 223 222 + +CELL_TYPES 100 + 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 12 +POINT_DATA 224 +SCALARS x1 double 1 +LOOKUP_TABLE default +0 1 0 1 0 1 0 1 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 1 1.5 2 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 2 2.33333 2.66667 3 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 3 3.25 3.5 3.75 4 +SCALARS x2 double 1 +LOOKUP_TABLE default +0 0 1 1 0 0 1 1 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 +SCALARS x3 double 1 +LOOKUP_TABLE default +0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 1.5 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.33333 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 2.66667 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.25 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.5 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 3.75 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 +SCALARS x4 double 1 +LOOKUP_TABLE default +0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 +SCALARS i double 1 +LOOKUP_TABLE default +0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 diff --git a/tests/base/data_out_base_vtu.cc b/tests/base/data_out_base_vtu.cc index c92ec831fc..030df7bb9f 100644 --- a/tests/base/data_out_base_vtu.cc +++ b/tests/base/data_out_base_vtu.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2007, 2010 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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -31,7 +35,7 @@ template void check(DataOutBase::VtkFlags flags, - std::ostream& out) + std::ostream &out) { const unsigned int np = 4; @@ -51,25 +55,26 @@ void check(DataOutBase::VtkFlags flags, template -void check_all(std::ostream& log) +void check_all(std::ostream &log) { #if SEPARATE_FILES == 0 - std::ostream& out = log; + std::ostream &out = log; #endif char name[100]; DataOutBase::VtkFlags flags; - if (true) { - sprintf(name, "data_out_base_vtu/%d%d.vtu", dim, spacedim); + if (true) + { + sprintf(name, "data_out_base_vtu/%d%d.vtu", dim, spacedim); #if SEPARATE_FILES==1 - std::ofstream out(name); + std::ofstream out(name); #else - out << "==============================\n" - << name - << "\n==============================\n"; + out << "==============================\n" + << name + << "\n==============================\n"; #endif - check(flags, out); - } + check(flags, out); + } } int main() diff --git a/tests/base/data_out_base_vtu_cycle.cc b/tests/base/data_out_base_vtu_cycle.cc new file mode 100644 index 0000000000..8c5b24cbfd --- /dev/null +++ b/tests/base/data_out_base_vtu_cycle.cc @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtu, but output cycle as well + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.cycle = 42; + + if (true) + { + sprintf(name, "data_out_base_vtu_cycle/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_cycle/cmp/generic b/tests/base/data_out_base_vtu_cycle/cmp/generic new file mode 100644 index 0000000000..f9fc0459d2 --- /dev/null +++ b/tests/base/data_out_base_vtu_cycle/cmp/generic @@ -0,0 +1,230 @@ +============================== +data_out_base_vtu_cycle/11.vtu +============================== + + + + + +42 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_cycle/12.vtu +============================== + + + + + +42 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_cycle/22.vtu +============================== + + + + + +42 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_cycle/23.vtu +============================== + + + + + +42 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_cycle/33.vtu +============================== + + + + + +42 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + + diff --git a/tests/base/data_out_base_vtu_time.cc b/tests/base/data_out_base_vtu_time.cc new file mode 100644 index 0000000000..48615e6ce6 --- /dev/null +++ b/tests/base/data_out_base_vtu_time.cc @@ -0,0 +1,93 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtu, but output time as well + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + + if (true) + { + sprintf(name, "data_out_base_vtu_time/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_time/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_time/cmp/generic b/tests/base/data_out_base_vtu_time/cmp/generic new file mode 100644 index 0000000000..68f1f5f09d --- /dev/null +++ b/tests/base/data_out_base_vtu_time/cmp/generic @@ -0,0 +1,230 @@ +============================== +data_out_base_vtu_time/11.vtu +============================== + + + + + +3.14159 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time/12.vtu +============================== + + + + + +3.14159 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time/22.vtu +============================== + + + + + +3.14159 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time/23.vtu +============================== + + + + + +3.14159 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time/33.vtu +============================== + + + + + +3.14159 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + + diff --git a/tests/base/data_out_base_vtu_time_and_cycle.cc b/tests/base/data_out_base_vtu_time_and_cycle.cc new file mode 100644 index 0000000000..f60fd290fc --- /dev/null +++ b/tests/base/data_out_base_vtu_time_and_cycle.cc @@ -0,0 +1,95 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// like data_out_base_vtu, but output time and cycle as well + + +#include "../tests.h" +#include +#include + +#include +#include +#include +#include +#include + +#include "patches.h" + +// Output data on repetitions of the unit hypercube + +// define this as 1 to get output into a separate file for each testcase +#define SEPARATE_FILES 0 + + +template +void check(DataOutBase::VtkFlags flags, + std::ostream &out) +{ + const unsigned int np = 4; + + std::vector > patches(np); + + create_patches(patches); + + std::vector names(5); + names[0] = "x1"; + names[1] = "x2"; + names[2] = "x3"; + names[3] = "x4"; + names[4] = "i"; + std::vector > vectors; + DataOutBase::write_vtu(patches, names, vectors, flags, out); +} + + +template +void check_all(std::ostream &log) +{ +#if SEPARATE_FILES == 0 + std::ostream &out = log; +#endif + + char name[100]; + DataOutBase::VtkFlags flags; + + flags.time = numbers::PI; + flags.cycle = 42; + + if (true) + { + sprintf(name, "data_out_base_vtu_time_and_cycle/%d%d.vtu", dim, spacedim); +#if SEPARATE_FILES==1 + std::ofstream out(name); +#else + out << "==============================\n" + << name + << "\n==============================\n"; +#endif + check(flags, out); + } +} + +int main() +{ + std::ofstream logfile("data_out_base_vtu_time_and_cycle/output"); + check_all<1,1>(logfile); + check_all<1,2>(logfile); + check_all<2,2>(logfile); + check_all<2,3>(logfile); + check_all<3,3>(logfile); +} diff --git a/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic b/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic new file mode 100644 index 0000000000..56487bf5cd --- /dev/null +++ b/tests/base/data_out_base_vtu_time_and_cycle/cmp/generic @@ -0,0 +1,235 @@ +============================== +data_out_base_vtu_time_and_cycle/11.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAFABAABQAQAANQAAAA==eNpjYMAHPtiTJv4DhziDA7Hiq1eBABOGeFgoCLDiMIeDRHEuHOI8OMT5cIgLYIgDAH+pDF0= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time_and_cycle/12.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAFABAABQAQAASgAAAA==eNpjYMAHPtij0oTEf9ij0nDggEbjFF+9CgSYHGA0TDwsFARYHWA0qjEcDqg0IXEuB1QaBngcUGkY4HNApWFAwAGVZmAAAJsiGLk= + + + + + +AQAAAFAAAABQAAAAKQAAAA==eNotw8cNACAQA0HDkY7Qf7vswyONJBVWhjd2Dp++mNx+/PrjBxBcAI0= + + +AQAAACgAAAAoAAAAIgAAAA==eNpjYmBgYAFiNiDmAGIuIOYBYj4gFgBiISAWAWIABwgAbw== + + +AQAAAAoAAAAKAAAACwAAAA==eNpjZoYBAACvAB8= + + + + +AQAAAHAAAABwAAAALgAAAA==eNpjYEAGH+xR6R9QmsEBiV6wahUTiE4IDWWFinOg0VxQmgdK80FpAQcAUAIJXw== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAFgAAAA==eNpjYMAGPthjpxkc8NMcBGkAb/wF9g== + +AQAAAHAAAABwAAAAGQAAAA==eNpjYEAGH+wZsPMd8ItzECkv4AAAaTsGXQ== + + + + +============================== +data_out_base_vtu_time_and_cycle/22.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAABAFAAAQBQAAoAAAAA==eNqVkMsKw0AIAKVQWETEP2p+ovnI5Od63GPJwS3YTB7enIWZRJGj+bzk1nvuV3kHLtOxp4Ong6eDJ9+rp/Kxn/J12ebxx+f3Nk/wNPQX3/BXnv7K07/PZSrfNfyV5155+vd5/k+D+zS4T4P7XOUK3IA78DjpKnQVugpdha5C16Br0DXoGnQNug5dh65D16Hr0A3oBnQDugHdH/8CMeJb0Q== + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time_and_cycle/23.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAABAFAAAQBQAA0gAAAA==eNqNUVsOgjAQRCNJQ2rT8tLb2EvAIfFyfvJpEAbDtGPsz2Rmt9PdaVH8Oq/HnzweOdAIHTgLzn7MuW8m/RLzdSN8Tcz7WvIBeqEX8Tkt55zwcVhOuetHbmJ+nvQ+OPC09efr1e4H/dM2XJM5pq2f3xu3/iMvKYfv+6t/EPt4ygf3QpLHOk9N94Gt0IGV4JZ0cEe6S/bLc/atCJ2oe6pDD1SHXou5vZgjELfkw3M15GdFzo58eM9G5NoSB3Yij17k3oocO5FLL/7zRhx4j28uS4pw + + + + + +AQAAAOABAADgAQAAogAAAA==eNpNi8cSgkAQBdecAyJiDggiiGD8/1/zTVUfPHRtV+8b55yriYaoi6Zoia7o4G3R+2v2DkQft78hbSTGYiY8fCJ8mvlUzGkefSEC3HpI89kuaQF9LVa49Q0tZLul7cRenEWEH0RMMz+KhGZ+EhdaxO4qUtx2GS1ml9MSbm+0lN1dFLjtSlrGrqLl3D5oBbuXeOK2e9NKdh9axe2X9gNQBw2p + + +AQAAAHgAAAB4AAAATAAAAA==eNoNw5EShFAAAMAHQRAEQRAEQRAEwUEQBEEQBEEQBEEQBH3+7c5sFEKITUzNzC0sraxtbO382Ts4Ojm7uLq5e3h6efv4+vkHNocHRQ== + + +AQAAAB4AAAAeAAAACwAAAA==eNrj5MQHABB3AQ8= + + + + +AQAAALABAACwAQAANgAAAA==eNpjYEAGH+wZsPJh9A+YvAN54mB6wapVTCA6ITSUFSrOQSd5GM0FpXmgNB+UFhj06gCiMiHx + +AQAAALABAACwAQAAMwAAAA==eNpjYMAGPtgTR//AQTM4kEEvWLWKCR+dEBrKio8GAg4q0VxE0jxE0nxE0gIEaQDf2iHx + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAFwAAAA==eNpjYCAGfLCnDs3gMLA0x5CnAc+qFbA= + +AQAAALABAACwAQAAUAAAAA==eNpjYEAGH+yhDAcIxeHAQJS8AJQWgdISUFoGSitQ2RwlKK0CpdWgtAaU1oLSOlBab5DYbwClDaG0EZQ2htImUNoUSptBaXMobeEAANfTFck= + + + + +============================== +data_out_base_vtu_time_and_cycle/33.vtu +============================== + + + + + +42 +3.14159 + + + + +AQAAAAAVAAAAFQAAtwEAAA==eNqdljtuxDAMRIUAAQxCIOZGySWSQyaX29LlYgsV0e4zh3FDaGz+hh95jKvn9jFa79fZ1SN9+q4rT8DHZ0/vBHzZcf2cgK+zGxfFR/5In+SeV5U36e15VTyRH+LrZsZNcVR1IH1f/v48nrcn/Pvr8byD3mHbW+cdX/Zf+z/suNZ3O77Or/M47Pz+xnFAHAfo1zwRX5TndXzPdknu/O/23bqRvZ3/3b5bf4pr5/81P3UfUX7UT9d9MEp+iRfKp+prskty57+aD6ob2dv5r+aM6k9xXc/bMPuY87vup2HWiXm65muYcTDf/5MB+AQ8AVfTTwA+AU/A1cwjAJ+AJ+Bq8hSAT8ATcDXrEIBPwBNwNescJu9R8KVmH5GcgCfgavYp+ZmAJ+BqzgHlMQFPwNWcM+JpAp6AqznHYc7tLOZNzT0RZl1nUQ819xD5I5mAq7nnorCXcE7w6+7RKOIV+BV85+7pMPd+FvtazXsgzL2QxTyrec+E2TdZ1FvNeyxMu5VU856Moh9l+lHzHg7zv0FFHmre82HeKxVPav5HhLl3qjqo+Z8SZl9WdVbzPyjMuKs+epZ3Ou4XOQ== + + + + + +AQAAAIAMAACADAAAVwMAAA==eNptkVVTEFAQRrG7u7ADu7tbwQ7s7u7uRrEbDMTuQsXu7hbzr/jtzHnauQ/n5e7Zb2fuFxEREZFOZBDpRUaRSWQRmUVWkU3kFDlEPpFfFBIFmWUXuXBsVkAUxsnBex6Rmx17LyqKMLPdvDiF2C2G4+8VFyVEpCgVuGezkqI0jr9XiveyokzgXiS75XDKiwqiiqgs6on6orFoxKyiiMKxWQPRBMdmlURVHJs1FE1xKrNXXVQj0/aai2bMbK8GTmP2WuBEkV0TpwnZLXGqsVdb1CLT9lqLVsxsrw5Oc/ba4NQguy5OC7Lb4vj/aCfai86iU+A/bNZBdMHx/2GzjqIrjv+PTuzFiOjAf3RmrxuO/48uZHfH8f8RzV5P0SPwHzHs9cLx/9GN7N44/j/6iL5igIgN/IfN+omBOP4/bNZfDMLx/xHL3hAxOPAfA9gbiuP/YyDZw3D8fwxmb4QYHviPIeyNxPH/MZTsUTijxRgxUUwQS8RSsUqsZDZWTMKx2TKxGsdm48RkHJstF2twbDZeTMGx2QqxFmcCudPEVG5a7nqxjpnlTsdZRe4GnEnkzsBZTW4czmRuz8RZw+2NOFPJnS1mcdNy48UmZpY7B2c9uZtxppM7F2cDuVtwZnB7Hk4ct7fizCJ3gZjPTcvdLrYxs9yFOPHk7sCZQ+4inM3k7sSZy+3FOFu4vQvH971b7BGJIiHQt832igM4vm+b7RMHcXzfNtsvDuH4vhPITRKHA30nknsEx/d9gNxkHN/3QW4fxfF9Hyb3uDgW6DuJ3BM4vu8j5J7E8X0nc/sUju/7GLlnxOlA38fJPYvj+z5B7jkc3/dJbp/H8X1fEBdFirga6Ntml8Q1HN+3zS6L6zi+b5tdETdwfN9Xyb0pUgN9p5B7C8f3fY3c2zi+7+vcvoPj+04l9564G+j7Jrn3cXzft8h9gOP7vs3thzi+77vkPhaPAn3fI/cJju/7PrlPcXzfD7j9DMf3/Vy8EG/Fm0DfNnsp3uH4vm32SrzH8X3b7LX4gOP7fkPuJ/Ex0Pdbcj/j+L7fkfsFx/f9nttfcXzfH8n9Lr4F+v5E7g8c3/dnctNwfN9fuP0Tx/f9jdzf4leg7+/k/sHxff8g9y+O7zuN2/9w/gOh1n+I + + +AQAAAJABAACQAQAAmAAAAA==eNoNzRGAhEAAAMD9fzkMwzA8DMMwDMMwDMPDMAzDMAzDMAzDw/AHhucVQoiISUh5k5FTUFJR09DS0fNhYGRiZmFlY+fg5OLmy0P4CeFFRExCypuMnIKSipqGlo6eDwMjEzMLKxs7BycXN18ewq+fiJiElDcZOQUlFTUNLR09HwZGJmYWVjZ2Dk4ubr48hD8/ETEJ/xaiL0A= + + +AQAAAGQAAABkAAAADAAAAA==eNrj4aE9AADtHASx + + + + +AQAAAAAHAAAABwAAQAAAAA==eNpjYEAGH+wZyOLD6B8weYfhIQ6mF6xaxQSiE0JDWaHiHKPyI0IeRnNBaR4ozQelBUbVjaobVTeE1QEAes2Cfw== + +AQAAAAAHAAAABwAASwAAAA==eNpjYMAGPtij0oTkcdE/cNAMDtjpwWYOXnrBqlVM+OiE0FBWfDQQcBCgR+0fWPuJpbmIpHmIpPmIpAWIpEf9MeqPUX9gowFLHIJ/ + +AQAAAAAHAAAABwAAOAAAAA==eNpjYCAGfLCnD/2DSjSDwzCgF6xaxTSQdEJoKOtA0kDAMUpTheYaJjTPMKH5hgktMORpAO0qgn8= + +AQAAAAAHAAAABwAAHwAAAA==eNpjYKAG+GA/PGkGh1F6JNMco/QoPUoPYxoAo8lTHg== + +AQAAAAAHAAAABwAA4wAAAA==eNrt0TlKZVEYhdEdGhoYGFQgIiIiopZ9e+3K3mevZTuVf2hnSA5B4a3AARiJJ1n3Y3OCy0m+nvctH12fAQ5yiMP80+Vb7o9wlGMc5wQnOcVpznCWc/zLeS5wkUtc5gpXf/h/rXGdG9zkFru+xWxrZkczu5rZ08y+Zv5p5kAzh5o50syxZk40c6qZM82ca6ane7/v//v+n+eib8diYy7tLDbmys5iY67tLDbmxs5iY27tLDbmzs5iY+7tLDbmwc5iY/7bWWzMo53FxjzZWWzMs53FxrzYWWzMq53Fxrx1H/t9lj8= + + + + diff --git a/tests/base/data_out_reader_01.cc b/tests/base/data_out_reader_01.cc index 3dc6a21b42..1e105e3ffd 100644 --- a/tests/base/data_out_reader_01.cc +++ b/tests/base/data_out_reader_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -24,7 +28,7 @@ // test DataOutReader::merge -void cat_file(const char * filename) +void cat_file(const char *filename) { std::ifstream in(filename); while (in) @@ -39,11 +43,11 @@ template void check() { const unsigned int np = 1; - + std::vector > patches(np); - + create_patches(patches); - + std::vector names(5); names[0] = "x1"; names[1] = "x2"; @@ -51,29 +55,29 @@ void check() names[3] = "x4"; names[4] = "i"; std::vector > vectors; - + std::ostringstream old_data; - DataOutBase::write_deal_II_intermediate(patches, names, vectors, - DataOutBase::Deal_II_IntermediateFlags(), - old_data); + DataOutBase::write_deal_II_intermediate(patches, names, vectors, + DataOutBase::Deal_II_IntermediateFlags(), + old_data); DataOutReader data; { std::istringstream input(old_data.str()); data.read (input); - } + } DataOutReader additional_data; { std::istringstream input(old_data.str()); additional_data.read (input); } - + data.merge (additional_data); { std::ofstream out2( "data_out_reader_01/outfile"); data.write_deal_II_intermediate (out2); - } + } cat_file("data_out_reader_01/outfile"); std::remove ("data_out_reader_01/outfile"); @@ -89,5 +93,5 @@ int main() check<1,2>(); check<2,2>(); check<2,3>(); - check<3,3>(); + check<3,3>(); } diff --git a/tests/base/data_out_reader_01/cmp/generic b/tests/base/data_out_reader_01/cmp/generic index 4fa76349c8..605cc088f7 100644 --- a/tests/base/data_out_reader_01/cmp/generic +++ b/tests/base/data_out_reader_01/cmp/generic @@ -1,7 +1,7 @@ 1 1 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 5 x1 @@ -33,7 +33,7 @@ i 1 2 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 5 x1 @@ -65,7 +65,7 @@ i 2 2 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 5 x1 @@ -97,7 +97,7 @@ i 2 3 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 5 x1 @@ -129,7 +129,7 @@ i 3 3 [deal.II intermediate format graphics data] -[written by deal.II 8.0.pre] +[written by deal.II x.y.z] [Version: 3] 5 x1 diff --git a/tests/base/full_tensor_01.cc b/tests/base/full_tensor_01.cc index 653e4ccfb0..d88af2634a 100644 --- a/tests/base/full_tensor_01.cc +++ b/tests/base/full_tensor_01.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_01.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_01.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. +// +// --------------------------------------------------------------------- + // test full 2x2 tensors @@ -26,17 +30,17 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Tensor<2,2> t; t[0][0] = 1; t[1][1] = 2; t[0][1] = 4; t[1][0] = 4; - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor Assert (std::fabs(t.norm() - std::sqrt(1.*1+2*2+2*4*4)) < 1e-14, ExcInternalError()); diff --git a/tests/base/full_tensor_02.cc b/tests/base/full_tensor_02.cc index 9887db23b3..dc066402d2 100644 --- a/tests/base/full_tensor_02.cc +++ b/tests/base/full_tensor_02.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_02.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_02.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. +// +// --------------------------------------------------------------------- + // test full 3x3 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Tensor<2,3> t; t[0][0] = 1; t[1][1] = 2; @@ -40,11 +44,11 @@ int main () Assert (t[0][1] == t[1][0], ExcInternalError()); - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor Assert (std::fabs(t.norm() - std::sqrt(1.*1+2*2+3*3+2*4*4+2*5*5+2*6*6)) < 1e-14, ExcInternalError()); diff --git a/tests/base/full_tensor_03.cc b/tests/base/full_tensor_03.cc index 84b0cc2353..4833fd1b25 100644 --- a/tests/base/full_tensor_03.cc +++ b/tests/base/full_tensor_03.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_03.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_03.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. +// +// --------------------------------------------------------------------- + // test full 2x2x2x2 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Tensor<4,2> t; t[0][0][0][0] = 1; t[1][1][1][1] = 2; @@ -35,18 +39,18 @@ int main () Assert (t[0][1][0][1] == t[1][0][1][0], ExcInternalError()); - // check norm of tensor + // check norm of tensor deallog << t.norm() << std::endl; - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product double norm_sqr = 0; for (unsigned int i=0; i<2; ++i) for (unsigned int j=0; j<2; ++j) for (unsigned int k=0; k<2; ++k) - for (unsigned int l=0; l<2; ++l) - norm_sqr += t[i][j][k][l] * t[i][j][k][l]; - + for (unsigned int l=0; l<2; ++l) + norm_sqr += t[i][j][k][l] * t[i][j][k][l]; + Assert (std::fabs (t.norm()*t.norm() - norm_sqr) < 1e-14, ExcInternalError()); diff --git a/tests/base/full_tensor_04.cc b/tests/base/full_tensor_04.cc index 189ef49d14..742c3b6756 100644 --- a/tests/base/full_tensor_04.cc +++ b/tests/base/full_tensor_04.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_04.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_04.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. +// +// --------------------------------------------------------------------- + // test full 3x3x3x3 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Tensor<4,3> t; t[0][0][0][0] = 1; t[1][1][1][1] = 2; @@ -35,17 +39,17 @@ int main () Assert (t[0][1][0][1] == t[1][0][1][0], ExcInternalError()); - // check norm of tensor + // check norm of tensor deallog << t.norm() << std::endl; - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product double norm_sqr = 0; for (unsigned int i=0; i<2; ++i) for (unsigned int j=0; j<2; ++j) for (unsigned int k=0; k<2; ++k) - for (unsigned int l=0; l<2; ++l) - norm_sqr += t[i][j][k][l] * t[i][j][k][l]; + for (unsigned int l=0; l<2; ++l) + norm_sqr += t[i][j][k][l] * t[i][j][k][l]; Assert (std::fabs (t.norm()*t.norm() - norm_sqr) < 1e-14, ExcInternalError()); diff --git a/tests/base/full_tensor_05.cc b/tests/base/full_tensor_05.cc index e3ef62b30d..f81f79504d 100644 --- a/tests/base/full_tensor_05.cc +++ b/tests/base/full_tensor_05.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_05.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_05.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 sure the tensor t_ijkl=delta_ik delta_jl // actually maps a rank-2 tensor onto twice itself @@ -28,9 +32,9 @@ void test () for (unsigned int i=0; i a, b; a[0][0] = 1; a[1][1] = 2; @@ -39,38 +43,38 @@ void test () for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/full_tensor_06.cc b/tests/base/full_tensor_06.cc index f88981bae4..fc0bd8616d 100644 --- a/tests/base/full_tensor_06.cc +++ b/tests/base/full_tensor_06.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_06.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_06.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 sure a tensor similar to the elasticity tensor for the // isotropic case works as expected by comparing with a full tensor @@ -26,56 +30,56 @@ template void test () { const double lambda = 5, - mu = 7; + mu = 7; Tensor<4,dim> ts; Tensor<4,dim> ta; for (unsigned int i=0; i as, bs; Tensor<2,dim> aa, ba; for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/full_tensor_08.cc b/tests/base/full_tensor_08.cc index c49752f71b..9a5caf016e 100644 --- a/tests/base/full_tensor_08.cc +++ b/tests/base/full_tensor_08.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_08.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. +// +// --------------------------------------------------------------------- + // a stress test using repeated multiplication of tensors @@ -19,31 +23,31 @@ #include #include - + template void test () { const double lambda = 1.5, - mu = 1.7; + mu = 1.7; Tensor<2,dim> t; for (unsigned int i=0; i a; for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/full_tensor_09.cc b/tests/base/full_tensor_09.cc index eb3a07f1ad..eb726fadd7 100644 --- a/tests/base/full_tensor_09.cc +++ b/tests/base/full_tensor_09.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_09.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- full_tensor_09.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. +// +// --------------------------------------------------------------------- + // test the determinant code @@ -25,8 +29,8 @@ void test () { Tensor<2,dim> t; - // choose the same symmetric tensor - // as in symmetric_tensor_09 + // choose the same symmetric tensor + // as in symmetric_tensor_09 for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/full_tensor_10.cc b/tests/base/full_tensor_10.cc index df93b4cf18..f21e83bcf3 100644 --- a/tests/base/full_tensor_10.cc +++ b/tests/base/full_tensor_10.cc @@ -1,15 +1,19 @@ -//---------------------------- full_tensor_10.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2009 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. // -//---------------------------- full_tensor_10.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. +// +// --------------------------------------------------------------------- + // test the determinant code for n>3 @@ -25,8 +29,8 @@ void test () { Tensor<2,dim> t; - // choose the same symmetric tensor - // as in symmetric_tensor_10 + // choose the same symmetric tensor + // as in symmetric_tensor_10 for (unsigned int i=0; i void -check_derivative_order(const std::vector >& gradients, - FunctionDerivative& df, - const Quadrature& quadrature, - const unsigned int direction, - const double order) +check_derivative_order(const std::vector > &gradients, + FunctionDerivative &df, + const Quadrature &quadrature, + const unsigned int direction, + const double order) { std::vector derivatives(quadrature.size()); std::vector differences(quadrature.size()); - // Compute derivatives with one - // step size and store errors + // Compute derivatives with one + // step size and store errors df.set_h(1.e-2); df.value_list(quadrature.get_points(), derivatives); - for (unsigned int i=0;i 1.2 * expected || reduction < .8 * expected) - deallog << "Derivative error " << direction - << ' ' << order - << ' ' << i - << " " << reduction << std::endl; + deallog << "Derivative error " << direction + << ' ' << order + << ' ' << i + << " " << reduction << std::endl; } } template void -check_hessian_order(const std::vector& values, - FunctionDerivative& df, - const Quadrature& quadrature, - const Point& k, - const unsigned int direction, - const double order) +check_hessian_order(const std::vector &values, + FunctionDerivative &df, + const Quadrature &quadrature, + const Point &k, + const unsigned int direction, + const double order) { std::vector > derivatives(quadrature.size()); std::vector > differences(quadrature.size()); const double h = (order < 3) ? 1.e-2 : 1.e-1 ; - // Compute derivatives with one - // step size and store errors + // Compute derivatives with one + // step size and store errors df.set_h(h); df.gradient_list(quadrature.get_points(), derivatives); - for (unsigned int i=0;i 1.2 * expected || reduction < .8 * expected) - deallog << "Hessian error " << direction << ' ' << d - << ' ' << order - << ' ' << i - << " " << reduction - << " " << expected - << " " << differences[i][d] - << std::endl; - } + const double reduction = std::fabs(-values[i]*k[direction]*k[d] - derivatives[i][d]) + / std::fabs(differences[i][d]); + if (reduction > 1.2 * expected || reduction < .8 * expected) + deallog << "Hessian error " << direction << ' ' << d + << ' ' << order + << ' ' << i + << " " << reduction + << " " << expected + << " " << differences[i][d] + << std::endl; + } } @@ -115,21 +119,21 @@ void check_sine(unsigned int nquad) { QGauss quadrature(nquad); - + Point wave_vector; - for (unsigned int d=0;d f(wave_vector); - + std::vector values(quadrature.size()); std::vector > gradients(quadrature.size()); - + f.value_list(quadrature.get_points(), values); f.gradient_list(quadrature.get_points(), gradients); - - // Check derivatives in all directions - for (unsigned int d=0;d dir; diff --git a/tests/base/function_parser.cc b/tests/base/function_parser.cc index b0563fe160..513a52712c 100644 --- a/tests/base/function_parser.cc +++ b/tests/base/function_parser.cc @@ -1,19 +1,23 @@ -//---------------------------- function_parser.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- function_parser.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 program tests the functionality of the function parser -// wrapper. +// wrapper. #include "../tests.h" #include @@ -25,72 +29,79 @@ #include -int main () +int main () { std::ofstream logfile("function_parser/output"); deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + // Define some constants that will be used by the function parser std::map constants; constants["pi"] = M_PI; - + // Define the variables that will be used inside the expressions std::string variables = "x,y"; - + // Define the expressions of the vector_valued function. std::vector expressions; expressions.push_back("sin(2*pi*x)"); expressions.push_back("cos(2*pi*y*x)"); expressions.push_back("if(x<.5,y,exp(x))"); expressions.push_back("if(x<.5,y,exp(x)*exp(x*y))"); - + // Concatenate the declared expressions, to test the second way of // initializing std::string concatenated="cos(pi*y)"; // Now test each possibility - for(unsigned int i=1; i<=expressions.size(); ++i) { - try { - { - FunctionParser<2> function(i); - function.initialize(variables, - expressions, - constants); - deallog << "Initialize Succeded with dim = 2, " - << i << " components, " - << expressions.size() << " expressions, " - << variables << " as variables." << std::endl; - } - } catch(...) { - deallog << "Initialize Failed with dim = 2, " - << i << " components, " - << expressions.size() << " expressions, " - << variables << " as variables." << std::endl; - } - - try { - { - FunctionParser<2> function_bis(i); - function_bis.initialize(variables, - concatenated, - constants); - deallog << "Initialize Succeded with dim = 2, " - << i << " components, " - << concatenated << " as function and " - << variables << " as variables." << std::endl; - } - } catch(...) { - deallog << "Initialize Failed with dim = 2, " - << i << " components, " - << concatenated << " as function and " - << variables << " as variables." << std::endl; + for (unsigned int i=1; i<=expressions.size(); ++i) + { + try + { + { + FunctionParser<2> function(i); + function.initialize(variables, + expressions, + constants); + deallog << "Initialize Succeded with dim = 2, " + << i << " components, " + << expressions.size() << " expressions, " + << variables << " as variables." << std::endl; + } + } + catch (...) + { + deallog << "Initialize Failed with dim = 2, " + << i << " components, " + << expressions.size() << " expressions, " + << variables << " as variables." << std::endl; + } + + try + { + { + FunctionParser<2> function_bis(i); + function_bis.initialize(variables, + concatenated, + constants); + deallog << "Initialize Succeded with dim = 2, " + << i << " components, " + << concatenated << " as function and " + << variables << " as variables." << std::endl; + } + } + catch (...) + { + deallog << "Initialize Failed with dim = 2, " + << i << " components, " + << concatenated << " as function and " + << variables << " as variables." << std::endl; + } + + concatenated += "; " + expressions[i-1]; } - - concatenated += "; " + expressions[i-1]; - } } - - + + diff --git a/tests/base/function_parser_02.cc b/tests/base/function_parser_02.cc index b02ef7179b..6e4cc091b7 100644 --- a/tests/base/function_parser_02.cc +++ b/tests/base/function_parser_02.cc @@ -1,15 +1,19 @@ -//---------------------------- function_parser.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2009 by the deal.II authors and Victor Prosolin +// 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. // -//---------------------------- function_parser.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 program tests the functionality of the function parser @@ -25,14 +29,14 @@ #include -int main () +int main () { std::ofstream logfile("function_parser_02/output"); deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + std::vector function(1); std::map constants; std::map units; @@ -43,51 +47,51 @@ int main () Point<2> point(2.0, 3.0); - //initialized with units + //initialized with units FunctionParser<2> fp; function[0] = "x cm + y m + PI"; fp.initialize(FunctionParser<2>::default_variable_names(), - function, constants, units); + function, constants, units); deallog << "Function " << "[" << function[0] << "]" << - " @point " << "[" << point << "]" << " is " << - "[" << fp.value(point) << "]" << std::endl; + " @point " << "[" << point << "]" << " is " << + "[" << fp.value(point) << "]" << std::endl; - //now initialize with a function - //that's a string, not vector of - //strings + //now initialize with a function + //that's a string, not vector of + //strings FunctionParser<2> fp4; fp4.initialize(FunctionParser<2>::default_variable_names(), - function[0], constants, units); + function[0], constants, units); deallog << "Function " << "[" << function[0] << "]" << - " @point " << "[" << point << "]" << " is " << - "[" << fp4.value(point) << "]" << std::endl; + " @point " << "[" << point << "]" << " is " << + "[" << fp4.value(point) << "]" << std::endl; - //now initialize a function without - //units to check backwards - //compatibility + //now initialize a function without + //units to check backwards + //compatibility FunctionParser<2> fp2; function[0] = "x + y + PI"; fp2.initialize(FunctionParser<2>::default_variable_names(), - function, constants); + function, constants); deallog << "Function " << "[" << function[0] << "]" << - " @point " << "[" << point << "]" << " is " << - "[" << fp2.value(point) << "]" << std::endl; + " @point " << "[" << point << "]" << " is " << + "[" << fp2.value(point) << "]" << std::endl; - //same as above but the function is - //a string, not a vector + //same as above but the function is + //a string, not a vector FunctionParser<2> fp3; fp3.initialize(FunctionParser<2>::default_variable_names(), - function[0], constants); + function[0], constants); deallog << "Function " << "[" << function[0] << "]" << - " @point " << "[" << point << "]" << " is " << - "[" << fp3.value(point) << "]" << std::endl; + " @point " << "[" << point << "]" << " is " << + "[" << fp3.value(point) << "]" << std::endl; } - - + + diff --git a/tests/base/functions.h b/tests/base/functions.h index 7c06a1c00f..1da9297f77 100644 --- a/tests/base/functions.h +++ b/tests/base/functions.h @@ -1,15 +1,18 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2007, 2008, 2010 by the deal.II authors +// Copyright (C) @YEAR@ 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. +// +// --------------------------------------------------------------------- // Generic routines to check consistency of function classes @@ -22,7 +25,7 @@ template void check_function_value_consistency( - const Function& f, + const Function &f, unsigned int sub, double threshold = 1.e-15) { @@ -31,26 +34,26 @@ check_function_value_consistency( std::vector f1(quadrature.size()); std::vector > f2(quadrature.size(), Vector(f.n_components)); - + f.vector_value_list(quadrature.get_points(), f2); deallog << "value vs vector value list"; - for (unsigned int d=0;d threshold) - deallog << "v-vl " << d << ':' << i << ':' << v-f2[i](d); + const double v = f.value(quadrature.point(i), d); + if (std::fabs(v-f2[i](d)) > threshold) + deallog << "v-vl " << d << ':' << i << ':' << v-f2[i](d); } deallog << std::endl << "value list vs vector value list"; - for (unsigned int d=0;d threshold) - deallog << ' ' << d << ':' << i << ':' << f1[i]-f2[i](d); - } + for (unsigned int i=0; i threshold) + deallog << ' ' << d << ':' << i << ':' << f1[i]-f2[i](d); + } } deallog << std::endl; } @@ -59,7 +62,7 @@ check_function_value_consistency( template void check_function_gradient_consistency( - const Function& f, + const Function &f, unsigned int sub, double threshold = 1.e-15) { @@ -68,29 +71,29 @@ check_function_gradient_consistency( std::vector > f1(quadrature.size()); std::vector > > f2(quadrature.size(), - std::vector >(f.n_components)); - + std::vector >(f.n_components)); + f.vector_gradient_list(quadrature.get_points(), f2); deallog << "gradient vs vector gradient list"; - for (unsigned int d=0;d v = f.gradient(quadrature.point(i), d)-f2[i][d]; - - if (std::sqrt(v*v) > threshold) - deallog << "v-vl " << d << ':' << i << ':' << v; + const Tensor<1,dim> v = f.gradient(quadrature.point(i), d)-f2[i][d]; + + if (std::sqrt(v*v) > threshold) + deallog << "v-vl " << d << ':' << i << ':' << v; } deallog << std::endl << "gradient list vs vector gradient list"; - for (unsigned int d=0;d v = f1[i]-f2[i][d]; - if (std::sqrt(v*v) > threshold) - deallog << ' ' << d << ':' << i << ':' << v; - } + for (unsigned int i=0; i v = f1[i]-f2[i][d]; + if (std::sqrt(v*v) > threshold) + deallog << ' ' << d << ':' << i << ':' << v; + } } deallog << std::endl; } @@ -104,26 +107,26 @@ template class DerivativeTestFunction : public AutoDerivativeFunction { - public: - DerivativeTestFunction(const Function&, const double h); - ~DerivativeTestFunction(); - - virtual void vector_value (const Point& points, Vector& value) const; - virtual double value (const Point& points, const unsigned int component) const; - virtual void vector_value_list (const std::vector< Point< dim > > &points, - std::vector< Vector< double > > &values) const; - - private: - const Function& func; +public: + DerivativeTestFunction(const Function &, const double h); + ~DerivativeTestFunction(); + + virtual void vector_value (const Point &points, Vector &value) const; + virtual double value (const Point &points, const unsigned int component) const; + virtual void vector_value_list (const std::vector< Point< dim > > &points, + std::vector< Vector< double > > &values) const; + +private: + const Function &func; }; template -DerivativeTestFunction::DerivativeTestFunction(const Function& f, - const double h) - : - AutoDerivativeFunction(h, f.n_components), - func(f) +DerivativeTestFunction::DerivativeTestFunction(const Function &f, + const double h) + : + AutoDerivativeFunction(h, f.n_components), + func(f) { this->set_formula(AutoDerivativeFunction::FourthOrder); } @@ -146,8 +149,8 @@ DerivativeTestFunction::vector_value_list ( template void DerivativeTestFunction::vector_value ( - const Point& point, - Vector& value) const + const Point &point, + Vector &value) const { func.vector_value(point, value); } @@ -155,11 +158,11 @@ void DerivativeTestFunction::vector_value ( template double DerivativeTestFunction::value ( - const Point& point, - const unsigned int comp) const + const Point &point, + const unsigned int comp) const { // std::cerr << '[' << point << '!' << func.value(point, comp) << ']'; - + return func.value(point, comp); } @@ -168,62 +171,62 @@ double DerivativeTestFunction::value ( template void check_gradient( - const Function& f, + const Function &f, unsigned int sub, double threshold = 1./14.) { DerivativeTestFunction dtest1(f, 1.e-2); DerivativeTestFunction dtest2(f, 2.e-2); - + QMidpoint<1> mid; QIterated quadrature(mid, sub); - const std::vector >& points = quadrature.get_points(); - + const std::vector > &points = quadrature.get_points(); + std::vector > > - gradients(f.n_components, std::vector >(points.size())); + gradients(f.n_components, std::vector >(points.size())); std::vector > > - gradients1(f.n_components, std::vector >(points.size())); + gradients1(f.n_components, std::vector >(points.size())); std::vector > > - gradients2(f.n_components, std::vector >(points.size())); + gradients2(f.n_components, std::vector >(points.size())); deallog << "gradients vs difference quotients"; f.vector_gradients(points, gradients); dtest1.vector_gradients(points, gradients1); dtest2.vector_gradients(points, gradients2); - - // Compare gradients and difference quotients - for (unsigned int k=0;k d1 = gradients1[k][i] - gradients[k][i]; - Tensor<1,dim> d2 = gradients2[k][i] - gradients[k][i]; - - // If the difference is - // already small, we are fine - if (d1.norm() > 1.e-13) - { - // Check for - // convergence. For full - // 4th order, gradients2 - // should be 16 times as - // large, so let's be a - // bit generous - if (threshold * d2.norm() < d1.norm()) - { - deallog << "Gradient error: point " << i - << " (" << points[i] << " )" - << " comp " << k -// << " norms " << d1.norm() << " " << d2.norm() - << std::endl; - for (unsigned int d=0;d d1 = gradients1[k][i] - gradients[k][i]; + Tensor<1,dim> d2 = gradients2[k][i] - gradients[k][i]; + + // If the difference is + // already small, we are fine + if (d1.norm() > 1.e-13) + { + // Check for + // convergence. For full + // 4th order, gradients2 + // should be 16 times as + // large, so let's be a + // bit generous + if (threshold * d2.norm() < d1.norm()) + { + deallog << "Gradient error: point " << i + << " (" << points[i] << " )" + << " comp " << k +// << " norms " << d1.norm() << " " << d2.norm() + << std::endl; + for (unsigned int d=0; d #include -#define CHECK(F) { deallog << #F << std::endl; \ - F f; \ - check_function_value_consistency(f, 5); \ - check_function_gradient_consistency(f, 5); \ - check_gradient(f, 5); \ -} - +#define CHECK(F) { deallog << #F << std::endl; \ + F f; \ + check_function_value_consistency(f, 5); \ + check_function_gradient_consistency(f, 5); \ + check_gradient(f, 5); \ + } + + +#define CHECKN(F,arg) { deallog << #F << '(' << arg << ')' << std::endl; \ + F f(arg); \ + check_function_value_consistency(f, arg+1); \ + check_function_gradient_consistency(f, arg+1); \ + } -#define CHECKN(F,arg) { deallog << #F << '(' << arg << ')' << std::endl; \ - F f(arg); \ - check_function_value_consistency(f, arg+1); \ - check_function_gradient_consistency(f, arg+1); \ -} - int main() { @@ -63,5 +67,5 @@ int main() CHECK(Functions::CosineGradFunction<3>); CHECK(Functions::ExpFunction<1>); CHECK(Functions::ExpFunction<2>); - CHECK(Functions::ExpFunction<3>); + CHECK(Functions::ExpFunction<3>); } diff --git a/tests/base/functions_02.cc b/tests/base/functions_02.cc index f3e483e9e2..d8190b0f45 100644 --- a/tests/base/functions_02.cc +++ b/tests/base/functions_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. +// +// --------------------------------------------------------------------- + // Check methods of the Q1WedgeFunction // 1-dim does not exist @@ -32,135 +36,135 @@ template -void check_values(const Function& f) +void check_values(const Function &f) { Point p; - for(unsigned int i=0; i -void check_value_list(const Function& f) +void check_value_list(const Function &f) { const unsigned int max_points = 3; std::vector< Point > point_vector(max_points); - for(unsigned int j=0; j p; - for(unsigned int i=0; i p; + for (unsigned int i=0; i values(max_points); f.value_list(point_vector, values); - for(unsigned int j=0; j -void check_vector_value_list(const Function& f) +void check_vector_value_list(const Function &f) { const unsigned int max_points = 3; std::vector< Point > point_vector(max_points); - for(unsigned int j=0; j p; - for(unsigned int i=0; i p; + for (unsigned int i=0; i > values(max_points, Vector(1)); f.vector_value_list(point_vector, values); - for(unsigned int j=0; j -void check_gradients(const Function& f) +void check_gradients(const Function &f) { Point p; - for(unsigned int i=0; i grads = f.gradient(p); - for(unsigned int i=0; i -void check_gradient_list(const Function& f) +void check_gradient_list(const Function &f) { const unsigned int max_points = 3; std::vector< Point > point_vector(max_points); - for(unsigned int j=0; j p; - for(unsigned int i=0; i p; + for (unsigned int i=0; i > grads(max_points); f.gradient_list(point_vector, grads); - for(unsigned int j=0; j -void check_vector_gradient_list(const Function& f) +void check_vector_gradient_list(const Function &f) { const unsigned int max_points = 3; std::vector< Point > point_vector(max_points); - for(unsigned int j=0; j p; - for(unsigned int i=0; i > > gradients(max_points, - std::vector< Tensor<1,dim> > (1)); + for (unsigned int j=0; j p; + for (unsigned int i=0; i > > gradients(max_points, + std::vector< Tensor<1,dim> > (1)); f.vector_gradient_list(point_vector, gradients); - for(unsigned int j=0; j -void check_laplacian(const Function& f) +void check_laplacian(const Function &f) { Point p; - for(unsigned int i=0; i -void check_laplacian_list(const Function& f) +void check_laplacian_list(const Function &f) { const unsigned int max_points = 3; std::vector< Point > point_vector(max_points); - for(unsigned int j=0; j p; - for(unsigned int i=0; i p; + for (unsigned int i=0; i values(max_points); f.laplacian_list(point_vector, values); - for(unsigned int j=0; j" << std::endl; diff --git a/tests/base/functions_03.cc b/tests/base/functions_03.cc index ddd262c414..23fbb2ee9c 100644 --- a/tests/base/functions_03.cc +++ b/tests/base/functions_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2007, 2008 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. // -//----------------------------------------------------------------------------- +// 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. +// +// --------------------------------------------------------------------- + // Checking the PillowFunction @@ -28,108 +32,108 @@ template -void check_value (const Function& f) +void check_value (const Function &f) { Point p; for (unsigned int i=0; i -void check_value_list (const Function& f) +void check_value_list (const Function &f) { const unsigned int max_number_of_points = 5; std::vector< Point > points(max_number_of_points); - - for(unsigned int i=0; i p; - for(unsigned int j=0; j p; + for (unsigned int j=0; j values(max_number_of_points); f.value_list(points, values); - for(unsigned int j=0; j -void check_gradient (const Function& f) +void check_gradient (const Function &f) { Point p; for (unsigned int i=0; i -void check_gradient_list (const Function& f) +void check_gradient_list (const Function &f) { const unsigned int max_number_of_points = 5; std::vector< Point > points(max_number_of_points); - - for(unsigned int i=0; i p; - for(unsigned int j=0; j p; + for (unsigned int j=0; j > tensors(max_number_of_points); f.gradient_list(points, tensors); - for(unsigned int j=0; j -void check_laplacian (const Function& f) +void check_laplacian (const Function &f) { Point p; for (unsigned int i=0; i -void check_laplacian_list (const Function& f) +void check_laplacian_list (const Function &f) { const unsigned int max_number_of_points = 5; std::vector< Point > points(max_number_of_points); - - for(unsigned int i=0; i p; - for(unsigned int j=0; j p; + for (unsigned int j=0; j values(max_number_of_points); f.laplacian_list(points, values); - for(unsigned int j=0; j()); check_value (Functions::PillowFunction<2>()); check_value (Functions::PillowFunction<3>()); - + check_value_list (Functions::PillowFunction<1>()); check_value_list (Functions::PillowFunction<2>()); check_value_list (Functions::PillowFunction<3>()); - + check_gradient (Functions::PillowFunction<1>()); check_gradient (Functions::PillowFunction<2>()); check_gradient (Functions::PillowFunction<3>()); - + check_gradient_list (Functions::PillowFunction<1>()); check_gradient_list (Functions::PillowFunction<2>()); check_gradient_list (Functions::PillowFunction<3>()); - + check_laplacian (Functions::PillowFunction<1>()); check_laplacian (Functions::PillowFunction<2>()); check_laplacian (Functions::PillowFunction<3>()); - + check_laplacian_list (Functions::PillowFunction<1>()); check_laplacian_list (Functions::PillowFunction<2>()); check_laplacian_list (Functions::PillowFunction<3>()); - + } diff --git a/tests/base/functions_04.cc b/tests/base/functions_04.cc index 246808545e..6b50070eef 100644 --- a/tests/base/functions_04.cc +++ b/tests/base/functions_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2007, 2008, 2010 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. // -//----------------------------------------------------------------------------- +// 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. +// +// --------------------------------------------------------------------- + // Plot flow functions in library and check their consistency @@ -32,153 +36,153 @@ template void -check_function(const Functions::FlowFunction& f, - unsigned int sub, - std::ostream& out) +check_function(const Functions::FlowFunction &f, + unsigned int sub, + std::ostream &out) { DerivativeTestFunction dtest1(f, 1.e-2); DerivativeTestFunction dtest2(f, 2.e-2); - // Prepare a vector with a single - // patch stretching over the cube - // [-1,1]^dim + // Prepare a vector with a single + // patch stretching over the cube + // [-1,1]^dim std::vector > patches(1); unsigned int vertex_number = 0; - for (unsigned int iz=0;iz < ((dim>2) ? 2 : 1) ;++iz) - for (unsigned int iy=0;iy < ((dim>1) ? 2 : 1) ;++iy) - for (unsigned int ix=0;ix < 2 ;++ix) - { - if (dim>0) patches[0].vertices[vertex_number](0) = -1. + 2.*ix; - if (dim>1) patches[0].vertices[vertex_number](1) = -1. + 2.*iy; - if (dim>2) patches[0].vertices[vertex_number](2) = -1. + 2.*iz; - ++vertex_number; - } - for (unsigned int i=0;i::faces_per_cell;++i) + for (unsigned int iz=0; iz < ((dim>2) ? 2 : 1) ; ++iz) + for (unsigned int iy=0; iy < ((dim>1) ? 2 : 1) ; ++iy) + for (unsigned int ix=0; ix < 2 ; ++ix) + { + if (dim>0) patches[0].vertices[vertex_number](0) = -1. + 2.*ix; + if (dim>1) patches[0].vertices[vertex_number](1) = -1. + 2.*iy; + if (dim>2) patches[0].vertices[vertex_number](2) = -1. + 2.*iz; + ++vertex_number; + } + for (unsigned int i=0; i::faces_per_cell; ++i) patches[0].neighbors[i] = numbers::invalid_unsigned_int; patches[0].patch_index = 0; patches[0].n_subdivisions = sub; patches[0].points_are_available = false; vertex_number = 1; - for (unsigned int d=0;d > points(vertex_number); const double h = 2./sub; vertex_number = 0; - for (unsigned int iz=0;iz <= ((dim>2) ? sub : 0) ;++iz) - for (unsigned int iy=0;iy <= ((dim>1) ? sub : 0) ;++iy) - for (unsigned int ix=0;ix <= sub ;++ix) - { - if (dim>0) points[vertex_number](0) = -1.+ix*h; - if (dim>1) points[vertex_number](1) = -1.+iy*h; - if (dim>2) points[vertex_number](2) = -1.+iz*h; - ++vertex_number; - } - + for (unsigned int iz=0; iz <= ((dim>2) ? sub : 0) ; ++iz) + for (unsigned int iy=0; iy <= ((dim>1) ? sub : 0) ; ++iy) + for (unsigned int ix=0; ix <= sub ; ++ix) + { + if (dim>0) points[vertex_number](0) = -1.+ix*h; + if (dim>1) points[vertex_number](1) = -1.+iy*h; + if (dim>2) points[vertex_number](2) = -1.+iz*h; + ++vertex_number; + } + std::vector > values(points.size(), Vector(f.n_components)); std::vector > values2(f.n_components, - std::vector(points.size())); + std::vector(points.size())); f.vector_value_list(points, values); f.vector_values(points, values2); - for (unsigned int i=0;i 1e-10) - patches[0].data(j, i) = values[i](j); - else - patches[0].data(j, i) = 0; - if (values[i](j) != values2[j][i]) - deallog << "Error values (" << i << ',' << j << ") : " - << values[i](j) << " != " << values2[j][i] << std::endl; + // generate data, but + // truncate too small values + // to avoid output that + // depends on round-off + if (std::fabs (values[i](j)) > 1e-10) + patches[0].data(j, i) = values[i](j); + else + patches[0].data(j, i) = 0; + if (values[i](j) != values2[j][i]) + deallog << "Error values (" << i << ',' << j << ") : " + << values[i](j) << " != " << values2[j][i] << std::endl; } - + deallog << "Gradients "; - // Compute gradients and difference approximations + // Compute gradients and difference approximations std::vector > > - gradients(f.n_components, std::vector >(points.size())); + gradients(f.n_components, std::vector >(points.size())); std::vector > > - gradients1(points.size(), std::vector >(f.n_components)); + gradients1(points.size(), std::vector >(f.n_components)); std::vector > > - gradients2(points.size(), std::vector >(f.n_components)); - + gradients2(points.size(), std::vector >(f.n_components)); + f.vector_gradients(points, gradients); dtest1.vector_gradient_list(points, gradients1); dtest2.vector_gradient_list(points, gradients2); - // Compare gradients and difference quotients - for (unsigned int k=0;k d1 = gradients1[i][k] - gradients[k][i]; - Tensor<1,dim> d2 = gradients2[i][k] - gradients[k][i]; - - // If the difference is - // already small, we are fine - if (d1.norm() > 1.e-13) - { - // Check for - // convergence. For full - // 4th order, gradients2 - // should be 16 times as - // large, so let's be a - // bit generous - if (d2.norm() < 12.* d1.norm()) - { - deallog << "Gradient error: point " << i - << " (" << points[i] << " )" - << " comp " << k -// << " norms " << d1.norm() << " " << d2.norm() - << std::endl; - for (unsigned int d=0;d d1 = gradients1[i][k] - gradients[k][i]; + Tensor<1,dim> d2 = gradients2[i][k] - gradients[k][i]; + + // If the difference is + // already small, we are fine + if (d1.norm() > 1.e-13) + { + // Check for + // convergence. For full + // 4th order, gradients2 + // should be 16 times as + // large, so let's be a + // bit generous + if (d2.norm() < 12.* d1.norm()) + { + deallog << "Gradient error: point " << i + << " (" << points[i] << " )" + << " comp " << k +// << " norms " << d1.norm() << " " << d2.norm() + << std::endl; + for (unsigned int d=0; d 1.e-13) - deallog << "Divergence " << k << " " - << div << std::endl; + deallog << "Divergence " << k << " " + << div << std::endl; } deallog << "tested" << std::endl; - + f.vector_laplacian_list(points, values); f.vector_laplacians(points, values2); double sum = 0.; - for (unsigned int i=0;i names(f.n_components); - for (unsigned int i=0;i" << std::endl; @@ -216,9 +220,9 @@ int main() { deallog << "Functions::StokesLSingularity" << std::endl; Functions::StokesLSingularity f; - // Use odd number of points to - // avoid lines with - // discontinuous derivatives. + // Use odd number of points to + // avoid lines with + // discontinuous derivatives. check_function(f, 5, logfile); } @@ -228,14 +232,14 @@ int main() Functions::Kovasznay f(10.); check_function(f, 4, logfile); } - + if (true) { deallog << "Functions::PoisseuilleFlow<2>" << std::endl; Functions::PoisseuilleFlow<2> f(.8, 10.); check_function(f, 4, logfile); } - + if (true) { deallog << "Functions::PoisseuilleFlow<3>" << std::endl; diff --git a/tests/base/functions_05.cc b/tests/base/functions_05.cc index 43a8673d94..1772b8b09a 100644 --- a/tests/base/functions_05.cc +++ b/tests/base/functions_05.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2007, 2008, 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. // -//----------------------------------------------------------------------------- +// 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 ScalarFunctionFromFunctionObject @@ -21,16 +25,16 @@ template void check1 () { ScalarFunctionFromFunctionObject - object (&Point::norm); + object (&Point::norm); for (unsigned int i=0; i<10; ++i) { Point p; for (unsigned int d=0; d - object (std_cxx1x::bind (&Point::distance, - q, - std_cxx1x::_1)); + object (std_cxx1x::bind (&Point::distance, + q, + std_cxx1x::_1)); for (unsigned int i=0; i<10; ++i) { Point p; for (unsigned int d=0; d void check1 () { VectorFunctionFromScalarFunctionObject - object (&Point::norm, 1, 3); + object (&Point::norm, 1, 3); Assert (object.n_components == 3, ExcInternalError()); @@ -30,17 +34,17 @@ void check1 () { Point p; for (unsigned int d=0; d v(3); object.vector_value (p, v); for (unsigned int c=0; c<3; ++c) - Assert (v(c) == (c==1 ? p.norm() : 0), - ExcInternalError()); + Assert (v(c) == (c==1 ? p.norm() : 0), + ExcInternalError()); } deallog << "OK" << std::endl; @@ -55,18 +59,18 @@ void check2 () q[d] = d; ScalarFunctionFromFunctionObject - object (std_cxx1x::bind (&Point::distance, - q, - std_cxx1x::_1)); + object (std_cxx1x::bind (&Point::distance, + q, + std_cxx1x::_1)); for (unsigned int i=0; i<10; ++i) { Point p; for (unsigned int d=0; d class F : public Function { - public: - double laplacian (const Point &p, - const unsigned int c) const - { - Assert (c == 0, ExcInternalError()); - return p.norm(); - } +public: + double laplacian (const Point &p, + const unsigned int c) const + { + Assert (c == 0, ExcInternalError()); + return p.norm(); + } }; @@ -40,7 +44,7 @@ void check () { Point p; for (unsigned int d=0; d { public: virtual Tensor<1,dim> value (const Point &p) const - { - return p; - } + { + return p; + } }; @@ -35,7 +39,7 @@ void check1 () { X x; VectorFunctionFromTensorFunction - object (x, 1, dim+2); + object (x, 1, dim+2); Assert (object.n_components == dim+2, ExcInternalError()); @@ -43,25 +47,25 @@ void check1 () { Point p; for (unsigned int d=0; d v(dim+2); object.vector_value (p, v); for (unsigned int c=0; c + + + +// Fill a tensor with values: +template +struct FillTensor +{ + static void fill_tensor(Tensor &tensor, int base) + { + for (int i = 0; i < dim; ++i) + FillTensor::fill_tensor(tensor[i], 10 * base + i); + } +}; + +template +struct FillTensor<1, dim> +{ + static void fill_tensor(Tensor<1, dim> &tensor, int base) + { + for (int i = 0; i < dim; ++i) + tensor[i] = 10 * base + i; + } +}; + + + +// Print a tensor of arbitrary rank to the console: +template +struct PrintTensor +{ + static void print_tensor(const Tensor &tensor) + { + for (int i = 0; i < dim; ++i) + { + PrintTensor::print_tensor(tensor[i]); + deallog << " "; + } + } +}; + +template +struct PrintTensor<1, dim> +{ + static void print_tensor(const Tensor<1, dim> &tensor) + { + for (int i = 0; i < dim; ++i) + deallog << tensor[i] << " "; + } +}; + + + +template +void check () +{ + deallog << "ConstantTensorFunction<" + << rank << ", " << dim << ">:" << std::endl; + + Tensor value; + FillTensor::fill_tensor(value, 0); + + ConstantTensorFunction tensor_function(value); + TensorFunction *foo = &tensor_function; + + + Point point; + for (int i = 0; i < dim; ++i) + point(i) = i; + + deallog << "->value:" << std::endl; + PrintTensor::print_tensor( foo->value(point) ); + deallog << std::endl; + + deallog << "->gradient:" << std::endl; + PrintTensor::print_tensor( foo->gradient(point) ); + deallog << std::endl; + + + std::vector > points; + points.push_back(point); + + for (int i = 0; i < dim; ++i) + point(i) = dim-i; + points.push_back(point); + + std::vector > tensors; + std::vector > gradients; + tensors.resize(2); + gradients.resize(2); + + deallog << "->value_list:" << std::endl; + foo->value_list(points, tensors); + PrintTensor::print_tensor(tensors[0]); + deallog << std::endl; + PrintTensor::print_tensor(tensors[1]); + deallog << std::endl; + + deallog << "->gradient_list:" << std::endl; + foo->gradient_list(points, gradients); + PrintTensor::print_tensor(gradients[0]); + deallog << std::endl; + PrintTensor::print_tensor(gradients[1]); + deallog << std::endl; +} + + + +int main() +{ + std::string logname = JobIdentifier::base_name(__FILE__) + std::string("/output"); + std::ofstream logfile(logname.c_str()); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + check<1,1>(); + check<2,1>(); + check<3,1>(); + check<4,1>(); + + check<1,2>(); + check<2,2>(); + check<3,2>(); + check<4,2>(); + + check<1,3>(); + check<2,3>(); + check<3,3>(); + check<4,3>(); +} + diff --git a/tests/base/functions_09/cmp/generic b/tests/base/functions_09/cmp/generic new file mode 100644 index 0000000000..cb7e8bdab6 --- /dev/null +++ b/tests/base/functions_09/cmp/generic @@ -0,0 +1,133 @@ + +DEAL::ConstantTensorFunction<1, 1>: +DEAL::->value: +DEAL::0 +DEAL::->gradient: +DEAL::0 +DEAL::->value_list: +DEAL::0 +DEAL::0 +DEAL::->gradient_list: +DEAL::0 +DEAL::0 +DEAL::ConstantTensorFunction<2, 1>: +DEAL::->value: +DEAL::0 +DEAL::->gradient: +DEAL::0 +DEAL::->value_list: +DEAL::0 +DEAL::0 +DEAL::->gradient_list: +DEAL::0 +DEAL::0 +DEAL::ConstantTensorFunction<3, 1>: +DEAL::->value: +DEAL::0 +DEAL::->gradient: +DEAL::0 +DEAL::->value_list: +DEAL::0 +DEAL::0 +DEAL::->gradient_list: +DEAL::0 +DEAL::0 +DEAL::ConstantTensorFunction<4, 1>: +DEAL::->value: +DEAL::0 +DEAL::->gradient: +DEAL::0 +DEAL::->value_list: +DEAL::0 +DEAL::0 +DEAL::->gradient_list: +DEAL::0 +DEAL::0 +DEAL::ConstantTensorFunction<1, 2>: +DEAL::->value: +DEAL::0 1.00000 +DEAL::->gradient: +DEAL::0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 +DEAL::0 1.00000 +DEAL::->gradient_list: +DEAL::0 0 0 0 +DEAL::0 0 0 0 +DEAL::ConstantTensorFunction<2, 2>: +DEAL::->value: +DEAL::0 1.00000 10.0000 11.0000 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 10.0000 11.0000 +DEAL::0 1.00000 10.0000 11.0000 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<3, 2>: +DEAL::->value: +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<4, 2>: +DEAL::->value: +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 1000.00 1001.00 1010.00 1011.00 1100.00 1101.00 1110.00 1111.00 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 1000.00 1001.00 1010.00 1011.00 1100.00 1101.00 1110.00 1111.00 +DEAL::0 1.00000 10.0000 11.0000 100.000 101.000 110.000 111.000 1000.00 1001.00 1010.00 1011.00 1100.00 1101.00 1110.00 1111.00 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<1, 3>: +DEAL::->value: +DEAL::0 1.00000 2.00000 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 2.00000 +DEAL::0 1.00000 2.00000 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<2, 3>: +DEAL::->value: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<3, 3>: +DEAL::->value: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::ConstantTensorFunction<4, 3>: +DEAL::->value: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 1000.00 1001.00 1002.00 1010.00 1011.00 1012.00 1020.00 1021.00 1022.00 1100.00 1101.00 1102.00 1110.00 1111.00 1112.00 1120.00 1121.00 1122.00 1200.00 1201.00 1202.00 1210.00 1211.00 1212.00 1220.00 1221.00 1222.00 2000.00 2001.00 2002.00 2010.00 2011.00 2012.00 2020.00 2021.00 2022.00 2100.00 2101.00 2102.00 2110.00 2111.00 2112.00 2120.00 2121.00 2122.00 2200.00 2201.00 2202.00 2210.00 2211.00 2212.00 2220.00 2221.00 2222.00 +DEAL::->gradient: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::->value_list: +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 1000.00 1001.00 1002.00 1010.00 1011.00 1012.00 1020.00 1021.00 1022.00 1100.00 1101.00 1102.00 1110.00 1111.00 1112.00 1120.00 1121.00 1122.00 1200.00 1201.00 1202.00 1210.00 1211.00 1212.00 1220.00 1221.00 1222.00 2000.00 2001.00 2002.00 2010.00 2011.00 2012.00 2020.00 2021.00 2022.00 2100.00 2101.00 2102.00 2110.00 2111.00 2112.00 2120.00 2121.00 2122.00 2200.00 2201.00 2202.00 2210.00 2211.00 2212.00 2220.00 2221.00 2222.00 +DEAL::0 1.00000 2.00000 10.0000 11.0000 12.0000 20.0000 21.0000 22.0000 100.000 101.000 102.000 110.000 111.000 112.000 120.000 121.000 122.000 200.000 201.000 202.000 210.000 211.000 212.000 220.000 221.000 222.000 1000.00 1001.00 1002.00 1010.00 1011.00 1012.00 1020.00 1021.00 1022.00 1100.00 1101.00 1102.00 1110.00 1111.00 1112.00 1120.00 1121.00 1122.00 1200.00 1201.00 1202.00 1210.00 1211.00 1212.00 1220.00 1221.00 1222.00 2000.00 2001.00 2002.00 2010.00 2011.00 2012.00 2020.00 2021.00 2022.00 2100.00 2101.00 2102.00 2110.00 2111.00 2112.00 2120.00 2121.00 2122.00 2200.00 2201.00 2202.00 2210.00 2211.00 2212.00 2220.00 2221.00 2222.00 +DEAL::->gradient_list: +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +DEAL::0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 diff --git a/tests/base/functions_singularity.cc b/tests/base/functions_singularity.cc index 284a6a89c1..8e9ddd587c 100644 --- a/tests/base/functions_singularity.cc +++ b/tests/base/functions_singularity.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2007, 2008, 2010 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. // -//----------------------------------------------------------------------------- +// 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 Singularity functions and SingularityGrad functions for @@ -33,8 +37,8 @@ template void check_function_consistency( - const Function& f, - const Function& gradf, + const Function &f, + const Function &gradf, unsigned int sub) { QMidpoint<1> mid; @@ -42,29 +46,29 @@ check_function_consistency( std::vector > fg1(quadrature.size()); std::vector > > fg2(quadrature.size(), std::vector >(1)); - + std::vector g1(quadrature.size()); std::vector > g2(quadrature.size(), Vector(dim)); - - // Derivative values are in fg1, - // fg2, g1, and g2 + + // Derivative values are in fg1, + // fg2, g1, and g2 f.gradient_list(quadrature.get_points(), fg1, 0); f.vector_gradient_list(quadrature.get_points(), fg2); gradf.vector_value_list(quadrature.get_points(), g2); deallog << "Gradient consistency "; - - for (unsigned int d=0;d 1.e-14) - deallog << ' ' << i << ':' << g1[i]-g2[i](d); - if (std::fabs(g1[i]-fg2[i][0][d]) > 1.e-14) - deallog << ' ' << i << ';' << g1[i]-fg2[i][0][d]; - if (std::fabs(g1[i]-fg1[i][d]) > 1.e-14) - deallog << ' ' << i << '#' << g1[i]-fg1[i][d]; - } + for (unsigned int i=0; i 1.e-14) + deallog << ' ' << i << ':' << g1[i]-g2[i](d); + if (std::fabs(g1[i]-fg2[i][0][d]) > 1.e-14) + deallog << ' ' << i << ';' << g1[i]-fg2[i][0][d]; + if (std::fabs(g1[i]-fg1[i][d]) > 1.e-14) + deallog << ' ' << i << '#' << g1[i]-fg1[i][d]; + } } deallog << std::endl; } @@ -72,153 +76,153 @@ check_function_consistency( template void -check_function_derivative(const Functions::FlowFunction& f, - unsigned int sub, - std::ostream& out) +check_function_derivative(const Functions::FlowFunction &f, + unsigned int sub, + std::ostream &out) { DerivativeTestFunction dtest1(f, 1.e-2); DerivativeTestFunction dtest2(f, 2.e-2); - // Prepare a vector with a single - // patch stretching over the cube - // [-1,1]^dim + // Prepare a vector with a single + // patch stretching over the cube + // [-1,1]^dim std::vector > patches(1); unsigned int vertex_number = 0; - for (unsigned int iz=0;iz < ((dim>2) ? 2 : 1) ;++iz) - for (unsigned int iy=0;iy < ((dim>1) ? 2 : 1) ;++iy) - for (unsigned int ix=0;ix < 2 ;++ix) - { - if (dim>0) patches[0].vertices[vertex_number](0) = -1. + 2.*ix; - if (dim>1) patches[0].vertices[vertex_number](1) = -1. + 2.*iy; - if (dim>2) patches[0].vertices[vertex_number](2) = -1. + 2.*iz; - ++vertex_number; - } - for (unsigned int i=0;i::faces_per_cell;++i) + for (unsigned int iz=0; iz < ((dim>2) ? 2 : 1) ; ++iz) + for (unsigned int iy=0; iy < ((dim>1) ? 2 : 1) ; ++iy) + for (unsigned int ix=0; ix < 2 ; ++ix) + { + if (dim>0) patches[0].vertices[vertex_number](0) = -1. + 2.*ix; + if (dim>1) patches[0].vertices[vertex_number](1) = -1. + 2.*iy; + if (dim>2) patches[0].vertices[vertex_number](2) = -1. + 2.*iz; + ++vertex_number; + } + for (unsigned int i=0; i::faces_per_cell; ++i) patches[0].neighbors[i] = numbers::invalid_unsigned_int; patches[0].patch_index = 0; patches[0].n_subdivisions = sub; patches[0].points_are_available = false; vertex_number = 1; - for (unsigned int d=0;d > points(vertex_number); const double h = 2./sub; vertex_number = 0; - for (unsigned int iz=0;iz <= ((dim>2) ? sub : 0) ;++iz) - for (unsigned int iy=0;iy <= ((dim>1) ? sub : 0) ;++iy) - for (unsigned int ix=0;ix <= sub ;++ix) - { - if (dim>0) points[vertex_number](0) = -1.+ix*h; - if (dim>1) points[vertex_number](1) = -1.+iy*h; - if (dim>2) points[vertex_number](2) = -1.+iz*h; - ++vertex_number; - } - + for (unsigned int iz=0; iz <= ((dim>2) ? sub : 0) ; ++iz) + for (unsigned int iy=0; iy <= ((dim>1) ? sub : 0) ; ++iy) + for (unsigned int ix=0; ix <= sub ; ++ix) + { + if (dim>0) points[vertex_number](0) = -1.+ix*h; + if (dim>1) points[vertex_number](1) = -1.+iy*h; + if (dim>2) points[vertex_number](2) = -1.+iz*h; + ++vertex_number; + } + std::vector > values(points.size(), Vector(f.n_components)); std::vector > values2(f.n_components, - std::vector(points.size())); + std::vector(points.size())); f.vector_value_list(points, values); f.vector_values(points, values2); - for (unsigned int i=0;i 1e-10) - patches[0].data(j, i) = values[i](j); - else - patches[0].data(j, i) = 0; - if (values[i](j) != values2[j][i]) - deallog << "Error values (" << i << ',' << j << ") : " - << values[i](j) << " != " << values2[j][i] << std::endl; + // generate data, but + // truncate too small values + // to avoid output that + // depends on round-off + if (std::fabs (values[i](j)) > 1e-10) + patches[0].data(j, i) = values[i](j); + else + patches[0].data(j, i) = 0; + if (values[i](j) != values2[j][i]) + deallog << "Error values (" << i << ',' << j << ") : " + << values[i](j) << " != " << values2[j][i] << std::endl; } - + deallog << "Gradients "; - // Compute gradients and difference approximations + // Compute gradients and difference approximations std::vector > > - gradients(f.n_components, std::vector >(points.size())); + gradients(f.n_components, std::vector >(points.size())); std::vector > > - gradients1(points.size(), std::vector >(f.n_components)); + gradients1(points.size(), std::vector >(f.n_components)); std::vector > > - gradients2(points.size(), std::vector >(f.n_components)); - + gradients2(points.size(), std::vector >(f.n_components)); + f.vector_gradients(points, gradients); dtest1.vector_gradient_list(points, gradients1); dtest2.vector_gradient_list(points, gradients2); - // Compare gradients and difference quotients - for (unsigned int k=0;k d1 = gradients1[i][k] - gradients[k][i]; - Tensor<1,dim> d2 = gradients2[i][k] - gradients[k][i]; - - // If the difference is - // already small, we are fine - if (d1.norm() > 1.e-13) - { - // Check for - // convergence. For full - // 4th order, gradients2 - // should be 16 times as - // large, so let's be a - // bit generous - if (d2.norm() < 12.* d1.norm()) - { - deallog << "Gradient error: point " << i - << " (" << points[i] << " )" - << " comp " << k -// << " norms " << d1.norm() << " " << d2.norm() - << std::endl; - for (unsigned int d=0;d d1 = gradients1[i][k] - gradients[k][i]; + Tensor<1,dim> d2 = gradients2[i][k] - gradients[k][i]; + + // If the difference is + // already small, we are fine + if (d1.norm() > 1.e-13) + { + // Check for + // convergence. For full + // 4th order, gradients2 + // should be 16 times as + // large, so let's be a + // bit generous + if (d2.norm() < 12.* d1.norm()) + { + deallog << "Gradient error: point " << i + << " (" << points[i] << " )" + << " comp " << k +// << " norms " << d1.norm() << " " << d2.norm() + << std::endl; + for (unsigned int d=0; d 1.e-13) - deallog << "Divergence " << k << " " - << div << std::endl; + deallog << "Divergence " << k << " " + << div << std::endl; } deallog << "tested" << std::endl; - + f.vector_laplacian_list(points, values); f.vector_laplacians(points, values2); double sum = 0.; - for (unsigned int i=0;i names(f.n_components); - for (unsigned int i=0;i @@ -23,170 +23,8 @@ #include #include -#include #include -template -void -fill_vector (std::vector *>& quadratures) -{ - quadratures.push_back (new QMidpoint()); - quadratures.push_back (new QTrapez()); - quadratures.push_back (new QSimpson()); - quadratures.push_back (new QMilne()); - quadratures.push_back (new QWeddle()); - for (unsigned int i=0;i<9;++i) - { - quadratures.push_back (new QGauss(i)); - } - QMilne<1> q1d; - quadratures.push_back (new Quadrature(q1d)); - for (unsigned int i=2;i<8;++i) - { - quadratures.push_back (new QGaussLobatto(i)); - } -} - -template -void -check_cells (std::vector*>& quadratures) -{ - Quadrature quadrature; - for (unsigned int n=0; n > &points=quadrature.get_points(); - const std::vector &weights=quadrature.get_weights(); - - deallog << "Quadrature no." << n; - - unsigned int i=0; - double quadrature_int=0; - double exact_int=0; - double err = 0; - - do - { - ++i; - - quadrature_int=0; - // Check the polynomial x^i*y^i - - for (unsigned int x=0; x(points[x](2)), i*1.0); - case 2: - f *= std::pow(static_cast(points[x](1)), i*1.0); - case 1: - f *= std::pow(static_cast(points[x](0)), i*1.0); - } - quadrature_int+=f*weights[x]; - } - - // the exact integral is 1/(i+1) - exact_int=1./std::pow(static_cast(i+1),dim); - err = std::fabs(quadrature_int-exact_int); - } - while (err<1e-14); - // Uncomment here for testing -// deallog << " (Int " << quadrature_int << ',' << exact_int << ")"; - deallog << " is exact for polynomials of degree " << i-1 << std::endl; - - if (dim==1) - { - // check the ordering of - // the quadrature points - bool in_order=true; - for (unsigned int x=1; x -void -check_faces (const std::vector*>& quadratures, const bool sub) -{ - if (sub) - deallog.push("subfaces"); - else - deallog.push("faces"); - - for (unsigned int n=0; n quadrature (sub == false? - QProjector::project_to_all_faces(*quadratures[n]) : - QProjector::project_to_all_subfaces(*quadratures[n])); - const std::vector > &points=quadrature.get_points(); - const std::vector &weights=quadrature.get_weights(); - - deallog << "Quadrature no." << n; - - unsigned int i=0; - long double quadrature_int=0; - double exact_int=0; - double err = 0; - - do - { - ++i; - - quadrature_int=0; - // Check the polynomial - // x^i*y^i*z^i - - for (unsigned int x=0; x void test () { - // Output normal directions for each face - for (unsigned int f=0;f::faces_per_cell;++f) + // Output normal directions for each face + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "Face " << f << ": n = ( "; - for (unsigned int d=0;d::unit_normal_direction[f]) - deallog << GeometryInfo::unit_normal_orientation[f]; - else - deallog << '0'; - } + for (unsigned int d=0; d::unit_normal_direction[f]) + deallog << GeometryInfo::unit_normal_orientation[f]; + else + deallog << '0'; + } deallog << " )" << std::endl; } - - + + Point p; for (unsigned int ref_case_no=1; ref_case_no<=RefinementPossibilities::isotropic_refinement; ++ref_case_no) { RefinementCase ref_case(ref_case_no); - + deallog << "RefinementCase=" << static_cast (ref_case) << std::endl; // generate N random points in // [-2:2]^d, and transform them @@ -61,30 +65,30 @@ void test () // and child cell const unsigned int N = 7; for (unsigned int i=0; i::is_inside_unit_cell (p) << std::endl; - for (unsigned int c=0; c::n_children(ref_case); ++c) - { - const Point q = GeometryInfo::cell_to_child_coordinates(p,c); - const Point pp = GeometryInfo::child_to_cell_coordinates(q,c); - - deallog << " " << c << " [" << q << "] [" << pp << ']' - << std::endl; - Assert ((p-pp).square() < 1e-15*1e-15, ExcInternalError()); - Assert (GeometryInfo::is_inside_unit_cell (p) == - GeometryInfo::is_inside_unit_cell (pp), - ExcInternalError()); - } - } + { + for (unsigned int d=0; d::is_inside_unit_cell (p) << std::endl; + for (unsigned int c=0; c::n_children(ref_case); ++c) + { + const Point q = GeometryInfo::cell_to_child_coordinates(p,c); + const Point pp = GeometryInfo::child_to_cell_coordinates(q,c); + + deallog << " " << c << " [" << q << "] [" << pp << ']' + << std::endl; + Assert ((p-pp).square() < 1e-15*1e-15, ExcInternalError()); + Assert (GeometryInfo::is_inside_unit_cell (p) == + GeometryInfo::is_inside_unit_cell (pp), + ExcInternalError()); + } + } } } -int main () +int main () { std::ofstream logfile("geometry_info_1/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_2.cc b/tests/base/geometry_info_2.cc index 24b9037208..47839fe1a3 100644 --- a/tests/base/geometry_info_2.cc +++ b/tests/base/geometry_info_2.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_2.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006 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. // -//---------------------------- geometry_info_2.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. +// +// --------------------------------------------------------------------- + // output all integer values and functions of GeometryInfo @@ -25,88 +29,88 @@ template void test () { deallog << "max_children_per_cell " - << GeometryInfo::max_children_per_cell << std::endl; + << GeometryInfo::max_children_per_cell << std::endl; deallog << "faces_per_cell " - << GeometryInfo::faces_per_cell << std::endl; + << GeometryInfo::faces_per_cell << std::endl; deallog << "max_children_per_face " - << GeometryInfo::max_children_per_face << std::endl; + << GeometryInfo::max_children_per_face << std::endl; deallog << "vertices_per_cell " - <::vertices_per_cell << std::endl; + <::vertices_per_cell << std::endl; deallog << "lines_per_cell " - << GeometryInfo::lines_per_cell << std::endl; + << GeometryInfo::lines_per_cell << std::endl; deallog << "quads_per_cell " - << GeometryInfo::quads_per_cell << std::endl; + << GeometryInfo::quads_per_cell << std::endl; deallog << "hexes_per_cell " - << GeometryInfo::hexes_per_cell << std::endl; + << GeometryInfo::hexes_per_cell << std::endl; deallog << "vertices_per_face " - << GeometryInfo::vertices_per_face << std::endl; + << GeometryInfo::vertices_per_face << std::endl; deallog << "lines_per_face " - << GeometryInfo::lines_per_face << std::endl; + << GeometryInfo::lines_per_face << std::endl; deallog << "quads_per_face " - << GeometryInfo::quads_per_face << std::endl; + << GeometryInfo::quads_per_face << std::endl; - for (unsigned int f=0;f::faces_per_cell;++f) + for (unsigned int f=0; f::faces_per_cell; ++f) deallog << "face normal" << f << ' ' - << (GeometryInfo::unit_normal_orientation[f] > 0. - ? '+' : '-') - << "x" << GeometryInfo::unit_normal_direction[f] - << std::endl; + << (GeometryInfo::unit_normal_orientation[f] > 0. + ? '+' : '-') + << "x" << GeometryInfo::unit_normal_direction[f] + << std::endl; - for (unsigned int f=0;f::faces_per_cell;++f) + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "face_children" << f << "[true ]"; - for (unsigned int v=0;v < GeometryInfo::max_children_per_face;++v) - deallog << ' ' - << GeometryInfo::child_cell_on_face(RefinementCase::isotropic_refinement,f, v, true); + for (unsigned int v=0; v < GeometryInfo::max_children_per_face; ++v) + deallog << ' ' + << GeometryInfo::child_cell_on_face(RefinementCase::isotropic_refinement,f, v, true); deallog << std::endl; deallog << "face_children" << f << "[false]"; - for (unsigned int v=0;v < GeometryInfo::max_children_per_face;++v) - deallog << ' ' - << GeometryInfo::child_cell_on_face(RefinementCase::isotropic_refinement,f, v, false); + for (unsigned int v=0; v < GeometryInfo::max_children_per_face; ++v) + deallog << ' ' + << GeometryInfo::child_cell_on_face(RefinementCase::isotropic_refinement,f, v, false); deallog << std::endl; } - - for (unsigned int f=0;f::faces_per_cell;++f) + + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "face_vertices" << f << "[true ]"; - for (unsigned int v=0;v < GeometryInfo::vertices_per_face;++v) - deallog << ' ' - << GeometryInfo::face_to_cell_vertices(f, v, true); + for (unsigned int v=0; v < GeometryInfo::vertices_per_face; ++v) + deallog << ' ' + << GeometryInfo::face_to_cell_vertices(f, v, true); deallog << std::endl; deallog << "face_vertices" << f << "[false]"; - for (unsigned int v=0;v < GeometryInfo::vertices_per_face;++v) - deallog << ' ' - << GeometryInfo::face_to_cell_vertices(f, v, false); + for (unsigned int v=0; v < GeometryInfo::vertices_per_face; ++v) + deallog << ' ' + << GeometryInfo::face_to_cell_vertices(f, v, false); deallog << std::endl; } - - for (unsigned int f=0;f::faces_per_cell;++f) + + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "face_lines" << f << "[true ]"; - for (unsigned int v=1;v <= GeometryInfo::lines_per_face;++v) - deallog << ' ' - << GeometryInfo::face_to_cell_lines(f, v-1, true); + for (unsigned int v=1; v <= GeometryInfo::lines_per_face; ++v) + deallog << ' ' + << GeometryInfo::face_to_cell_lines(f, v-1, true); deallog << std::endl; deallog << "face_lines" << f << "[false]"; - for (unsigned int v=1;v <= GeometryInfo::lines_per_face;++v) - deallog << ' ' - << GeometryInfo::face_to_cell_lines(f, v-1, false); + for (unsigned int v=1; v <= GeometryInfo::lines_per_face; ++v) + deallog << ' ' + << GeometryInfo::face_to_cell_lines(f, v-1, false); deallog << std::endl; } - - for (unsigned int f=0;f::lines_per_cell;++f) + + for (unsigned int f=0; f::lines_per_cell; ++f) { deallog << "line_vertices" << f; - for (unsigned int v=0;v < GeometryInfo<1>::vertices_per_cell;++v) - deallog << ' ' - << GeometryInfo::line_to_cell_vertices(f, v); + for (unsigned int v=0; v < GeometryInfo<1>::vertices_per_cell; ++v) + deallog << ' ' + << GeometryInfo::line_to_cell_vertices(f, v); deallog << std::endl; - } + } } -int main () +int main () { std::ofstream logfile("geometry_info_2/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_3.cc b/tests/base/geometry_info_3.cc index 4d3c7c8277..9c79c24889 100644 --- a/tests/base/geometry_info_3.cc +++ b/tests/base/geometry_info_3.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_3.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006 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. // -//---------------------------- geometry_info_3.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. +// +// --------------------------------------------------------------------- + // check GeometryInfo::face_to_cell_vertices @@ -26,28 +30,28 @@ template void test () { deallog << "Checking in " << dim << "d" << std::endl; - - for (unsigned int f=0;f::faces_per_cell;++f) - for (unsigned int v=0;v::vertices_per_face;++v) + + for (unsigned int f=0; f::faces_per_cell; ++f) + for (unsigned int v=0; v::vertices_per_face; ++v) { - deallog << "Face " << f << ", vertex=" << v << ": "; - deallog << GeometryInfo::face_to_cell_vertices(f,v,true) - << std::endl; + deallog << "Face " << f << ", vertex=" << v << ": "; + deallog << GeometryInfo::face_to_cell_vertices(f,v,true) + << std::endl; } if (dim == 3) - for (unsigned int f=0;f::faces_per_cell;++f) - for (unsigned int v=0;v::vertices_per_face;++v) - { - deallog << "Face " << f << ", vertex=" << v - << " (reverse orientation): "; - deallog << GeometryInfo::face_to_cell_vertices(f,v,false) - << std::endl; - } + for (unsigned int f=0; f::faces_per_cell; ++f) + for (unsigned int v=0; v::vertices_per_face; ++v) + { + deallog << "Face " << f << ", vertex=" << v + << " (reverse orientation): "; + deallog << GeometryInfo::face_to_cell_vertices(f,v,false) + << std::endl; + } } -int main () +int main () { std::ofstream logfile("geometry_info_3/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_4.cc b/tests/base/geometry_info_4.cc index 26f6f17ab0..7707570a79 100644 --- a/tests/base/geometry_info_4.cc +++ b/tests/base/geometry_info_4.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_4.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006, 2009 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. // -//---------------------------- geometry_info_4.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. +// +// --------------------------------------------------------------------- + // check GeometryInfo::d_linear_shape_function @@ -27,27 +31,27 @@ void test () { deallog << "Checking in " << dim << "d" << std::endl; - // check phi_i(v_j) = delta_{ij} - for (unsigned int i=0;i::vertices_per_cell;++i) - for (unsigned int v=0;v::vertices_per_cell;++v) + // check phi_i(v_j) = delta_{ij} + for (unsigned int i=0; i::vertices_per_cell; ++i) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - const double - phi_i = GeometryInfo::d_linear_shape_function(GeometryInfo::unit_cell_vertex(v),i); - - deallog << phi_i << std::endl; - Assert (phi_i == (i==v ? 1 : 0), - ExcInternalError()); + const double + phi_i = GeometryInfo::d_linear_shape_function(GeometryInfo::unit_cell_vertex(v),i); + + deallog << phi_i << std::endl; + Assert (phi_i == (i==v ? 1 : 0), + ExcInternalError()); } - // check that - // sum_i phi_i(x) == 1 - // at all points. do so at every - // vertex, and then at the center - for (unsigned int v=0;v::vertices_per_cell;++v) + // check that + // sum_i phi_i(x) == 1 + // at all points. do so at every + // vertex, and then at the center + for (unsigned int v=0; v::vertices_per_cell; ++v) { double s = 0; - for (unsigned int i=0;i::vertices_per_cell;++i) - s += GeometryInfo::d_linear_shape_function(GeometryInfo::unit_cell_vertex(v),i); + for (unsigned int i=0; i::vertices_per_cell; ++i) + s += GeometryInfo::d_linear_shape_function(GeometryInfo::unit_cell_vertex(v),i); Assert (s == 1, ExcInternalError()); deallog << "Sum of shape functions: " << s << std::endl; @@ -56,9 +60,9 @@ void test () Point center; for (unsigned int i=0; i::vertices_per_cell;++i) + for (unsigned int i=0; i::vertices_per_cell; ++i) s += GeometryInfo::d_linear_shape_function(center,i); Assert (s == 1, ExcInternalError()); @@ -67,7 +71,7 @@ void test () } -int main () +int main () { std::ofstream logfile("geometry_info_4/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_5.cc b/tests/base/geometry_info_5.cc index 3a35506e90..36535f9a25 100644 --- a/tests/base/geometry_info_5.cc +++ b/tests/base/geometry_info_5.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_5.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006, 2009 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. // -//---------------------------- geometry_info_5.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. +// +// --------------------------------------------------------------------- + // check GeometryInfo::d_linear_shape_function_gradient @@ -27,28 +31,28 @@ void test () { deallog << "Checking in " << dim << "d" << std::endl; - // check phi_i(v_j) = delta_{ij} - for (unsigned int i=0;i::vertices_per_cell;++i) - for (unsigned int v=0;v::vertices_per_cell;++v) + // check phi_i(v_j) = delta_{ij} + for (unsigned int i=0; i::vertices_per_cell; ++i) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - const Tensor<1,dim> - phi_i_grad - = GeometryInfo::d_linear_shape_function_gradient(GeometryInfo::unit_cell_vertex(v),i); - - deallog << phi_i_grad << std::endl; + const Tensor<1,dim> + phi_i_grad + = GeometryInfo::d_linear_shape_function_gradient(GeometryInfo::unit_cell_vertex(v),i); + + deallog << phi_i_grad << std::endl; } - // check that - // sum_i phi_i(x) == const - // at all points by verifying that the - // gradient of the sum of shape functions - // is zero. do so at every vertex, and then - // at the center - for (unsigned int v=0;v::vertices_per_cell;++v) + // check that + // sum_i phi_i(x) == const + // at all points by verifying that the + // gradient of the sum of shape functions + // is zero. do so at every vertex, and then + // at the center + for (unsigned int v=0; v::vertices_per_cell; ++v) { Tensor<1,dim> s; - for (unsigned int i=0;i::vertices_per_cell;++i) - s += GeometryInfo::d_linear_shape_function_gradient(GeometryInfo::unit_cell_vertex(v),i); + for (unsigned int i=0; i::vertices_per_cell; ++i) + s += GeometryInfo::d_linear_shape_function_gradient(GeometryInfo::unit_cell_vertex(v),i); Assert (s.norm() == 0, ExcInternalError()); deallog << "Sum of shape functions: " << s << std::endl; @@ -57,9 +61,9 @@ void test () Point center; for (unsigned int i=0; i s; - for (unsigned int i=0;i::vertices_per_cell;++i) + for (unsigned int i=0; i::vertices_per_cell; ++i) s += GeometryInfo::d_linear_shape_function_gradient(center,i); Assert (s.norm() == 0, ExcInternalError()); @@ -68,7 +72,7 @@ void test () } -int main () +int main () { std::ofstream logfile("geometry_info_5/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_6.cc b/tests/base/geometry_info_6.cc index d9d95e317a..756f2f1c38 100644 --- a/tests/base/geometry_info_6.cc +++ b/tests/base/geometry_info_6.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_6.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006, 2009 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. // -//---------------------------- geometry_info_6.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. +// +// --------------------------------------------------------------------- + // check GeometryInfo::alternating_form_at_vertices @@ -27,111 +31,111 @@ void test () { deallog << "Checking in " << dim << "d" << std::endl; - // check the determinant of the - // transformation for the reference - // cell. the determinant should be one in - // that case + // check the determinant of the + // transformation for the reference + // cell. the determinant should be one in + // that case { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); Tensor<0,dim> determinants[GeometryInfo::vertices_per_cell]; GeometryInfo::alternating_form_at_vertices (vertices, - determinants); - for (unsigned int v=0;v::vertices_per_cell;++v) + determinants); + for (unsigned int v=0; v::vertices_per_cell; ++v) { - deallog << "Reference cell: " << determinants[v] - << std::endl; - Assert (static_cast(determinants[v]) == 1, ExcInternalError()); + deallog << "Reference cell: " << determinants[v] + << std::endl; + Assert (static_cast(determinants[v]) == 1, ExcInternalError()); } } - // try the same, but move squash the cell - // in the x-direction by a factor of 10 + // try the same, but move squash the cell + // in the x-direction by a factor of 10 { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - vertices[v] = GeometryInfo::unit_cell_vertex(v); - vertices[v][0] /= 10; + vertices[v] = GeometryInfo::unit_cell_vertex(v); + vertices[v][0] /= 10; } Tensor<0,dim> determinants[GeometryInfo::vertices_per_cell]; GeometryInfo::alternating_form_at_vertices (vertices, - determinants); - for (unsigned int v=0;v::vertices_per_cell;++v) + determinants); + for (unsigned int v=0; v::vertices_per_cell; ++v) { - deallog << "Squashed cell: " << determinants[v] - << std::endl; - Assert (static_cast(determinants[v]) == 0.1, ExcInternalError()); + deallog << "Squashed cell: " << determinants[v] + << std::endl; + Assert (static_cast(determinants[v]) == 0.1, ExcInternalError()); } } - // try the same, but move squash the cell - // in the x-direction by a factor of 10 and - // rotate it around the z-axis (unless in - // 1d) + // try the same, but move squash the cell + // in the x-direction by a factor of 10 and + // rotate it around the z-axis (unless in + // 1d) { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - vertices[v] = GeometryInfo::unit_cell_vertex(v); - vertices[v][0] /= 10; - - if (dim > 1) - { - std::swap (vertices[v][0], vertices[v][1]); - vertices[v][1] *= -1; - } + vertices[v] = GeometryInfo::unit_cell_vertex(v); + vertices[v][0] /= 10; + + if (dim > 1) + { + std::swap (vertices[v][0], vertices[v][1]); + vertices[v][1] *= -1; + } } Tensor<0,dim> determinants[GeometryInfo::vertices_per_cell]; GeometryInfo::alternating_form_at_vertices (vertices, - determinants); - for (unsigned int v=0;v::vertices_per_cell;++v) + determinants); + for (unsigned int v=0; v::vertices_per_cell; ++v) { - deallog << "Squashed+rotated cell: " << determinants[v] - << std::endl; - Assert (static_cast(determinants[v]) == 0.1, ExcInternalError()); + deallog << "Squashed+rotated cell: " << determinants[v] + << std::endl; + Assert (static_cast(determinants[v]) == 0.1, ExcInternalError()); } } - // pinched cell + // pinched cell { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); vertices[1] /= 10; - + Tensor<0,dim> determinants[GeometryInfo::vertices_per_cell]; GeometryInfo::alternating_form_at_vertices (vertices, - determinants); - for (unsigned int v=0;v::vertices_per_cell;++v) + determinants); + for (unsigned int v=0; v::vertices_per_cell; ++v) deallog << "Pinched cell: " << determinants[v] - << std::endl; + << std::endl; } - // inverted cell + // inverted cell { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); std::swap (vertices[0], vertices[1]); - + Tensor<0,dim> determinants[GeometryInfo::vertices_per_cell]; GeometryInfo::alternating_form_at_vertices (vertices, - determinants); - for (unsigned int v=0;v::vertices_per_cell;++v) + determinants); + for (unsigned int v=0; v::vertices_per_cell; ++v) deallog << "Inverted cell: " << determinants[v] - << std::endl; + << std::endl; } } -int main () +int main () { std::ofstream logfile("geometry_info_6/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_7.cc b/tests/base/geometry_info_7.cc index fde09bee32..41b0aefa82 100644 --- a/tests/base/geometry_info_7.cc +++ b/tests/base/geometry_info_7.cc @@ -1,15 +1,19 @@ -//---------------------------- geometry_info_7.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2006, 2009 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. // -//---------------------------- geometry_info_7.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. +// +// --------------------------------------------------------------------- + // check GeometryInfo::alternating_form_at_vertices for the faces of cells @@ -27,166 +31,166 @@ void test () { deallog << "Checking in " << dim << "d" << std::endl; - // check the determinant of the - // transformation for the reference - // cell. the determinant should be one in - // that case + // check the determinant of the + // transformation for the reference + // cell. the determinant should be one in + // that case { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); for (unsigned int f=0; f::faces_per_cell; ++f) { - Point face_vertices[GeometryInfo::vertices_per_face]; - for (unsigned int v=0; v::vertices_per_face; ++v) - face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; - - Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; - GeometryInfo::alternating_form_at_vertices (face_vertices, - alternating_forms); - for (unsigned int v=0;v::vertices_per_face;++v) - { - deallog << "Reference cell: face " << f << ": " << alternating_forms[v] - << std::endl; - Assert (alternating_forms[v].norm() == 1, ExcInternalError()); - } + Point face_vertices[GeometryInfo::vertices_per_face]; + for (unsigned int v=0; v::vertices_per_face; ++v) + face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; + + Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; + GeometryInfo::alternating_form_at_vertices (face_vertices, + alternating_forms); + for (unsigned int v=0; v::vertices_per_face; ++v) + { + deallog << "Reference cell: face " << f << ": " << alternating_forms[v] + << std::endl; + Assert (alternating_forms[v].norm() == 1, ExcInternalError()); + } } } - - // try the same, but move squash the cell - // in the x-direction by a factor of 10 + + // try the same, but move squash the cell + // in the x-direction by a factor of 10 { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - vertices[v] = GeometryInfo::unit_cell_vertex(v); - vertices[v][0] /= 10; + vertices[v] = GeometryInfo::unit_cell_vertex(v); + vertices[v][0] /= 10; } for (unsigned int f=0; f::faces_per_cell; ++f) { - Point face_vertices[GeometryInfo::vertices_per_face]; - for (unsigned int v=0; v::vertices_per_face; ++v) - face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; - Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; - GeometryInfo::alternating_form_at_vertices (face_vertices, - alternating_forms); - for (unsigned int v=0;v::vertices_per_face;++v) - { - deallog << "Squashed cell: face " << f << ": " << alternating_forms[v] - << std::endl; - // faces 0,1 should be - // unaffected, but all - // other faces are - // squashed - if (f < 2) - Assert (alternating_forms[v].norm() == 1, ExcInternalError()) - else - Assert (alternating_forms[v].norm() == 0.1, ExcInternalError()); - } + Point face_vertices[GeometryInfo::vertices_per_face]; + for (unsigned int v=0; v::vertices_per_face; ++v) + face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; + Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; + GeometryInfo::alternating_form_at_vertices (face_vertices, + alternating_forms); + for (unsigned int v=0; v::vertices_per_face; ++v) + { + deallog << "Squashed cell: face " << f << ": " << alternating_forms[v] + << std::endl; + // faces 0,1 should be + // unaffected, but all + // other faces are + // squashed + if (f < 2) + Assert (alternating_forms[v].norm() == 1, ExcInternalError()) + else + Assert (alternating_forms[v].norm() == 0.1, ExcInternalError()); + } } } - - // try the same, but move squash the cell - // in the x-direction by a factor of 10 and - // rotate it around the z-axis (unless in - // 1d) + + // try the same, but move squash the cell + // in the x-direction by a factor of 10 and + // rotate it around the z-axis (unless in + // 1d) { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) { - vertices[v] = GeometryInfo::unit_cell_vertex(v); - vertices[v][0] /= 10; - - if (dim > 1) - { - std::swap (vertices[v][0], vertices[v][1]); - vertices[v][1] *= -1; - } + vertices[v] = GeometryInfo::unit_cell_vertex(v); + vertices[v][0] /= 10; + + if (dim > 1) + { + std::swap (vertices[v][0], vertices[v][1]); + vertices[v][1] *= -1; + } } for (unsigned int f=0; f::faces_per_cell; ++f) { - Point face_vertices[GeometryInfo::vertices_per_face]; - for (unsigned int v=0; v::vertices_per_face; ++v) - face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; - Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; - GeometryInfo::alternating_form_at_vertices (face_vertices, - alternating_forms); - for (unsigned int v=0;v::vertices_per_face;++v) - { - deallog << "Squashed+rotated cell: face " << f << ": " << alternating_forms[v] - << std::endl; - - // in 2d and 3d, faces - // 0,1 should be - // unaffected (just like - // for the squashed cell, - // the rotation has - // nothing to do with - // face numbers though - // the direction of the - // alternating form - // vector would have - // rotated along) - if (f<2) - Assert (alternating_forms[v].norm() == 1, ExcInternalError()) - else - Assert (alternating_forms[v].norm() == 0.1, ExcInternalError()); - } + Point face_vertices[GeometryInfo::vertices_per_face]; + for (unsigned int v=0; v::vertices_per_face; ++v) + face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; + Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; + GeometryInfo::alternating_form_at_vertices (face_vertices, + alternating_forms); + for (unsigned int v=0; v::vertices_per_face; ++v) + { + deallog << "Squashed+rotated cell: face " << f << ": " << alternating_forms[v] + << std::endl; + + // in 2d and 3d, faces + // 0,1 should be + // unaffected (just like + // for the squashed cell, + // the rotation has + // nothing to do with + // face numbers though + // the direction of the + // alternating form + // vector would have + // rotated along) + if (f<2) + Assert (alternating_forms[v].norm() == 1, ExcInternalError()) + else + Assert (alternating_forms[v].norm() == 0.1, ExcInternalError()); + } } } - - // pinched cell + + // pinched cell { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); vertices[1] /= 10; - + for (unsigned int f=0; f::faces_per_cell; ++f) { - Point face_vertices[GeometryInfo::vertices_per_face]; - for (unsigned int v=0; v::vertices_per_face; ++v) - face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; - Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; - GeometryInfo::alternating_form_at_vertices (face_vertices, - alternating_forms); - for (unsigned int v=0;v::vertices_per_face;++v) - deallog << "Pinched cell: face " << f << ": " << alternating_forms[v] - << std::endl; + Point face_vertices[GeometryInfo::vertices_per_face]; + for (unsigned int v=0; v::vertices_per_face; ++v) + face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; + Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; + GeometryInfo::alternating_form_at_vertices (face_vertices, + alternating_forms); + for (unsigned int v=0; v::vertices_per_face; ++v) + deallog << "Pinched cell: face " << f << ": " << alternating_forms[v] + << std::endl; } } - - // inverted cell + + // inverted cell { Point vertices[GeometryInfo::vertices_per_cell]; - for (unsigned int v=0;v::vertices_per_cell;++v) + for (unsigned int v=0; v::vertices_per_cell; ++v) vertices[v] = GeometryInfo::unit_cell_vertex(v); std::swap (vertices[0], vertices[1]); - + for (unsigned int f=0; f::faces_per_cell; ++f) { - Point face_vertices[GeometryInfo::vertices_per_face]; - for (unsigned int v=0; v::vertices_per_face; ++v) - face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; - - Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; - GeometryInfo::alternating_form_at_vertices (face_vertices, - alternating_forms); - for (unsigned int v=0;v::vertices_per_face;++v) - deallog << "Inverted cell: face " << f << ": " << alternating_forms[v] - << std::endl; + Point face_vertices[GeometryInfo::vertices_per_face]; + for (unsigned int v=0; v::vertices_per_face; ++v) + face_vertices[v] = vertices[GeometryInfo::face_to_cell_vertices (f, v)]; + + Tensor<1,dim> alternating_forms[GeometryInfo::vertices_per_face]; + GeometryInfo::alternating_form_at_vertices (face_vertices, + alternating_forms); + for (unsigned int v=0; v::vertices_per_face; ++v) + deallog << "Inverted cell: face " << f << ": " << alternating_forms[v] + << std::endl; } } } -int main () +int main () { std::ofstream logfile("geometry_info_7/output"); deallog.attach(logfile); diff --git a/tests/base/geometry_info_8.cc b/tests/base/geometry_info_8.cc index 6b7fcc04ba..8aa2533e93 100644 --- a/tests/base/geometry_info_8.cc +++ b/tests/base/geometry_info_8.cc @@ -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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include #include @@ -19,26 +35,29 @@ void test_vertices() { deallog << dim << "D:" << std::endl; - for(unsigned int i = 0; i < GeometryInfo::faces_per_cell; ++i) { + for (unsigned int i = 0; i < GeometryInfo::faces_per_cell; ++i) + { - deallog << "face " << i << ":" << std::endl; + deallog << "face " << i << ":" << std::endl; - for(unsigned int o = 0; o < 8; ++o) { - const std::bitset<3> orientation = o; + for (unsigned int o = 0; o < 8; ++o) + { + const std::bitset<3> orientation = o; - deallog << "orientation " << orientation[0] - << ", flip " << orientation[1] - << ", rotation " << orientation[2] - << ":" << std::endl << " "; + deallog << "orientation " << orientation[0] + << ", flip " << orientation[1] + << ", rotation " << orientation[2] + << ":" << std::endl << " "; - for(unsigned int j = 0; j < GeometryInfo::vertices_per_face; ++j) { - deallog << " (" << j << " -> " - << GeometryInfo::face_to_cell_vertices(i, j, orientation[0], orientation[1], orientation[2]) - << " )"; - } - deallog << std::endl; + for (unsigned int j = 0; j < GeometryInfo::vertices_per_face; ++j) + { + deallog << " (" << j << " -> " + << GeometryInfo::face_to_cell_vertices(i, j, orientation[0], orientation[1], orientation[2]) + << " )"; + } + deallog << std::endl; + } } - } } @@ -47,26 +66,29 @@ void test_lines() { deallog << dim << "D:" << std::endl; - for(unsigned int i = 0; i < GeometryInfo::faces_per_cell; ++i) { + for (unsigned int i = 0; i < GeometryInfo::faces_per_cell; ++i) + { - deallog << "face " << i << ":" << std::endl; + deallog << "face " << i << ":" << std::endl; - for(unsigned int o = 0; o < 8; ++o) { - const std::bitset<3> orientation = o; + for (unsigned int o = 0; o < 8; ++o) + { + const std::bitset<3> orientation = o; - deallog << "orientation " << orientation[0] - << ", flip " << orientation[1] - << ", rotation " << orientation[2] - << ":" << std::endl << " "; + deallog << "orientation " << orientation[0] + << ", flip " << orientation[1] + << ", rotation " << orientation[2] + << ":" << std::endl << " "; - for(unsigned int j = 0; j < GeometryInfo::lines_per_face; ++j) { - deallog << " (" << j << " -> " - << GeometryInfo::face_to_cell_lines(i, j, orientation[0], orientation[1], orientation[2]) - << " )"; - } - deallog << std::endl; + for (unsigned int j = 0; j < GeometryInfo::lines_per_face; ++j) + { + deallog << " (" << j << " -> " + << GeometryInfo::face_to_cell_lines(i, j, orientation[0], orientation[1], orientation[2]) + << " )"; + } + deallog << std::endl; + } } - } } diff --git a/tests/base/hierarchical.cc b/tests/base/hierarchical.cc index 917606a020..fe8d2f9a2c 100644 --- a/tests/base/hierarchical.cc +++ b/tests/base/hierarchical.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2003, 2004, 2005, 2008 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. // -//----------------------------------------------------------------------------- +// 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. +// +// --------------------------------------------------------------------- + // generate a hierarchical basis and display the values of the shape // functions at equidistant points. (I needed this output at one point @@ -36,7 +40,7 @@ int main () deallog.threshold_double(1.e-10); const std::vector > - p = Hierarchical::generate_complete_basis (10); + p = Hierarchical::generate_complete_basis (10); const unsigned int div=30; for (unsigned int i=0; i<=div; ++i) diff --git a/tests/base/index_set_01.cc b/tests/base/index_set_01.cc index 4210f41ba1..203d950736 100644 --- a/tests/base/index_set_01.cc +++ b/tests/base/index_set_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // test IndexSet::is_element @@ -34,7 +38,7 @@ void test () for (unsigned int i=0; i indices; + std::vector indices; is1.fill_index_vector (indices); deallog << "Original index set: " << std::endl; diff --git a/tests/base/index_set_20.cc b/tests/base/index_set_20.cc index 1ed54d3b50..9728193f25 100644 --- a/tests/base/index_set_20.cc +++ b/tests/base/index_set_20.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. +// +// --------------------------------------------------------------------- + // test IndexSet::add_indices(IndexSet) @@ -21,7 +25,7 @@ #include -void testor(IndexSet & a, IndexSet & other, bool verbose=true) +void testor(IndexSet &a, IndexSet &other, bool verbose=true) { IndexSet merged(a); @@ -37,13 +41,13 @@ void testor(IndexSet & a, IndexSet & other, bool verbose=true) merged.print(deallog); } - for (unsigned int i=0;i +#include +#include +#include + +#include + +void testor(IndexSet &a, + IndexSet &other, + unsigned int offset, + bool verbose) +{ + IndexSet merged(a); + + merged.add_indices(other, offset); + + if (verbose) + { + deallog << "Original index set: " << std::endl; + a.print(deallog); + deallog << "other index set: " << std::endl; + other.print(deallog); + deallog << "merged index set: " << std::endl; + merged.print(deallog); + } + + for (unsigned int i=0; i=offset && other.is_element(i-offset))), + ExcInternalError()); + } +} + + + + +void test() +{ + const int size = 10; + + IndexSet empty(size); + IndexSet id(size); + + id.add_index(3); + id.add_index(4); + id.add_index(7); + + deallog << "* add empty: " << std::endl; + testor(id, empty, 2, true); + + deallog << "* add self: " << std::endl; + testor(id, id, 2, true); + + deallog << "* add id2: " << std::endl; + IndexSet id2(size); + id2.add_index(0); + id2.add_index(2); + id2.add_index(3); + testor(id, id2, 3, true); +} + + + + + + +int main() +{ + std::ofstream logfile("index_set_20_offset/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test (); +} diff --git a/tests/base/index_set_20_offset/cmp/generic b/tests/base/index_set_20_offset/cmp/generic new file mode 100644 index 0000000000..7d32353213 --- /dev/null +++ b/tests/base/index_set_20_offset/cmp/generic @@ -0,0 +1,22 @@ + +DEAL::* add empty: +DEAL::Original index set: +DEAL::{[3,4], 7} +DEAL::other index set: +DEAL::{} +DEAL::merged index set: +DEAL::{[3,4], 7} +DEAL::* add self: +DEAL::Original index set: +DEAL::{[3,4], 7} +DEAL::other index set: +DEAL::{[3,4], 7} +DEAL::merged index set: +DEAL::{[3,7], 9} +DEAL::* add id2: +DEAL::Original index set: +DEAL::{[3,4], 7} +DEAL::other index set: +DEAL::{0, [2,3]} +DEAL::merged index set: +DEAL::{[3,7]} diff --git a/tests/base/index_set_21.cc b/tests/base/index_set_21.cc index ef0c1d7bf1..1bcaaf199d 100644 --- a/tests/base/index_set_21.cc +++ b/tests/base/index_set_21.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009, 2012 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // test IndexSet::clear @@ -32,8 +36,8 @@ void test () index_set.add_index (14); index_set.add_index (16); - // clear the IndexSet and then set elements - // again + // clear the IndexSet and then set elements + // again index_set.clear (); index_set.add_range (2,4); @@ -45,7 +49,7 @@ void test () for (unsigned int i=0; i +#include +#include +#include +#include + +#include + + +void test () +{ + IndexSet is1 (100), is2 (100); + + is1.add_range (0,10); + is2.add_range (0,20); + + Assert((is1 == is2) == false, ExcInternalError()); + Assert((is1 != is2) == true, ExcInternalError()); + + deallog << "OK" << std::endl; +} + + + + +int main() +{ + std::ofstream logfile("index_set_23/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test (); +} diff --git a/tests/base/index_set_23/cmp/generic b/tests/base/index_set_23/cmp/generic new file mode 100644 index 0000000000..0fd8fc12f0 --- /dev/null +++ b/tests/base/index_set_23/cmp/generic @@ -0,0 +1,2 @@ + +DEAL::OK diff --git a/tests/base/index_set_readwrite_01.cc b/tests/base/index_set_readwrite_01.cc index 41e47ee6c2..5437adb552 100644 --- a/tests/base/index_set_readwrite_01.cc +++ b/tests/base/index_set_readwrite_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. +// +// --------------------------------------------------------------------- + // test IndexSet::read() and write() diff --git a/tests/base/index_set_readwrite_02.cc b/tests/base/index_set_readwrite_02.cc index e063f37005..722dad00d6 100644 --- a/tests/base/index_set_readwrite_02.cc +++ b/tests/base/index_set_readwrite_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. +// +// --------------------------------------------------------------------- + // test IndexSet::block_read() and block_write() @@ -35,7 +39,7 @@ void test () std::ofstream out("index_set_readwrite_02/a.idxset"); is1.block_write(out); } - + IndexSet is2; std::ifstream in("index_set_readwrite_02/a.idxset"); is2.block_read(in); diff --git a/tests/base/index_set_readwrite_03.cc b/tests/base/index_set_readwrite_03.cc new file mode 100644 index 0000000000..4ddef5888c --- /dev/null +++ b/tests/base/index_set_readwrite_03.cc @@ -0,0 +1,67 @@ +// --------------------------------------------------------------------- +// $Id: index_set_readwrite_02.cc 30045 2013-07-18 19:18:00Z maier $ +// +// Copyright (C) 2010 - 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. +// +// --------------------------------------------------------------------- + + +// document a bug in IndexSet::block_read() and block_write(), +// because largest_range was not serialized/reset. + +#include "../tests.h" +#include +#include +#include +#include +#include +#include + +#include + + +void test () +{ + IndexSet is1(250); + is1.add_range(125,200); + is1.add_range(0,75); + + { + std::ofstream out("index_set_readwrite_03/a.idxset"); + is1.block_write(out); + } + + IndexSet is2; + std::ifstream in("index_set_readwrite_03/a.idxset"); + is2.block_read(in); + + Assert(is1 == is2, ExcInternalError()); + + deallog << is1.is_element(4) << " " << is2.is_element(4) << std::endl; + + deallog << "OK" << std::endl; + + std::remove ("index_set_readwrite_03/a.idxset"); +} + + + + +int main() +{ + std::ofstream logfile("index_set_readwrite_03/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + test (); +} diff --git a/tests/base/index_set_readwrite_03/cmp/generic b/tests/base/index_set_readwrite_03/cmp/generic new file mode 100644 index 0000000000..5530e5d5d2 --- /dev/null +++ b/tests/base/index_set_readwrite_03/cmp/generic @@ -0,0 +1,3 @@ + +DEAL::1 1 +DEAL::OK diff --git a/tests/base/is_finite.cc b/tests/base/is_finite.cc index 972ac63181..90f14eed23 100644 --- a/tests/base/is_finite.cc +++ b/tests/base/is_finite.cc @@ -1,15 +1,19 @@ -//---------------------------- is_finite.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. // -//---------------------------- is_finite.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. +// +// --------------------------------------------------------------------- + // check numbers::is_finite @@ -24,7 +28,7 @@ template void check () { using namespace numbers; - + deallog << std::numeric_limits::quiet_NaN() << " --> "; deallog << is_finite(std::numeric_limits::quiet_NaN()) << std::endl; @@ -64,7 +68,7 @@ int main () check (); check (); - + return 0; } diff --git a/tests/base/is_finite_complex.cc b/tests/base/is_finite_complex.cc index 502d77123c..67d065b49a 100644 --- a/tests/base/is_finite_complex.cc +++ b/tests/base/is_finite_complex.cc @@ -1,15 +1,19 @@ -//---------------------------- is_finite_complex.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. // -//---------------------------- is_finite_complex.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. +// +// --------------------------------------------------------------------- + // check numbers::is_finite for complex arguments @@ -24,7 +28,7 @@ template void check () { using namespace numbers; - + deallog << std::numeric_limits::real_type>::quiet_NaN() << " --> "; deallog << is_finite(T(std::numeric_limits::real_type>::quiet_NaN(), 0)) << ' '; deallog << is_finite(T(0,std::numeric_limits::real_type>::quiet_NaN())) << std::endl; @@ -69,7 +73,7 @@ int main () check > (); check > (); - + return 0; } diff --git a/tests/base/log_crash_01.cc b/tests/base/log_crash_01.cc index d32a28772d..4013977f8c 100644 --- a/tests/base/log_crash_01.cc +++ b/tests/base/log_crash_01.cc @@ -1,15 +1,19 @@ -//---------------------------- logtest.cc --------------------------- -// $Id: logtest.cc 23710 2011-05-17 04:50:10Z bangerth $ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2012 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- logtest.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. +// +// --------------------------------------------------------------------- + // document crash in deallog related to missing newline diff --git a/tests/base/log_infinity.cc b/tests/base/log_infinity.cc index c9138105eb..f35a4d72f5 100644 --- a/tests/base/log_infinity.cc +++ b/tests/base/log_infinity.cc @@ -1,15 +1,19 @@ -//---------------------------- log_infinity.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. // -//---------------------------- log_infinity.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. +// +// --------------------------------------------------------------------- + // similar to log_nan, but test for infinities diff --git a/tests/base/log_nan.cc b/tests/base/log_nan.cc index cad60af73a..7739b1f797 100644 --- a/tests/base/log_nan.cc +++ b/tests/base/log_nan.cc @@ -1,15 +1,19 @@ -//---------------------------- log_nan.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. // -//---------------------------- log_nan.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. +// +// --------------------------------------------------------------------- + // check for a bug reported by Luca Heltai 2006-03-07 on the mailing // list. the test should actually output "nan", but prints "0" diff --git a/tests/base/log_precision.cc b/tests/base/log_precision.cc new file mode 100644 index 0000000000..521bc4d529 --- /dev/null +++ b/tests/base/log_precision.cc @@ -0,0 +1,46 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// test that we can set the precision of LogStream objects + +#include "../tests.h" +#include +#include +#include +#include + +int main () +{ + std::ofstream logfile("log_precision/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + deallog << numbers::PI << std::endl; + + // test with a different precision + deallog.precision(12); + deallog << numbers::PI << std::endl; + + // ensure that the precision of the underlying file stream object remained + // unchanged + deallog.get_file_stream() << numbers::PI << std::endl; + + return 0; +} + diff --git a/tests/base/log_precision/cmp/generic b/tests/base/log_precision/cmp/generic new file mode 100644 index 0000000000..480ff051f2 --- /dev/null +++ b/tests/base/log_precision/cmp/generic @@ -0,0 +1,4 @@ + +DEAL::3.14 +DEAL::3.14159265359 +3.14159 diff --git a/tests/base/log_width.cc b/tests/base/log_width.cc new file mode 100644 index 0000000000..c61925a4a9 --- /dev/null +++ b/tests/base/log_width.cc @@ -0,0 +1,46 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// test that we can set the width of LogStream objects + +#include "../tests.h" +#include +#include +#include +#include + +int main () +{ + std::ofstream logfile("log_width/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + deallog << numbers::PI*2 << 42 << std::endl; + + // test with a different width + deallog.width(18); + deallog << numbers::PI*2 << 42 << std::endl; + + // ensure that the width of the underlying file stream object remained + // unchanged + deallog.get_file_stream() << numbers::PI*2 << 42 << std::endl; + + return 0; +} + diff --git a/tests/base/log_width/cmp/generic b/tests/base/log_width/cmp/generic new file mode 100644 index 0000000000..56126b39f5 --- /dev/null +++ b/tests/base/log_width/cmp/generic @@ -0,0 +1,4 @@ + +DEAL::6.2842 +DEAL::6.28 42 +6.2831942 diff --git a/tests/base/logstream_end.cc b/tests/base/logstream_end.cc index 926951d576..d0cfd7a3c6 100644 --- a/tests/base/logstream_end.cc +++ b/tests/base/logstream_end.cc @@ -1,15 +1,19 @@ -//---------------------------- logstream_end.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2009 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- logstream_end.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. +// +// --------------------------------------------------------------------- + // it used to happen that if we destroyed logstream (and presumably diff --git a/tests/base/logtest.cc b/tests/base/logtest.cc index 20b757cfa5..46397f737b 100644 --- a/tests/base/logtest.cc +++ b/tests/base/logtest.cc @@ -1,15 +1,19 @@ -//---------------------------- logtest.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- logtest.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. +// +// --------------------------------------------------------------------- + // some tests for the logstream class, writing output, pushing and diff --git a/tests/base/mutex_01.cc b/tests/base/mutex_01.cc index ce4e08bd35..bee09fd3a5 100644 --- a/tests/base/mutex_01.cc +++ b/tests/base/mutex_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // verify that mutexes work correctly in MT context diff --git a/tests/base/named_data.cc b/tests/base/named_data.cc index be15c127ec..8c7ad959d6 100644 --- a/tests/base/named_data.cc +++ b/tests/base/named_data.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2009 by the deal.II authors +// Copyright (C) 2000 - 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 "../tests.h" @@ -21,31 +25,31 @@ template void -test_const(const NamedData& data) +test_const(const NamedData &data) { NamedData newdata; newdata.merge(data); data.print(deallog); - + deallog << "Const should be true: " << (newdata.is_const() ? "true" : "false") << std::endl; } template void -test_selector(const NamedData& data) +test_selector(const NamedData &data) { NamedSelection select; select.add("P1"); select.add("P6"); - select.add("P5"); + select.add("P5"); select.add("P3"); select.initialize(data); - for (unsigned int i=0;i(new double); data.add(p, "P5"); - for (unsigned int i=0;i void check (const number &x) { deallog << "typeid(x).name() = " << typeid(x).name() - << std::endl; + << std::endl; deallog << "typeid(NumberTraits::real_type).name() = " - << typeid(typename numbers::NumberTraits::real_type).name() - << std::endl; + << typeid(typename numbers::NumberTraits::real_type).name() + << std::endl; deallog << numbers::NumberTraits::conjugate (x) - << std::endl; + << std::endl; deallog << numbers::NumberTraits::abs_square (x) - << std::endl; + << std::endl; deallog << numbers::NumberTraits::abs (x) - << std::endl; -} + << std::endl; +} diff --git a/tests/base/number_traits_real.cc b/tests/base/number_traits_real.cc index cc3c6b0442..84a676308a 100644 --- a/tests/base/number_traits_real.cc +++ b/tests/base/number_traits_real.cc @@ -1,15 +1,19 @@ -//---------------------------- number_traits_real.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. // -//---------------------------- number_traits_real.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. +// +// --------------------------------------------------------------------- + // check numbers::NumberTraits for real data types @@ -25,21 +29,21 @@ template void check (const number &x) { deallog << "typeid(x).name() = " << typeid(x).name() - << std::endl; + << std::endl; deallog << "typeid(NumberTraits::real_type).name() = " - << typeid(typename numbers::NumberTraits::real_type).name() - << std::endl; + << typeid(typename numbers::NumberTraits::real_type).name() + << std::endl; deallog << numbers::NumberTraits::conjugate (x) - << std::endl; + << std::endl; deallog << numbers::NumberTraits::abs_square (x) - << std::endl; + << std::endl; deallog << numbers::NumberTraits::abs (x) - << std::endl; -} + << std::endl; +} @@ -58,7 +62,7 @@ int main () check ((double)-1.5); check ((long double)1.5); - check ((long double)-1.5); + check ((long double)-1.5); return 0; } diff --git a/tests/base/parallel_accumulate.cc b/tests/base/parallel_accumulate.cc index bf437dc2da..42a2463283 100644 --- a/tests/base/parallel_accumulate.cc +++ b/tests/base/parallel_accumulate.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // test parallel::accumulate_from_subranges @@ -21,14 +25,14 @@ int sum (const int begin, - const int end) + const int end) { int s=0; for (int i=begin; i void -create_patches(std::vector > & patches) +create_patches(std::vector > &patches) { - for (unsigned int p=0;p& patch = patches[p]; - + DataOutBase::Patch &patch = patches[p]; + const unsigned int nsub = p+1; const unsigned int nsubp = nsub+1; - + patch.n_subdivisions = nsub; - for (unsigned int v=0;v::vertices_per_cell;++v) - for (unsigned int d=0;d=dim) ? v : 0); - + for (unsigned int v=0; v::vertices_per_cell; ++v) + for (unsigned int d=0; d=dim) ? v : 0); + unsigned int n1 = (dim>0) ? nsubp : 1; unsigned int n2 = (dim>1) ? nsubp : 1; unsigned int n3 = (dim>2) ? nsubp : 1; unsigned int n4 = (dim>3) ? nsubp : 1; patch.data.reinit(5, n1*n2*n3*n4); - - for (unsigned int i4=0;i4 > & patches) template void create_continuous_patches( - std::vector > & patches, + std::vector > &patches, unsigned int n_cells, unsigned int n_sub) { @@ -88,39 +91,39 @@ create_continuous_patches( QIterated trapezsub(trapez1d, n_sub); Point midpoint; - for (unsigned int d=0;d function(2., midpoint); - - for (unsigned int i3=0;i3 patch; - patch.n_subdivisions = n_sub; - for (unsigned int k=0;k p = trapez.point(k); - if (dim>=1) p(0) += i1; - if (dim>=2) p(1) += i2; - if (dim>=3) p(2) += i3; - patch.vertices[k] = p; - } - std::vector > points = trapezsub.get_points(); - for (unsigned int k=0;k=1) points[k](0) += i1; - if (dim>=2) points[k](1) += i2; - if (dim>=3) points[k](2) += i3; - } - std::vector values(points.size()); - function.value_list(points, values); - patch.data.reinit(1, points.size()); - for (unsigned int k=0;k patch; + patch.n_subdivisions = n_sub; + for (unsigned int k=0; k p = trapez.point(k); + if (dim>=1) p(0) += i1; + if (dim>=2) p(1) += i2; + if (dim>=3) p(2) += i3; + patch.vertices[k] = p; + } + std::vector > points = trapezsub.get_points(); + for (unsigned int k=0; k=1) points[k](0) += i1; + if (dim>=2) points[k](1) += i2; + if (dim>=3) points[k](2) += i3; + } + std::vector values(points.size()); + function.value_list(points, values); + patch.data.reinit(1, points.size()); + for (unsigned int k=0; k @@ -24,7 +28,7 @@ int main() PathSearch::add_class("CC"); - // Open with full debugging + // Open with full debugging PathSearch cc("CC", 3); cc.add_path("../"); cc.add_path("../scripts/", PathSearch::front); @@ -36,13 +40,13 @@ int main() cc.add_suffix(".h", PathSearch::after_none); deallog << cc.find("tests") << std::endl; cc.show(deallog); - + PathSearch mesh("MESH", 3); mesh.add_path("../bits/"); mesh.show(deallog); std::ifstream in(mesh.find("grid_in_msh_01.2d").c_str()); std::string line; - for (unsigned int i=0;i<4;++i) + for (unsigned int i=0; i<4; ++i) { in >> line; deallog << ' ' << line; diff --git a/tests/base/patterns_01.cc b/tests/base/patterns_01.cc index 2cfcf7e771..6ab401c317 100644 --- a/tests/base/patterns_01.cc +++ b/tests/base/patterns_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2010 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. +// +// --------------------------------------------------------------------- + #include "../tests.h" #include @@ -23,17 +27,17 @@ int main() deallog.depth_console(0); deallog.threshold_double(1.e-10); - // create a pattern and let it - // output its description + // create a pattern and let it + // output its description Patterns::Integer pattern(-1,42); const std::string desc = pattern.description(); - // now let the same class re-create - // a pattern object from the - // description and verify that the - // result is the same as what we - // started out with - Patterns::Integer * pattern2 = Patterns::Integer::create (desc); + // now let the same class re-create + // a pattern object from the + // description and verify that the + // result is the same as what we + // started out with + Patterns::Integer *pattern2 = Patterns::Integer::create (desc); Assert (pattern2 != 0, ExcInternalError()); Assert (desc == pattern2->description(), ExcInternalError()); diff --git a/tests/base/point_01.cc b/tests/base/point_01.cc index e379f87b52..28adef2075 100644 --- a/tests/base/point_01.cc +++ b/tests/base/point_01.cc @@ -1,15 +1,19 @@ -//---------------------------- point_01.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. // -//---------------------------- point_01.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. +// +// --------------------------------------------------------------------- + // test for Point::operator() diff --git a/tests/base/polynomial1d.cc b/tests/base/polynomial1d.cc index a2f6a399a7..51991db6d7 100644 --- a/tests/base/polynomial1d.cc +++ b/tests/base/polynomial1d.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2008, 2010 by the deal.II authors +// Copyright (C) 2000 - 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. +// +// --------------------------------------------------------------------- + // just output a lot of information about various classes implementing // 1d-polynomials, to make sure that all changes we make to these classes @@ -29,14 +33,14 @@ using namespace Polynomials; -double scalar_product (const Polynomial& p1, - const Polynomial& p2) +double scalar_product (const Polynomial &p1, + const Polynomial &p2) { unsigned int degree = (p1.degree() + p2.degree())/2 + 1; QGauss<1> gauss(degree); double sum = 0.; - for (unsigned int i=0;i p1(c1); - + std::vector c2(3); c2[0] = .4; c2[1] = .7; @@ -81,8 +85,8 @@ void polynomial_arithmetic () std::cerr << "*P2" << std::endl; p2 *= p1; p2.print(std::cerr); - - for (unsigned int i=0;i<7;++i) + + for (unsigned int i=0; i<7; ++i) { std::cerr << "derive" << std::endl; p1 = p1.derivative(); @@ -101,88 +105,88 @@ int main () deallog.log_cerr(); polynomial_arithmetic(); - + std::vector > p; std::vector > q; deallog << "Legendre" << std::endl; - - for (unsigned int i=0;i<12;++i) + + for (unsigned int i=0; i<12; ++i) { p.push_back (Legendre(i)); } - - - for (unsigned int i=0;i values (p.size()); @@ -190,15 +194,15 @@ int main () for (unsigned int j=2; j @@ -20,24 +25,24 @@ using namespace Polynomials; -void plot(const std::vector >& polynomials) +void plot(const std::vector > &polynomials) { LogStream::Prefix("plot"); const unsigned int n=8; - for (unsigned int i=0;i<=n;++i) + for (unsigned int i=0; i<=n; ++i) { const double x = 1.*i/n; deallog << x; - for (unsigned int p=0;p >& polynomials) +void interpolation_conditions(const std::vector > &polynomials) { std::vector values(2); - for (unsigned int i=0;i >& p, - const std::vector >& x) +void check_interpolation (const std::vector > &p, + const std::vector > &x) { - for (unsigned int i=0;i 2.e-10) - deallog << "Error1 lg y=" << std::log10(std::fabs(y-1.)) - << std::endl; - } - else - { - if (std::fabs(y) > 3.e-10) - deallog << "Error0 lg y=" << std::log10(std::fabs(y)) - << std::endl; - } - } + for (unsigned int k=0; k 2.e-10) + deallog << "Error1 lg y=" << std::log10(std::fabs(y-1.)) + << std::endl; + } + else + { + if (std::fabs(y) > 3.e-10) + deallog << "Error0 lg y=" << std::log10(std::fabs(y)) + << std::endl; + } + } deallog << std::endl; } } void -check_poly (const Quadrature<1>& q) +check_poly (const Quadrature<1> &q) { deallog << "Points: " << q.size() << std::endl; std::vector > p = generate_complete_Lagrange_basis(q.get_points()); @@ -68,7 +72,7 @@ check_lge (unsigned int n) std::vector > p = LagrangeEquidistant::generate_complete_basis(n); std::vector > x(n+1); const double h = 1./n; - for (unsigned int i=0;i<=n;++i) + for (unsigned int i=0; i<=n; ++i) x[i](0) = h*i; check_interpolation(p, x); } @@ -81,7 +85,7 @@ int main() deallog.attach(logfile); deallog.depth_console(0); // deallog.threshold_double(1.e-10); - + QTrapez<1> trapez; QSimpson<1> simpson; QIterated<1> equi7(trapez, 6); @@ -99,7 +103,7 @@ int main() QGaussLobatto<1> gl6(6); QGaussLobatto<1> gl7(7); QGaussLobatto<1> gl10(10); - + deallog.push("LagrangeEquidistant"); check_lge(6); check_lge(9); @@ -110,13 +114,13 @@ int main() check_poly(equi7); check_poly(equi10); deallog.pop(); - deallog.push("Gauss"); + deallog.push("Gauss"); check_poly(g2); check_poly(g3); check_poly(g7); check_poly(g10); deallog.pop(); - deallog.push("GaussLobatto"); + deallog.push("GaussLobatto"); check_poly(gl2); check_poly(gl3); check_poly(gl4); diff --git a/tests/base/polynomial_lagrange_ops.cc b/tests/base/polynomial_lagrange_ops.cc index 1846d63524..7b67d26f2b 100644 --- a/tests/base/polynomial_lagrange_ops.cc +++ b/tests/base/polynomial_lagrange_ops.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2011 by the deal.II authors +// Copyright (C) 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. +// 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. +// +// --------------------------------------------------------------------- + // Tests operations similar to polynomial_lagrange_order when the polynomial // is modified @@ -39,8 +43,8 @@ void check_scale (const std::vector > &p) double value1 = p[i].value (factor * x); double value2 = q .value (x); if (std::fabs(value1-value2) > std::max(1e-13,1e-13*std::fabs(value1))) - deallog << "Error scale at x=" << x << ": p(t)=" << value1 - << ", q(x)=" << value2 << std::endl; + deallog << "Error scale at x=" << x << ": p(t)=" << value1 + << ", q(x)=" << value2 << std::endl; deallog << "."; } deallog << std::endl; @@ -50,7 +54,7 @@ void check_scale (const std::vector > &p) void check_shift (const std::vector > &p) { - // shift does not work for too high orders + // shift does not work for too high orders if (p.size() > 30) return; @@ -64,8 +68,8 @@ void check_shift (const std::vector > &p) double value1 = p[i].value (x+a); double value2 = q .value (x); if (std::fabs(value1-value2) > std::max(1e-13,1e-13*std::fabs(value1))) - deallog << "Error shift at x=" << x << ": p(t)=" << value1 - << ", q(x)=" << value2 << std::endl; + deallog << "Error shift at x=" << x << ": p(t)=" << value1 + << ", q(x)=" << value2 << std::endl; deallog << "."; } deallog << std::endl; @@ -85,8 +89,8 @@ void check_mult_scalar (const std::vector > &p) double value1 = p[i].value (x) * a; double value2 = q .value (x); if (std::fabs(value1-value2) > std::max(1e-13,1e-13*std::fabs(value1))) - deallog << "Error multiply at x=" << x << ": a*p(x)=" << value1 - << ", q(x)=" << value2 << std::endl; + deallog << "Error multiply at x=" << x << ": a*p(x)=" << value1 + << ", q(x)=" << value2 << std::endl; deallog << "."; } deallog << std::endl; @@ -100,16 +104,16 @@ void check_mult (const std::vector > &p) for (unsigned int i=0; i q = p[i]; - q *= p[j]; - double x = (double)rand()/RAND_MAX; - double value1 = p[i].value (x) * p[j].value(x); - double value2 = q .value (x); - if (std::fabs(value1-value2) > std::max(1e-13,1e-13*std::fabs(value1))) - deallog << "Error multiply at x=" << x << ": p_1(x)*p_2(x)=" << value1 - << ", q(x)=" << value2 << std::endl; - } + { + Polynomial q = p[i]; + q *= p[j]; + double x = (double)rand()/RAND_MAX; + double value1 = p[i].value (x) * p[j].value(x); + double value2 = q .value (x); + if (std::fabs(value1-value2) > std::max(1e-13,1e-13*std::fabs(value1))) + deallog << "Error multiply at x=" << x << ": p_1(x)*p_2(x)=" << value1 + << ", q(x)=" << value2 << std::endl; + } deallog << "."; } deallog << std::endl; @@ -121,15 +125,15 @@ void check_expand (const std::vector > &p) { if (p.size() > 10) return; - // this checks whether the Lagrange product - // form and the usual form with factors for - // different powers does the same - // thing. Realize this by adding the - // polynomial '0' to the current - // polynomial. That destroys the product form - // and triggers the usual form. do not do this - // for higher order because then the standard - // form is unstable + // this checks whether the Lagrange product + // form and the usual form with factors for + // different powers does the same + // thing. Realize this by adding the + // polynomial '0' to the current + // polynomial. That destroys the product form + // and triggers the usual form. do not do this + // for higher order because then the standard + // form is unstable deallog << "Expansion operation"; Monomial zero(0, 0.); for (unsigned int i=0; i > &p) double value1 = p[i].value (x); double value2 = q .value (x); if (std::fabs(value1-value2) > std::max(1e-10,1e-10*std::fabs(value1))) - deallog << "Error expansion at x=" << x << ": p(x)=" << value1 - << ", q(x)=" << value2 << std::endl; + deallog << "Error expansion at x=" << x << ": p(x)=" << value1 + << ", q(x)=" << value2 << std::endl; deallog << "."; } deallog << std::endl; @@ -158,18 +162,18 @@ void check_mult_expand (const std::vector > &p) for (unsigned int i=0; i q = p[i]; - q += zero; - q *= p[j]; - double x = (double)rand()/RAND_MAX; - double value1 = p[i].value (x) * p[j].value(x); - double value2 = q .value (x); - if (std::fabs(value1-value2) > std::max(1e-10,1e-10*std::fabs(value1))) - deallog << "Error multiply at x=" << x - << ": p_"<& q) +check_poly (const Quadrature<1> &q) { deallog << "Points: " << q.size() << std::endl; std::vector > p = generate_complete_Lagrange_basis(q.get_points()); @@ -223,9 +227,9 @@ int main() deallog.pop(); deallog << std::endl; - // Lagrange elements on GL points have good - // conditioning, so test to some very high - // orders + // Lagrange elements on GL points have good + // conditioning, so test to some very high + // orders deallog.push("GaussLobatto"); for (unsigned i=1; i<40; i+=3) check_poly (QGaussLobatto<1>(i+1)); diff --git a/tests/base/polynomial_lagrange_order.cc b/tests/base/polynomial_lagrange_order.cc index 733e57e1fb..17982623b0 100644 --- a/tests/base/polynomial_lagrange_order.cc +++ b/tests/base/polynomial_lagrange_order.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2011 by the deal.II authors +// Copyright (C) 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. +// 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. +// +// --------------------------------------------------------------------- + // Similar to polyomial_lagrange, but test Lagrange interpolation for high // order with tighter tolerances, in particular the effect of stability of the @@ -28,52 +32,52 @@ using namespace Polynomials; -void check_interpolation (const std::vector >& p, - const std::vector >& x) +void check_interpolation (const std::vector > &p, + const std::vector > &x) { - for (unsigned int i=0;i 1e-13) - deallog << "Error1 lg y=" << std::log10(std::fabs(y-1.)) - << std::endl; - } - else - { - if (std::fabs(y) > 1e-13) - deallog << "Error0 lg y=" << std::log10(std::fabs(y)) - << std::endl; - } - } + for (unsigned int k=0; k 1e-13) + deallog << "Error1 lg y=" << std::log10(std::fabs(y-1.)) + << std::endl; + } + else + { + if (std::fabs(y) > 1e-13) + deallog << "Error0 lg y=" << std::log10(std::fabs(y)) + << std::endl; + } + } deallog << std::endl; } } -void check_constant (const std::vector >& p) +void check_constant (const std::vector > &p) { - // check whether the sum of all polynomials in - // the basis gives one for a given point + // check whether the sum of all polynomials in + // the basis gives one for a given point deallog << "Representation of one at random points"; for (unsigned int j=0; j<12; ++j) { double x = (double)rand()/RAND_MAX; double value = 0; - for (unsigned int i=0;i 1e-13) - deallog << "Error1 lg y=" << std::log10(std::fabs(1.-value)) - << std::endl; + deallog << "Error1 lg y=" << std::log10(std::fabs(1.-value)) + << std::endl; } deallog << std::endl; @@ -82,7 +86,7 @@ void check_constant (const std::vector >& p) void -check_poly (const Quadrature<1>& q) +check_poly (const Quadrature<1> &q) { deallog << "Points: " << q.size() << std::endl; std::vector > p = generate_complete_Lagrange_basis(q.get_points()); @@ -100,7 +104,7 @@ check_lge (unsigned int n) std::vector > p = LagrangeEquidistant::generate_complete_basis(n); std::vector > x(n+1); const double h = 1./n; - for (unsigned int i=0;i<=n;++i) + for (unsigned int i=0; i<=n; ++i) x[i](0) = h*i; check_interpolation(p, x); check_constant(p); @@ -123,9 +127,9 @@ int main() deallog.pop(); deallog << std::endl; - // Lagrange elements on GL points have good - // conditioning, so test to some very high - // orders + // Lagrange elements on GL points have good + // conditioning, so test to some very high + // orders deallog.push("GaussLobatto"); for (unsigned i=8; i<40; i+=3) check_poly (QGaussLobatto<1>(i+1)); diff --git a/tests/base/polynomial_lagrange_product.cc b/tests/base/polynomial_lagrange_product.cc index b2948ff789..ed01525b72 100644 --- a/tests/base/polynomial_lagrange_product.cc +++ b/tests/base/polynomial_lagrange_product.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2011 by the deal.II authors +// Copyright (C) 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. +// 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. +// +// --------------------------------------------------------------------- + // Tests correctness of values and derivatives for polynomials derived from // Lagrange product form @@ -27,16 +31,16 @@ using namespace Polynomials; -void check_derivatives (const std::vector >& p, - const unsigned int n_deriv) +void check_derivatives (const std::vector > &p, + const unsigned int n_deriv) { - // check whether the values and derivatives - // are evaluated correctly some randomly - // generated points. compare with a polynomial - // that is not in product form (we get the - // expanded form by adding a dummy polynomial; - // addition of polynomials destroys the - // product form in the current implementation) + // check whether the values and derivatives + // are evaluated correctly some randomly + // generated points. compare with a polynomial + // that is not in product form (we get the + // expanded form by adding a dummy polynomial; + // addition of polynomials destroys the + // product form in the current implementation) deallog << "Representation of derivatives up to order " << n_deriv-1 << std::endl; std::vector values(n_deriv), values_ref(n_deriv); Monomial zero (0,0); @@ -48,15 +52,15 @@ void check_derivatives (const std::vector >& p, q += zero; q.value (x, values_ref); for (unsigned int i=0; i - std::max(1e-11,1e-11*std::fabs(values[i]))) - deallog << "Error deriv" << i << " lg y=" - << std::log10(std::fabs(values[i]-values_ref[i])) - << ", is: " << values[i] << ", should be: " << values_ref[i] - << std::endl; - } + { + deallog << "."; + if (std::fabs (values[i]-values_ref[i]) > + std::max(1e-11,1e-11*std::fabs(values[i]))) + deallog << "Error deriv" << i << " lg y=" + << std::log10(std::fabs(values[i]-values_ref[i])) + << ", is: " << values[i] << ", should be: " << values_ref[i] + << std::endl; + } } deallog << std::endl; @@ -65,7 +69,7 @@ void check_derivatives (const std::vector >& p, void -check_poly (const Quadrature<1>& q) +check_poly (const Quadrature<1> &q) { deallog << "Points: " << q.size() << std::endl; std::vector > p = generate_complete_Lagrange_basis(q.get_points()); @@ -102,9 +106,9 @@ int main() deallog.pop(); deallog << std::endl; - // Lagrange elements on GL points have good - // conditioning, so test to some very high - // orders + // Lagrange elements on GL points have good + // conditioning, so test to some very high + // orders deallog.push("GaussLobatto"); for (unsigned i=1; i<8; i+=2) check_poly (QGaussLobatto<1>(i+1)); diff --git a/tests/base/polynomial_minus_equals.cc b/tests/base/polynomial_minus_equals.cc index fde6c864df..843616e124 100644 --- a/tests/base/polynomial_minus_equals.cc +++ b/tests/base/polynomial_minus_equals.cc @@ -1,13 +1,22 @@ -/* $Id$ */ -/* Author: Andrew McBride, 2010 */ -/* */ -/* Copyright (C) 2010 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) 2010 - 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: Andrew McBride +// // check on the Polynomial::operator -= #include @@ -24,32 +33,32 @@ using namespace dealii; int main () { - std::ofstream logfile("polynomial_minus_equals/output"); - deallog << std::setprecision(3); - deallog.attach(logfile); - deallog.depth_console(0); + std::ofstream logfile("polynomial_minus_equals/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); - // subtract two equal polynomials up to order p_dim - // the result evaluated at an arbitrary point - // should always be zero + // subtract two equal polynomials up to order p_dim + // the result evaluated at an arbitrary point + // should always be zero - // check polynomials up to order 32 - const unsigned int p_dim = 32; + // check polynomials up to order 32 + const unsigned int p_dim = 32; - std::vector coefficients_a; + std::vector coefficients_a; - // arbitrary point - double evalutation_number = 12.123; + // arbitrary point + double evalutation_number = 12.123; - for (unsigned int pp = 0; pp < p_dim; pp++) - { - coefficients_a.push_back(pp); + for (unsigned int pp = 0; pp < p_dim; pp++) + { + coefficients_a.push_back(pp); - Polynomials::Polynomial test_poly_a(coefficients_a); - Polynomials::Polynomial test_poly_b(coefficients_a); + Polynomials::Polynomial test_poly_a(coefficients_a); + Polynomials::Polynomial test_poly_b(coefficients_a); - test_poly_b -= test_poly_a; + test_poly_b -= test_poly_a; - deallog << test_poly_b.value(evalutation_number) << std::endl; - } + deallog << test_poly_b.value(evalutation_number) << std::endl; + } } diff --git a/tests/base/polynomial_test.cc b/tests/base/polynomial_test.cc index d55c419100..f9d3772496 100644 --- a/tests/base/polynomial_test.cc +++ b/tests/base/polynomial_test.cc @@ -1,15 +1,19 @@ -//---------------------------- polynomial_test.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors +// Copyright (C) 2000 - 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. // -//---------------------------- polynomial_test.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. +// +// --------------------------------------------------------------------- + // just output a lot of information about various classes implementing @@ -31,65 +35,65 @@ using namespace Polynomials; template -void check_poly(const Point& x, - const POLY& p) +void check_poly(const Point &x, + const POLY &p) { const unsigned int n = p.n(); std::vector values (n); std::vector > gradients(n); std::vector > second(n); - + p.compute (x, values, gradients, second); - - for (unsigned int k=0;k 5.0E-15) - deallog << 'P' << k << ": values differ " << val << " != " - << values[k] << std::endl; + deallog << 'P' << k << ": values differ " << val << " != " + << values[k] << std::endl; - // Check if compute_grad is ok + // Check if compute_grad is ok Tensor<1,dim> grad = p.compute_grad(k,x); if ((grad-gradients[k]) * (grad-gradients[k]) > 5e-15*5e-15) - deallog << 'P' << k << ": gradients differ " << grad << " != " - << gradients[k] << std::endl; - - // Check if compute_grad_grad is ok + deallog << 'P' << k << ": gradients differ " << grad << " != " + << gradients[k] << std::endl; + + // Check if compute_grad_grad is ok Tensor<2,dim> grad2 = p.compute_grad_grad(k,x); Tensor<2,dim> diff = grad2-second[k]; double s = 0; for (unsigned int i=0; i 5e-15*5e-15) - deallog << 'P' << k << ": second derivatives differ " << grad2 << " != " - << second[k] << std::endl; - - - // finally output values, - // gradients, etc, to make sure - // that they are not only - // consistent, but also - // correct. Multiply them - // somewhat to make them - // significant despite our - // two-post-dot-digits limit + deallog << 'P' << k << ": second derivatives differ " << grad2 << " != " + << second[k] << std::endl; + + + // finally output values, + // gradients, etc, to make sure + // that they are not only + // consistent, but also + // correct. Multiply them + // somewhat to make them + // significant despite our + // two-post-dot-digits limit values[k] *= std::pow(10., dim); gradients[k] *= std::pow(10., dim); - + deallog << 'P' << k << "\t= " << values[k] - << "\tgradient\t"; - for (unsigned int d=0;d& x, template void -check_tensor (const std::vector >& v, - const Point& x) +check_tensor (const std::vector > &v, + const Point &x) { deallog.push("Tensor"); TensorProductPolynomials p(v); @@ -110,8 +114,8 @@ check_tensor (const std::vector >& v, template void -check_poly (const std::vector >& v, - const Point& x) +check_poly (const std::vector > &v, + const Point &x) { deallog.push("Polyno"); PolynomialSpace p(v); @@ -122,7 +126,7 @@ check_poly (const std::vector >& v, void -check_dimensions (const std::vector >& p) +check_dimensions (const std::vector > &p) { deallog.push("1d"); check_tensor(p, Point<1>(.5)); @@ -148,16 +152,16 @@ int main() deallog.push("Lagrange"); std::vector > p; - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (LagrangeEquidistant(3, i)); check_dimensions(p); deallog.pop(); deallog.push("Legendre"); - + p.clear (); - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (Legendre(i)); check_dimensions(p); @@ -166,7 +170,7 @@ int main() deallog.push("Hierarchical"); p.clear (); - for (unsigned int i=0;i<3;++i) + for (unsigned int i=0; i<3; ++i) p.push_back (Hierarchical(i)); check_dimensions(p); diff --git a/tests/base/polynomials_bdm_01.cc b/tests/base/polynomials_bdm_01.cc index 628178ba37..df091692bb 100644 --- a/tests/base/polynomials_bdm_01.cc +++ b/tests/base/polynomials_bdm_01.cc @@ -1,15 +1,19 @@ -//---------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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. +// +// --------------------------------------------------------------------- + // plot PolynomialsBDM on the reference cell @@ -27,7 +31,7 @@ using namespace std; template -void plot(const PolynomialsBDM& poly) +void plot(const PolynomialsBDM &poly) { QTrapez<1> base_quadrature; QIterated quadrature(base_quadrature, poly.degree()+3); @@ -35,19 +39,19 @@ void plot(const PolynomialsBDM& poly) std::vector > grads; std::vector > grads2; - - for (unsigned int k=0;k' << std::endl; - + deallog << "BDM" << poly.degree() << '<' << dim << '>' << std::endl; + deallog << "BDM" << poly.degree() << '<' << dim << '>' - << '\t' << quadrature.point(k); + << '\t' << quadrature.point(k); poly.compute(quadrature.point(k), values, grads, grads2); - - for (unsigned int i=0;i p20(0); PolynomialsBDM<2> p21(1); PolynomialsBDM<2> p22(2); - + plot(p20); plot(p21); plot(p22); diff --git a/tests/base/polynomials_rt.cc b/tests/base/polynomials_rt.cc index 622b05b2f4..e0992d0ec5 100644 --- a/tests/base/polynomials_rt.cc +++ b/tests/base/polynomials_rt.cc @@ -1,15 +1,19 @@ -//---------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2010 by the deal.II authors +// Copyright (C) 2000 - 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. +// +// --------------------------------------------------------------------- + // plot PolynomialsRaviartThomas on the reference cell @@ -26,7 +30,7 @@ using namespace std; template -void plot(const PolynomialsRaviartThomas& poly) +void plot(const PolynomialsRaviartThomas &poly) { QTrapez<1> base_quadrature; QIterated quadrature(base_quadrature, poly.degree()+3); @@ -34,19 +38,19 @@ void plot(const PolynomialsRaviartThomas& poly) std::vector > grads; std::vector > grads2; - - for (unsigned int k=0;k' << std::endl; - + deallog << "RT" << poly.degree() << '<' << dim << '>' << std::endl; + deallog << "RT" << poly.degree() << '<' << dim << '>' - << '\t' << quadrature.point(k); + << '\t' << quadrature.point(k); poly.compute(quadrature.point(k), values, grads, grads2); - - for (unsigned int i=0;i for their values. @@ -28,8 +32,8 @@ using namespace std; template -void check_point (const Point& x, - const POLY& p) +void check_point (const Point &x, + const POLY &p) { const unsigned int n = p.n(); std::vector > values(n); @@ -37,17 +41,17 @@ void check_point (const Point& x, std::vector > seconds(0); p.compute(x, values, gradients, seconds); - + deallog << "Point " << x << std::endl; - for (unsigned int i=0;i void check_bdm () { Point x; - + PolynomialsBDM p1(1); PolynomialsBDM p2(2); PolynomialsBDM p3(3); PolynomialsBDM p4(4); - + x(0) = 2.; x(1) = 3.; if (dim>2) x(2) = 4; - + check_point(x, p1); check_point(x, p2); check_point(x, p3); @@ -78,17 +82,17 @@ template void check_rt () { Point x; - + PolynomialsRaviartThomas p0(0); PolynomialsRaviartThomas p1(1); PolynomialsRaviartThomas p2(2); PolynomialsRaviartThomas p3(3); - + x(0) = 2.; x(1) = 3.; if (dim>2) x(2) = 4; - + check_point(x, p0); check_point(x, p1); check_point(x, p2); diff --git a/tests/base/qprojector.cc b/tests/base/qprojector.cc index 548a15e84b..180687ab78 100644 --- a/tests/base/qprojector.cc +++ b/tests/base/qprojector.cc @@ -1,15 +1,19 @@ -//---------------------------- quadrature_test.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2008, 2009, 2010 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- quadrature_test.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. +// +// --------------------------------------------------------------------- + // Test projection onto lines @@ -24,7 +28,7 @@ #include template -void check_line(Quadrature<1>& quadrature) +void check_line(Quadrature<1> &quadrature) { Point p1; Point p2; @@ -42,8 +46,8 @@ void check_line(Quadrature<1>& quadrature) } Quadrature q = QProjector::project_to_line(quadrature, p1, p2); double s = 0.; - - for (unsigned int k=0;k& quadrature) } template -void check_face(Quadrature<1>& q1) +void check_face(Quadrature<1> &q1) { deallog << "Checking dim " << dim - << " 1d-points " << q1.size() - << std::endl; - + << " 1d-points " << q1.size() + << std::endl; + Quadrature subquadrature(q1); - for (unsigned int f=0;f::faces_per_cell;++f) + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "Face " << f - << std::endl; - + << std::endl; + Quadrature quadrature - = QProjector::project_to_face(subquadrature, f); - for (unsigned int k=0;k::project_to_face(subquadrature, f); + for (unsigned int k=0; k::faces_per_cell;++f) - for (unsigned int s=0;s::max_children_per_face;++s) + for (unsigned int f=0; f::faces_per_cell; ++f) + for (unsigned int s=0; s::max_children_per_face; ++s) { - deallog << "Face " << f << " subface " << s - << std::endl; - - Quadrature quadrature - = QProjector::project_to_face(subquadrature, f); - for (unsigned int k=0;k quadrature + = QProjector::project_to_face(subquadrature, f); + for (unsigned int k=0; k -void check_faces (Quadrature<1>& q1) +void check_faces (Quadrature<1> &q1) { const unsigned int nq = q1.size(); - + deallog << "Checking dim " << dim - << " 1d-points " << nq - << std::endl; + << " 1d-points " << nq + << std::endl; Quadrature subquadrature(q1); const unsigned int nqs = subquadrature.size(); - + Quadrature faces = QProjector::project_to_all_faces(subquadrature); - for (unsigned int f=0;f::faces_per_cell;++f) + for (unsigned int f=0; f::faces_per_cell; ++f) { deallog << "Face " << f - << " orientation false" - << std::endl; + << " orientation false" + << std::endl; unsigned int - offset = QProjector::DataSetDescriptor::face(f, false, false, false, nqs); - - for (unsigned int k=0;k::DataSetDescriptor::face(f, false, false, false, nqs); + + for (unsigned int k=0; k::DataSetDescriptor::face(f, true, false, false, nqs); - - for (unsigned int k=0;k subs = QProjector::project_to_all_subfaces(subquadrature); for (unsigned int f=0;f::faces_per_cell;++f) - for (unsigned int s=0;s::max_children_per_face;++s) - { + for (unsigned int s=0;s::max_children_per_face;++s) + { - deallog << "Face " << f << " subface " << s - << " orientation false" - << std::endl; - - unsigned int - offset = QProjector::DataSetDescriptor::subface(f, s, false, nqs); - - for (unsigned int k=0;k::DataSetDescriptor::subface(f, s, true, nqs); - - for (unsigned int k=0;k::DataSetDescriptor::subface(f, s, false, nqs); + + for (unsigned int k=0;k::DataSetDescriptor::subface(f, s, true, nqs); + + for (unsigned int k=0;k& q) +void check(Quadrature<1> &q) { deallog << std::endl; deallog.push("line"); @@ -177,7 +181,7 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog << std::setprecision(2); - + deallog.threshold_double(1.e-10); Quadrature<1> none(0); @@ -185,10 +189,10 @@ int main() QGauss<1> midpoint(1); check(midpoint); - + QTrapez<1> trapez; check(trapez); - + QSimpson<1> simpson; check(simpson); diff --git a/tests/base/quadrature_selector.cc b/tests/base/quadrature_selector.cc index 49f14acdb4..2e5f220d7f 100644 --- a/tests/base/quadrature_selector.cc +++ b/tests/base/quadrature_selector.cc @@ -1,15 +1,19 @@ -//---------------------------- quadrature_selector.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- quadrature_selector.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 sure that the QuadratureSelector works for a selection of @@ -28,12 +32,12 @@ template void check (const std::string &name, - const unsigned int order, - const Quadrature &q) + const unsigned int order, + const Quadrature &q) { Assert (QuadratureSelector(name, order).get_points() == - q.get_points(), - ExcInternalError()); + q.get_points(), + ExcInternalError()); deallog << name << ' ' << order << " ok" << std::endl; } @@ -48,7 +52,7 @@ int main() check ("gauss", 2, QGauss<1>(2)); check ("gauss", 2, QGauss<2>(2)); check ("gauss", 2, QGauss<3>(2)); - + check ("gauss", 2, QGauss<3>(2)); check ("gauss", 6, QGauss<3>(6)); check ("gauss", 10, QGauss<3>(10)); diff --git a/tests/base/quadrature_test.cc b/tests/base/quadrature_test.cc index a9f50c1161..5a7a1c989c 100644 --- a/tests/base/quadrature_test.cc +++ b/tests/base/quadrature_test.cc @@ -1,15 +1,19 @@ -//---------------------------- quadrature_test.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2010 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- quadrature_test.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. +// +// --------------------------------------------------------------------- + // check accuracy of various quadrature formulas by using them to @@ -28,20 +32,20 @@ template void -fill_vector (std::vector *>& quadratures) +fill_vector (std::vector *> &quadratures) { quadratures.push_back (new QMidpoint()); quadratures.push_back (new QTrapez()); quadratures.push_back (new QSimpson()); quadratures.push_back (new QMilne()); quadratures.push_back (new QWeddle()); - for (unsigned int i=0;i<9;++i) + for (unsigned int i=0; i<9; ++i) { quadratures.push_back (new QGauss(i)); } QMilne<1> q1d; quadratures.push_back (new Quadrature(q1d)); - for (unsigned int i=2;i<8;++i) + for (unsigned int i=2; i<8; ++i) { quadratures.push_back (new QGaussLobatto(i)); } @@ -49,7 +53,7 @@ fill_vector (std::vector *>& quadratures) template void -check_cells (std::vector*>& quadratures) +check_cells (std::vector*> &quadratures) { Quadrature quadrature; for (unsigned int n=0; n*>& quadratures) double quadrature_int=0; double exact_int=0; double err = 0; - + do - { - ++i; - - quadrature_int=0; - // Check the polynomial x^i*y^i - - for (unsigned int x=0; x(points[x](2)), i*1.0); - case 2: - f *= std::pow(static_cast(points[x](1)), i*1.0); - case 1: - f *= std::pow(static_cast(points[x](0)), i*1.0); - } - quadrature_int+=f*weights[x]; - } - - // the exact integral is 1/(i+1) - exact_int=1./std::pow(static_cast(i+1),dim); - err = std::fabs(quadrature_int-exact_int); - } + { + ++i; + + quadrature_int=0; + // Check the polynomial x^i*y^i + + for (unsigned int x=0; x(points[x](2)), i*1.0); + case 2: + f *= std::pow(static_cast(points[x](1)), i*1.0); + case 1: + f *= std::pow(static_cast(points[x](0)), i*1.0); + } + quadrature_int+=f*weights[x]; + } + + // the exact integral is 1/(i+1) + exact_int=1./std::pow(static_cast(i+1),dim); + err = std::fabs(quadrature_int-exact_int); + } while (err<1e-14); - // Uncomment here for testing + // Uncomment here for testing // deallog << " (Int " << quadrature_int << ',' << exact_int << ")"; deallog << " is exact for polynomials of degree " << i-1 << std::endl; if (dim==1) - { - // check the ordering of - // the quadrature points - bool in_order=true; - for (unsigned int x=1; x*>& quadratures, const bool sub) for (unsigned int n=0; n quadrature (sub == false? - QProjector::project_to_all_faces(*quadratures[n]) : - QProjector::project_to_all_subfaces(*quadratures[n])); + QProjector::project_to_all_faces(*quadratures[n]) : + QProjector::project_to_all_subfaces(*quadratures[n])); const std::vector > &points=quadrature.get_points(); const std::vector &weights=quadrature.get_weights(); @@ -139,49 +143,49 @@ check_faces (const std::vector*>& quadratures, const bool sub) double err = 0; do - { - ++i; - - quadrature_int=0; - // Check the polynomial - // x^i*y^i*z^i - - for (unsigned int x=0; x v(7); - for (unsigned int i=0;i > s(v, 3, 4); - for (unsigned int i=0;i t; t[0][0] = 1; t[1][1] = 2; @@ -34,22 +38,22 @@ int main () Assert (t[0][1] == t[1][0], ExcInternalError()); - // check that if a single element is - // accessed, its transpose element gets the - // same value + // check that if a single element is + // accessed, its transpose element gets the + // same value t[1][0] = 4; Assert (t[0][1] == 4, ExcInternalError()); - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor Assert (std::fabs(t.norm() - std::sqrt(1.*1+2*2+2*4*4)) < 1e-14, ExcInternalError()); - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product Assert (std::fabs (t.norm()*t.norm() - t*t) < 1e-14, ExcInternalError()); diff --git a/tests/base/symmetric_tensor_02.cc b/tests/base/symmetric_tensor_02.cc index 80190cd40c..ed0482033b 100644 --- a/tests/base/symmetric_tensor_02.cc +++ b/tests/base/symmetric_tensor_02.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_02.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_02.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. +// +// --------------------------------------------------------------------- + // test symmetric 3x3 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + SymmetricTensor<2,3> t; t[0][0] = 1; t[1][1] = 2; @@ -37,23 +41,23 @@ int main () Assert (t[0][1] == t[1][0], ExcInternalError()); - // check that if a single element is - // accessed, its transpose element gets the - // same value + // check that if a single element is + // accessed, its transpose element gets the + // same value t[1][0] = 14; Assert (t[0][1] == 14, ExcInternalError()); - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor Assert (std::fabs(t.norm() - std::sqrt(1.*1+2*2+3*3+2*14*14+2*5*5+2*6*6)) < 1e-14, ExcInternalError()); - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product Assert (std::fabs (t.norm()*t.norm() - t*t) < 1e-14, ExcInternalError()); diff --git a/tests/base/symmetric_tensor_03.cc b/tests/base/symmetric_tensor_03.cc index 1e333bf09d..0491deab3f 100644 --- a/tests/base/symmetric_tensor_03.cc +++ b/tests/base/symmetric_tensor_03.cc @@ -1,15 +1,19 @@ -//--------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006 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. +// +// --------------------------------------------------------------------- + // test symmetric 2x2x2x2 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + SymmetricTensor<4,2> t; t[0][0][0][0] = 1; t[1][1][1][1] = 2; @@ -34,28 +38,28 @@ int main () Assert (t[0][1][0][1] == t[1][0][1][0], ExcInternalError()); - // check that if a single element is - // accessed, its transpose element gets the - // same value + // check that if a single element is + // accessed, its transpose element gets the + // same value t[1][0][0][1] = 4; Assert (t[0][1][1][0] == 4, ExcInternalError()); - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor deallog << t.norm() << std::endl; - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product double norm_sqr = 0; for (unsigned int i=0; i<2; ++i) for (unsigned int j=0; j<2; ++j) for (unsigned int k=0; k<2; ++k) - for (unsigned int l=0; l<2; ++l) - norm_sqr += t[i][j][k][l] * t[i][j][k][l]; - + for (unsigned int l=0; l<2; ++l) + norm_sqr += t[i][j][k][l] * t[i][j][k][l]; + Assert (std::fabs (t.norm()*t.norm() - norm_sqr) < 1e-14, ExcInternalError()); diff --git a/tests/base/symmetric_tensor_04.cc b/tests/base/symmetric_tensor_04.cc index 24e5d463a2..73cc4e73ac 100644 --- a/tests/base/symmetric_tensor_04.cc +++ b/tests/base/symmetric_tensor_04.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_04.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006 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. // -//---------------------------- symmetric_tensor_04.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. +// +// --------------------------------------------------------------------- + // test symmetric 3x3x3x3 tensors @@ -26,7 +30,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + SymmetricTensor<4,3> t; t[0][0][0][0] = 1; t[1][1][1][1] = 2; @@ -34,27 +38,27 @@ int main () Assert (t[0][1][0][1] == t[1][0][1][0], ExcInternalError()); - // check that if a single element is - // accessed, its transpose element gets the - // same value + // check that if a single element is + // accessed, its transpose element gets the + // same value t[1][0][0][1] = 4; Assert (t[0][1][1][0] == 4, ExcInternalError()); - // make sure transposition doesn't change - // anything + // make sure transposition doesn't change + // anything Assert (t == transpose(t), ExcInternalError()); - // check norm of tensor + // check norm of tensor deallog << t.norm() << std::endl; - // make sure norm is induced by scalar - // product + // make sure norm is induced by scalar + // product double norm_sqr = 0; for (unsigned int i=0; i<2; ++i) for (unsigned int j=0; j<2; ++j) for (unsigned int k=0; k<2; ++k) - for (unsigned int l=0; l<2; ++l) - norm_sqr += t[i][j][k][l] * t[i][j][k][l]; + for (unsigned int l=0; l<2; ++l) + norm_sqr += t[i][j][k][l] * t[i][j][k][l]; Assert (std::fabs (t.norm()*t.norm() - norm_sqr) < 1e-14, ExcInternalError()); diff --git a/tests/base/symmetric_tensor_05.cc b/tests/base/symmetric_tensor_05.cc index ccc429e4ef..a5e6ae7834 100644 --- a/tests/base/symmetric_tensor_05.cc +++ b/tests/base/symmetric_tensor_05.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_05.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006 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. // -//---------------------------- symmetric_tensor_05.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 sure the tensor t_ijkl=delta_ik delta_jl + delta_il delta_jk // actually maps a rank-2 tensor onto twice itself @@ -28,10 +32,10 @@ void test () for (unsigned int i=0; i a, b; a[0][0] = 1; a[1][1] = 2; @@ -40,38 +44,38 @@ void test () for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_06.cc b/tests/base/symmetric_tensor_06.cc index 03aefa3aff..494acdc5ca 100644 --- a/tests/base/symmetric_tensor_06.cc +++ b/tests/base/symmetric_tensor_06.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_06.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_06.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 sure a tensor similar to the elasticity tensor for the // isotropic case works as expected by comparing with a full tensor @@ -26,56 +30,56 @@ template void test () { const double lambda = 5, - mu = 7; + mu = 7; SymmetricTensor<4,dim> ts; Tensor<4,dim> ta; for (unsigned int i=0; i as, bs; Tensor<2,dim> aa, ba; for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_07.cc b/tests/base/symmetric_tensor_07.cc index 4e201b875e..f46c0afa9b 100644 --- a/tests/base/symmetric_tensor_07.cc +++ b/tests/base/symmetric_tensor_07.cc @@ -1,19 +1,23 @@ -//---------------------------- symmetric_tensor_07.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_07.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. +// +// --------------------------------------------------------------------- + // in symmetric_tensor_06 we have established that contracting with a // symmetric tensor by hand works as with a full tensor that is stored -// in non-symmetric form. here make sure that we can abbreviate the contraction +// in non-symmetric form. here make sure that we can abbreviate the contraction #include "../tests.h" #include @@ -23,28 +27,28 @@ #include - + template void test () { const double lambda = 7, - mu = 5; + mu = 5; SymmetricTensor<4,dim> ts; Tensor<4,dim> ta; for (unsigned int i=0; i as, bs; Tensor<2,dim> aa, ba; @@ -54,28 +58,28 @@ void test () bs = ts * as; double_contract (ba, ta, aa); - + for (unsigned int i=0; i 0, ExcInternalError()); } - + int main () @@ -88,6 +92,6 @@ int main () test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_08.cc b/tests/base/symmetric_tensor_08.cc index 1fc1dc73c2..4b9de8bd3a 100644 --- a/tests/base/symmetric_tensor_08.cc +++ b/tests/base/symmetric_tensor_08.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_08.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_08.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. +// +// --------------------------------------------------------------------- + // a stress test using repeated multiplication of tensors @@ -23,15 +27,15 @@ inline double value(unsigned int i, - unsigned int j, - unsigned int k, - unsigned int l, - double lambda, - double mu) + unsigned int j, + unsigned int k, + unsigned int l, + double lambda, + double mu) { return ((i==k) && (j==l) ? mu : 0) + - ((i==l) && (j==k) ? mu : 0) + - ((i==j) && (k==l) ? lambda : 0); + ((i==l) && (j==k) ? mu : 0) + + ((i==j) && (k==l) ? lambda : 0); } @@ -40,27 +44,27 @@ template void test () { const double lambda = 1.5, - mu = 1.7; + mu = 1.7; SymmetricTensor<4,dim> t; for (unsigned int i=0; i a; for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_09.cc b/tests/base/symmetric_tensor_09.cc index b49bd6449e..fa0ec9cb41 100644 --- a/tests/base/symmetric_tensor_09.cc +++ b/tests/base/symmetric_tensor_09.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_09.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_09.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. +// +// --------------------------------------------------------------------- + // test the determinant code @@ -31,11 +35,11 @@ void test () for (unsigned int i=0; i (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_10.cc b/tests/base/symmetric_tensor_10.cc index af5ec30c39..c47f81cd44 100644 --- a/tests/base/symmetric_tensor_10.cc +++ b/tests/base/symmetric_tensor_10.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_10.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_10.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. +// +// --------------------------------------------------------------------- + // test deviator @@ -24,7 +28,7 @@ template void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_13.cc b/tests/base/symmetric_tensor_13.cc index 94bdfcc4de..179d28ef3b 100644 --- a/tests/base/symmetric_tensor_13.cc +++ b/tests/base/symmetric_tensor_13.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_13.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_13.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. +// +// --------------------------------------------------------------------- + // deviators are trace free by definition @@ -24,7 +28,7 @@ template void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_14.cc b/tests/base/symmetric_tensor_14.cc index 33459592f2..a874a61f7f 100644 --- a/tests/base/symmetric_tensor_14.cc +++ b/tests/base/symmetric_tensor_14.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_14.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_14.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. +// +// --------------------------------------------------------------------- + // test identity_tensor @@ -24,7 +28,7 @@ template void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_15.cc b/tests/base/symmetric_tensor_15.cc index f0a2ffaa4a..fc157f4d19 100644 --- a/tests/base/symmetric_tensor_15.cc +++ b/tests/base/symmetric_tensor_15.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_15.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_15.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. +// +// --------------------------------------------------------------------- + // test outer_product @@ -24,21 +28,21 @@ template void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<2,dim> t; for (unsigned int i=0; i T = outer_product (unit_symmetric_tensor(), unit_symmetric_tensor()); - // T*t should yield a diagonal tensor - // where the diagonal elements are the - // traces of t + // T*t should yield a diagonal tensor + // where the diagonal elements are the + // traces of t SymmetricTensor<2,dim> x = T * t; Assert ((x-trace(t)*unit_symmetric_tensor()).norm() < 1e-15*t.norm(), ExcInternalError()); @@ -49,12 +53,12 @@ void test () deallog << i << ' ' << j << ' ' << x[i][j] << std::endl; } - // test 2: check outer product of t with - // itself + // test 2: check outer product of t with + // itself { const SymmetricTensor<4,dim> T = outer_product (t,t); - // T*t should yield norm(t)^2*t + // T*t should yield norm(t)^2*t SymmetricTensor<2,dim> x = T * t; Assert ((x-(t*t)*t).norm() < 1e-15*t.norm(), ExcInternalError()); @@ -64,10 +68,10 @@ void test () for (unsigned int j=0; j (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_16.cc b/tests/base/symmetric_tensor_16.cc index 5ad3c30e57..462f94dbe1 100644 --- a/tests/base/symmetric_tensor_16.cc +++ b/tests/base/symmetric_tensor_16.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_16.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_16.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. +// +// --------------------------------------------------------------------- + // compute the deviator tensor as stated in the documentation of outer_product @@ -26,15 +30,15 @@ void test () deallog << "dim=" << dim << std::endl; const SymmetricTensor<4,dim> - T = (identity_tensor() - - 1./dim * outer_product(unit_symmetric_tensor(), - unit_symmetric_tensor())); + T = (identity_tensor() + - 1./dim * outer_product(unit_symmetric_tensor(), + unit_symmetric_tensor())); Assert ((T-deviator_tensor()).norm() <= 1e-15*T.norm(), ExcInternalError()); } - + int main () @@ -48,6 +52,6 @@ int main () test<1> (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_17.cc b/tests/base/symmetric_tensor_17.cc index a06ba6ea5c..228463b091 100644 --- a/tests/base/symmetric_tensor_17.cc +++ b/tests/base/symmetric_tensor_17.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_17.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_17.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. +// +// --------------------------------------------------------------------- + // compute the tensor C*unit_symmetric_tensor -- I needed this tensor for an // application, so thought I'd make a test out of it @@ -26,7 +30,7 @@ template void test () { deallog << "dim=" << dim << std::endl; - + SymmetricTensor<4,dim> t; for (unsigned int i=0; i t_times_1 = t * unit_symmetric_tensor(); - + deallog << "t*1=" << std::endl; for (unsigned int i=0; i()).norm() < 1e-14*t_times_1.norm(), ExcInternalError()); } - + int main () @@ -76,6 +80,6 @@ int main () test<1> (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_18.cc b/tests/base/symmetric_tensor_18.cc index d1ccddeb3b..f9bd9970ec 100644 --- a/tests/base/symmetric_tensor_18.cc +++ b/tests/base/symmetric_tensor_18.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_18.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005 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. // -//---------------------------- symmetric_tensor_18.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. +// +// --------------------------------------------------------------------- + // compute double contraction between two rank-4 tensors @@ -29,39 +33,39 @@ void test () for (unsigned int i=0; i (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_19.cc b/tests/base/symmetric_tensor_19.cc index 84bf68e461..ac768a7aee 100644 --- a/tests/base/symmetric_tensor_19.cc +++ b/tests/base/symmetric_tensor_19.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_19.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2007 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. // -//---------------------------- symmetric_tensor_19.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. +// +// --------------------------------------------------------------------- + // check inversion of rank-4 tensor @@ -28,46 +32,46 @@ void check (const SymmetricTensor<4,dim> &A) { const SymmetricTensor<4,dim> B = invert (A); - // check left inverse + // check left inverse deallog << " checking left inverse" << std::endl; const SymmetricTensor<4,dim> T_left = B*A; for (unsigned int i=0; i()[i][j][k][l]) < 1e-10, - ExcInternalError()); - } + ExcInternalError()); + } - // check left inverse + // check left inverse deallog << " checking right inverse" << std::endl; const SymmetricTensor<4,dim> T_right = A*B; for (unsigned int i=0; i()[i][j][k][l]) < 1e-10, - ExcInternalError()); - } + ExcInternalError()); + } } - + template void test () @@ -77,42 +81,42 @@ void test () deallog << " unit tensor" << std::endl; check (identity_tensor()); - // do something with a more complicated - // tensor. make sure it is not - // rank-deficient, so choose elements by - // hand + // do something with a more complicated + // tensor. make sure it is not + // rank-deficient, so choose elements by + // hand deallog << " complicated tensor" << std::endl; SymmetricTensor<4,dim> A; switch (dim) { - case 1: - A[0][0][0][0] = 2; - break; - - case 2: - A[0][0][0][0] = 2; - A[0][0][1][1] = 4; - A[0][0][0][1] = 8; - A[1][1][0][0] = 4; - A[1][1][1][1] = 6; - A[1][1][0][1] = 10; - A[0][1][0][0] = 6; - A[0][1][1][1] = 10; - A[0][1][0][1] = 16; - break; - - case 3: - // I'm too lazy to code something - // up by hand here - for (unsigned int i=0; i<3; ++i) - for (unsigned int j=0; j<3; ++j) - for (unsigned int k=0; k<3; ++k) - for (unsigned int l=0; l<3; ++l) - A[i][j][k][l] = 1.*rand()/RAND_MAX; - break; - - default: - Assert (false, ExcNotImplemented()); + case 1: + A[0][0][0][0] = 2; + break; + + case 2: + A[0][0][0][0] = 2; + A[0][0][1][1] = 4; + A[0][0][0][1] = 8; + A[1][1][0][0] = 4; + A[1][1][1][1] = 6; + A[1][1][0][1] = 10; + A[0][1][0][0] = 6; + A[0][1][1][1] = 10; + A[0][1][0][1] = 16; + break; + + case 3: + // I'm too lazy to code something + // up by hand here + for (unsigned int i=0; i<3; ++i) + for (unsigned int j=0; j<3; ++j) + for (unsigned int k=0; k<3; ++k) + for (unsigned int l=0; l<3; ++l) + A[i][j][k][l] = 1.*rand()/RAND_MAX; + break; + + default: + Assert (false, ExcNotImplemented()); } check (A); } @@ -130,6 +134,6 @@ int main () test<1> (); test<2> (); test<3> (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_20.cc b/tests/base/symmetric_tensor_20.cc index f5f02461bf..94bf6a3d48 100644 --- a/tests/base/symmetric_tensor_20.cc +++ b/tests/base/symmetric_tensor_20.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_20.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006 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. // -//---------------------------- symmetric_tensor_20.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. +// +// --------------------------------------------------------------------- + // check SymmetricTensor<2,dim>::operator= (double) @@ -27,7 +31,7 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + const unsigned int dim=3; SymmetricTensor<2,dim> t; t[0][0] = t[1][0] = t[1][1] = t[2][2] = 3; @@ -37,6 +41,6 @@ int main () deallog << t.norm() << std::endl; Assert (t.norm() == 0, ExcInternalError()); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_21.cc b/tests/base/symmetric_tensor_21.cc index a6908ec07a..19a414dbcc 100644 --- a/tests/base/symmetric_tensor_21.cc +++ b/tests/base/symmetric_tensor_21.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_21.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2008 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. // -//---------------------------- symmetric_tensor_21.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. +// +// --------------------------------------------------------------------- + // check SymmetricTensor<4,dim>::operator= (double) @@ -27,17 +31,17 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + const unsigned int dim=3; SymmetricTensor<4,dim> t; t[0][0][0][0] = t[1][0][1][0] = t[1][1][1][1] - = t[2][2][2][2] = t[2][0][2][0] = 3; + = t[2][2][2][2] = t[2][0][2][0] = 3; deallog << t.norm() << std::endl; t = 0; deallog << t.norm() << std::endl; Assert (t.norm() == 0, ExcInternalError()); - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_22.cc b/tests/base/symmetric_tensor_22.cc index 655abef27d..0494b4bc27 100644 --- a/tests/base/symmetric_tensor_22.cc +++ b/tests/base/symmetric_tensor_22.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_22.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2008 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. // -//---------------------------- symmetric_tensor_22.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. +// +// --------------------------------------------------------------------- + // check operator<< for SymmetricTensor<2,dim> and SymmetricTensor<4,dim> @@ -37,15 +41,15 @@ int main () deallog << t << std::endl; } - + { const unsigned int dim=3; SymmetricTensor<4,dim> t; t[0][0][0][0] = t[1][0][1][0] = t[1][1][1][1] - = t[2][2][2][2] = t[2][0][2][0] = 3; + = t[2][2][2][2] = t[2][0][2][0] = 3; deallog << t << std::endl; } - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_23.cc b/tests/base/symmetric_tensor_23.cc index 27db8f9b04..db774d364c 100644 --- a/tests/base/symmetric_tensor_23.cc +++ b/tests/base/symmetric_tensor_23.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_23.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2008 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. // -//---------------------------- symmetric_tensor_23.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. +// +// --------------------------------------------------------------------- + // check operator<< for SymmetricTensor<2,dim> and SymmetricTensor<4,dim> @@ -34,7 +38,7 @@ int main () double x[1] = { 1 }; Assert ((t == SymmetricTensor<2,1>(x)), - ExcInternalError()); + ExcInternalError()); } { @@ -45,7 +49,7 @@ int main () double x[3] = { 1, 2, 3 }; Assert ((t == SymmetricTensor<2,2>(x)), - ExcInternalError()); + ExcInternalError()); } { @@ -59,8 +63,8 @@ int main () double x[6] = { 1, 2, 3, 4, 5, 6 }; Assert ((t == SymmetricTensor<2,3>(x)), - ExcInternalError()); + ExcInternalError()); } - + deallog << "OK" << std::endl; } diff --git a/tests/base/symmetric_tensor_24.cc b/tests/base/symmetric_tensor_24.cc index 0ce352002d..d5a9051b4e 100644 --- a/tests/base/symmetric_tensor_24.cc +++ b/tests/base/symmetric_tensor_24.cc @@ -1,15 +1,19 @@ -//---------------------------- symmetric_tensor_24.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2008, 2009 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. // -//---------------------------- symmetric_tensor_24.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. +// +// --------------------------------------------------------------------- + // check SymmetricTensor<2,dim>::component_to_unrolled_index and the // other way round @@ -29,13 +33,13 @@ void check () for (unsigned int i=0; i S; for (unsigned int i=0; i +#include +#include +#include + + +template +void test () +{ + deallog << "dim=" << dim << std::endl; + + // initialize symmetric and non-symmetric tensors. in the former case, we + // only need to initialize one half + SymmetricTensor<2,dim> s; + for (unsigned int i=0; i t; + for (unsigned int i=0; i (); + test<2> (); + test<3> (); + + deallog << "OK" << std::endl; +} diff --git a/tests/base/symmetric_tensor_27/cmp/generic b/tests/base/symmetric_tensor_27/cmp/generic new file mode 100644 index 0000000000..48633ff75e --- /dev/null +++ b/tests/base/symmetric_tensor_27/cmp/generic @@ -0,0 +1,14 @@ + +DEAL::dim=1 +DEAL::1.00 +DEAL::1.00 +DEAL::1.00 +DEAL::dim=2 +DEAL::44.0 +DEAL::38.0 +DEAL::38.0 +DEAL::dim=3 +DEAL::425. +DEAL::381. +DEAL::381. +DEAL::OK diff --git a/tests/base/table.cc b/tests/base/table.cc index e9f6f59a7d..2d23869b6c 100644 --- a/tests/base/table.cc +++ b/tests/base/table.cc @@ -1,15 +1,19 @@ -//---------------------------- table.cc,v --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998 - 2005, 2008, 2010 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- table.cc,v --------------------------- +// 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 equivalence of operator[] and operator() on table objects @@ -28,7 +32,8 @@ const int entries[] = { 11,12,13,21, 33,58,65,78, 80,83,87,91, 1, 2, 3, 4, - 6, 8, 10, 14}; + 6, 8, 10, 14 + }; int main () @@ -40,7 +45,7 @@ main () deallog.depth_console(0); deallog.threshold_double(1.e-10); - // a square table + // a square table if (true) { Table<2,double> Td(3,3); @@ -70,7 +75,7 @@ main () }; }; - // a rectangular table + // a rectangular table if (true) { Table<2,double> Td(4,3); @@ -105,37 +110,37 @@ main () }; - // a transposed rectangular table + // a transposed rectangular table if (true) { TransposeTable Td(4,3); TransposeTable Ti(4,3); - // Fill the float matrix in row - // first ordering + // Fill the float matrix in row + // first ordering for (unsigned int i=0; i<12; ++i) { Td(i/3,i%3) = entries[i]; }; - // This fills the integer - // matrix in column first - // ordering + // This fills the integer + // matrix in column first + // ordering Ti.fill(entries); - // Output both matrices... - // They should be different + // Output both matrices... + // They should be different for (unsigned int i=0; i<4; ++i) - { - for (unsigned int j=0; j<3; ++j) - { - deallog << '\t' << Ti(i,j) << '/' << Td(i,j); - } - deallog << std::endl; - } + { + for (unsigned int j=0; j<3; ++j) + { + deallog << '\t' << Ti(i,j) << '/' << Td(i,j); + } + deallog << std::endl; + } } - // a 1d-table + // a 1d-table if (true) { const unsigned int N=10; @@ -158,7 +163,7 @@ main () }; }; - // a 3d-table + // a 3d-table if (true) { const unsigned int I=4, J=3, K=2; @@ -177,21 +182,21 @@ main () for (unsigned int i=0; i(L), - ExcDimensionMismatch(Td[i][j][k].end() - Td[i][j][k].begin(), - static_cast(L))); + for (unsigned int k=0; k(L), + ExcDimensionMismatch(Td[i][j][k].end() - Td[i][j][k].begin(), + static_cast(L))); }; - // 5d-table + // 5d-table if (true) { const unsigned int I=6, J=2, K=3, L=4, M=5; @@ -264,45 +269,45 @@ main () for (unsigned int i=0; i(M), - ExcDimensionMismatch(Td[i][j][k][l].end() - Td[i][j][k][l].begin(), - static_cast(M))); + for (unsigned int k=0; k(M), + ExcDimensionMismatch(Td[i][j][k][l].end() - Td[i][j][k][l].begin(), + static_cast(M))); }; - // a 6d-table + // a 6d-table if (true) { const unsigned int I=6, J=2, K=4, L=3, M=5, N=7; @@ -313,45 +318,45 @@ main () for (unsigned int i=0; i(N), - ExcDimensionMismatch(Td[i][j][k][l][m].end() - Td[i][j][k][l][m].begin(), - static_cast(N))); + for (unsigned int k=0; k(N), + ExcDimensionMismatch(Td[i][j][k][l][m].end() - Td[i][j][k][l][m].begin(), + static_cast(N))); }; } diff --git a/tests/base/table_handler_01.cc b/tests/base/table_handler_01.cc index 85e36d7e8f..d6e1fd97ce 100644 --- a/tests/base/table_handler_01.cc +++ b/tests/base/table_handler_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010 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 "../tests.h" #include @@ -34,14 +38,14 @@ int main () TableHandler table; for (unsigned int i=1; i<=10; ++i) - { - table.add_value("numbers", i); - table.add_value("squares", i*i); - table.add_value("square roots", sqrt(i)); - } + { + table.add_value("numbers", i); + table.add_value("squares", i*i); + table.add_value("square roots", sqrt(i)); + } table.set_tex_table_caption("This is a caption text with \\LaTeX{} symbols"); - // output + // output table.write_tex(deallog.get_file_stream()); } diff --git a/tests/base/table_handler_02.cc b/tests/base/table_handler_02.cc index 4d5af41e92..5cab305dc8 100644 --- a/tests/base/table_handler_02.cc +++ b/tests/base/table_handler_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // test output of tables with columns in a variety of data types @@ -34,21 +38,21 @@ int main () TableHandler table; - // have keys that we rotate in each row to - // make sure that individual entries in the - // same column really have different data - // types + // have keys that we rotate in each row to + // make sure that individual entries in the + // same column really have different data + // types std::string keys[4] = { "key1", "key2", "key3", "key4" }; for (unsigned int i=0; i<10; ++i) - { - table.add_value(keys[(0+i)%4], i); - table.add_value(keys[(1+i)%4], sqrt(i)); - table.add_value(keys[(2+i)%4], 'a'+i); - table.add_value(keys[(3+i)%4], std::string("abc-")+"0123456789"[i]); - } - - // output + { + table.add_value(keys[(0+i)%4], i); + table.add_value(keys[(1+i)%4], sqrt(i)); + table.add_value(keys[(2+i)%4], 'a'+i); + table.add_value(keys[(3+i)%4], std::string("abc-")+"0123456789"[i]); + } + + // output table.write_text(deallog.get_file_stream()); } diff --git a/tests/base/table_handler_03.cc b/tests/base/table_handler_03.cc index f900841ec8..f3e99f2aae 100644 --- a/tests/base/table_handler_03.cc +++ b/tests/base/table_handler_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // make sure we print something at all when an entry in the table corresponds // to the empty string diff --git a/tests/base/table_handler_04.cc b/tests/base/table_handler_04.cc index 2931b9a381..b723ee5ef4 100644 --- a/tests/base/table_handler_04.cc +++ b/tests/base/table_handler_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // pad columns if we don't fill them in each iteration diff --git a/tests/base/table_handler_05.cc b/tests/base/table_handler_05.cc index 5bfd844df0..22bfaa63af 100644 --- a/tests/base/table_handler_05.cc +++ b/tests/base/table_handler_05.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // pad columns if we don't fill them in each iteration. also fill them below // the last element if we create output @@ -38,18 +42,18 @@ int main () std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0); table.add_value(keys[0], 1); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2); table.add_value(keys[1], 13); table.add_value(keys[2], std::string("a")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1); - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table.write_text(deallog.get_file_stream()); } diff --git a/tests/base/table_handler_06.cc b/tests/base/table_handler_06.cc index 721b18cd28..2863f99d09 100644 --- a/tests/base/table_handler_06.cc +++ b/tests/base/table_handler_06.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // use the alternative format for the headers in TableHandler::write_text @@ -37,19 +41,19 @@ int main () std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0); table.add_value(keys[0], 1); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2); table.add_value(keys[1], 13); table.add_value(keys[2], std::string("a")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1); - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); + TableHandler::table_with_separate_column_description); } diff --git a/tests/base/table_handler_07.cc b/tests/base/table_handler_07.cc index 79284993b6..cfad4e156e 100644 --- a/tests/base/table_handler_07.cc +++ b/tests/base/table_handler_07.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011, 2012 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. +// +// --------------------------------------------------------------------- + // make sure a TableHandler can be copied @@ -32,29 +36,29 @@ int main () deallog.depth_console(0); deallog.threshold_double(1.e-10); -/* Like in _06 */ + /* Like in _06 */ TableHandler table; table.set_auto_fill_mode (true); std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0); table.add_value(keys[0], 1); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2); table.add_value(keys[1], 13); table.add_value(keys[2], std::string("a")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1); -/* Now copy and write the file from the copy */ + /* Now copy and write the file from the copy */ TableHandler table2; table2 = table; - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table2.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); + TableHandler::table_with_separate_column_description); } diff --git a/tests/base/table_handler_08.cc b/tests/base/table_handler_08.cc index 777c55cc93..e3beeb9e35 100644 --- a/tests/base/table_handler_08.cc +++ b/tests/base/table_handler_08.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011, 2012 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. +// +// --------------------------------------------------------------------- + // make sure a TableHandler can be copied, this time using the copy // constructor @@ -33,28 +37,28 @@ int main () deallog.depth_console(0); deallog.threshold_double(1.e-10); -/* Like in _06 */ + /* Like in _06 */ TableHandler table; table.set_auto_fill_mode (true); std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0); table.add_value(keys[0], 1); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2); table.add_value(keys[1], 13); table.add_value(keys[2], std::string("a")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1); -/* Now copy and write the file from the copy */ + /* Now copy and write the file from the copy */ TableHandler table2(table); - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table2.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); + TableHandler::table_with_separate_column_description); } diff --git a/tests/base/table_handler_09.cc b/tests/base/table_handler_09.cc index d176e1e766..95330167a3 100644 --- a/tests/base/table_handler_09.cc +++ b/tests/base/table_handler_09.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id: table_handler_06.cc 24924 2012-01-25 12:35:17Z kormann $ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // use the alternative format for the headers in TableHandler::write_text @@ -37,19 +41,19 @@ int main () std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0); table.add_value(keys[0], 1); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2); table.add_value(keys[1], 113); table.add_value(keys[2], std::string("a")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1); - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table.write_text(deallog.get_file_stream(), - TableHandler::simple_table_with_separate_column_description); + TableHandler::simple_table_with_separate_column_description); } diff --git a/tests/base/table_handler_10.cc b/tests/base/table_handler_10.cc index 51e2f64c45..e4666b6307 100644 --- a/tests/base/table_handler_10.cc +++ b/tests/base/table_handler_10.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id: table_handler_06.cc 24924 2012-01-25 12:35:17Z kormann $ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // test changing header style after adding entries @@ -37,26 +41,26 @@ int main () std::string keys[3] = { "key1", "key2", "key3" }; - // fill rows 1 and 2 partially + // fill rows 1 and 2 partially table.add_value(keys[0], 0.0); table.add_value(keys[0], 1.0); - // now fill row 3 completely + // now fill row 3 completely table.add_value(keys[0], 2.0); table.add_value(keys[1], 123.456); table.add_value(keys[2], std::string("abc")); - // now again fill row 4 partially + // now again fill row 4 partially table.add_value(keys[0], 1.0); - // produce output. hope that row 4 is - // completely padded + // produce output. hope that row 4 is + // completely padded table.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); + TableHandler::table_with_separate_column_description); table.set_scientific(keys[0], true); table.set_precision(keys[1], 1); table.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); - + TableHandler::table_with_separate_column_description); + } diff --git a/tests/base/table_handler_11.cc b/tests/base/table_handler_11.cc index 861dc13d9e..e735d91ee1 100644 --- a/tests/base/table_handler_11.cc +++ b/tests/base/table_handler_11.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id: table_handler_06.cc 24924 2012-01-25 12:35:17Z kormann $ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011 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. +// +// --------------------------------------------------------------------- + // test output of supercolumns @@ -43,17 +47,17 @@ int main () table.add_value(keys[2], std::string("abc")); table.add_value(keys[3], std::string("A")); table.add_value(keys[4], 123456789.0); - + table.add_column_to_supercolumn("key1","short"); table.add_column_to_supercolumn("key2","short"); table.add_column_to_supercolumn("key3","very_long_supercolumn"); table.add_column_to_supercolumn("key4","very_long_supercolumn"); table.write_text(deallog.get_file_stream(), - TableHandler::table_with_separate_column_description); - + TableHandler::table_with_separate_column_description); + deallog << std::endl; - + table.write_text(deallog.get_file_stream(), - TableHandler::table_with_headers); + TableHandler::table_with_headers); } diff --git a/tests/base/table_handler_12.cc b/tests/base/table_handler_12.cc index db899a93ef..da4066aea5 100644 --- a/tests/base/table_handler_12.cc +++ b/tests/base/table_handler_12.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id: table_handler_07.cc -1 $ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2010, 2011, 2012 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. +// +// --------------------------------------------------------------------- + // verify that the flags we set for precision when printing stuff from // a table do not affect the precision flags set for the stream to @@ -34,20 +38,20 @@ int main () deallog.depth_console(0); deallog.threshold_double(1.e-10); - // set precision on the output - // stream to 4 digits + // set precision on the output + // stream to 4 digits logfile << std::setprecision(4); - // but then set precision on the - // table output to 2 + // but then set precision on the + // table output to 2 TableHandler table; table.add_value("key", 0.123456789); table.set_precision ("key", 2); - // now output the table... + // now output the table... table.write_text(logfile); - // ...and then output some other - // number, hopefully with 4 digits - // of precision + // ...and then output some other + // number, hopefully with 4 digits + // of precision logfile << 0.123456789 << std::endl; } diff --git a/tests/base/table_handler_13.cc b/tests/base/table_handler_13.cc new file mode 100644 index 0000000000..1a6a019bb0 --- /dev/null +++ b/tests/base/table_handler_13.cc @@ -0,0 +1,59 @@ +// --------------------------------------------------------------------- +// $Id$ +// +// Copyright (C) 2010 - 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. +// +// --------------------------------------------------------------------- + + +// use the org-mode in TableHandler::write_text + + +#include "../tests.h" +#include +#include +#include + +#include +#include +#include +#include + + +int main () +{ + std::ofstream logfile("table_handler_13/output"); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + TableHandler table; + table.set_auto_fill_mode (true); + + std::string keys[3] = { "key1", "key2", "key3" }; + + // fill rows 1 and 2 partially + table.add_value(keys[0], 0); + table.add_value(keys[0], 1); + // now fill row 3 completely + table.add_value(keys[0], 2); + table.add_value(keys[1], 113); + table.add_value(keys[2], std::string("a")); + + // now again fill row 4 partially + table.add_value(keys[0], 1); + + // produce output. hope that row 4 is + // completely padded + table.write_text(deallog.get_file_stream(), + TableHandler::org_mode_table); +} diff --git a/tests/base/table_handler_13/cmp/generic b/tests/base/table_handler_13/cmp/generic new file mode 100644 index 0000000000..22555388a3 --- /dev/null +++ b/tests/base/table_handler_13/cmp/generic @@ -0,0 +1,6 @@ + +| key1 | key2 | key3 | +| 0 | 0 | "" | +| 1 | 0 | "" | +| 2 | 113 | a | +| 1 | 0 | "" | diff --git a/tests/base/table_indices_01.cc b/tests/base/table_indices_01.cc new file mode 100644 index 0000000000..cc6a93ea5e --- /dev/null +++ b/tests/base/table_indices_01.cc @@ -0,0 +1,52 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// check TableIndices in various ways + +#include "../tests.h" +#include +#include +#include +#include +#include + +int main () +{ + std::ofstream logfile("table_indices_01/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + const TableIndices<2> t1(84,42); + TableIndices<2> t2; + t2[0] = 84; + t2[1] = 42; + + Assert (t1 == t2, ExcInternalError()); + Assert (t1[0] == t2[0], ExcInternalError()); + Assert (t1[1] == t2[1], ExcInternalError()); + + Assert (! (t1 != t2), ExcInternalError()); + + t2.sort(); + Assert (t1 != t2, ExcInternalError()); + Assert (t1[0] == t2[1], ExcInternalError()); + Assert (t1[1] == t2[0], ExcInternalError()); + + deallog << "OK" << std::endl; +} diff --git a/tests/base/table_indices_01/cmp/generic b/tests/base/table_indices_01/cmp/generic new file mode 100644 index 0000000000..0fd8fc12f0 --- /dev/null +++ b/tests/base/table_indices_01/cmp/generic @@ -0,0 +1,2 @@ + +DEAL::OK diff --git a/tests/base/task_01.cc b/tests/base/task_01.cc index 3458c844b9..96c1cd465c 100644 --- a/tests/base/task_01.cc +++ b/tests/base/task_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // a simple test for task based programming: just create a task and wait for // its completion. the task sleeps for a bit to make sure that the waiting @@ -23,13 +27,13 @@ #include -void test () +void test () { sleep (3); deallog << "OK" << std::endl; } - + int main() { std::ofstream logfile("task_01/output"); diff --git a/tests/base/task_02.cc b/tests/base/task_02.cc index 4ca7ebb45a..c7a826c76d 100644 --- a/tests/base/task_02.cc +++ b/tests/base/task_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // like task_01, but with return value @@ -21,14 +25,14 @@ #include -int test () +int test () { sleep (3); return 42; } - - + + int main() { diff --git a/tests/base/task_03.cc b/tests/base/task_03.cc index 9cc0a0b6ca..616ee60c1d 100644 --- a/tests/base/task_03.cc +++ b/tests/base/task_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // make sure we can start several tasks at once and that they actually do // something at the same time @@ -22,15 +26,15 @@ #include -void test (int i) +void test (int i) { deallog << "Task " << i << " starting..." << std::endl; sleep (1); deallog << "Task " << i << " finished!" << std::endl; } - - + + int main() { @@ -38,7 +42,7 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::Task<> t1 = Threads::new_task (test, 1); { Threads::Task<> t2 = Threads::new_task (test, 2); @@ -46,6 +50,6 @@ int main() t1.join (); t2.join (); } - + deallog << "OK" << std::endl; } diff --git a/tests/base/task_04.cc b/tests/base/task_04.cc index 03a9353afb..3fb1768554 100644 --- a/tests/base/task_04.cc +++ b/tests/base/task_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // start tasks from tasks @@ -21,7 +25,7 @@ #include -void test (int i) +void test (int i) { deallog << "Task " << i << " starting..." << std::endl; @@ -33,13 +37,13 @@ void test (int i) t1.join (); t2.join (); } - + sleep (1); deallog << "Task " << i << " finished!" << std::endl; } - - + + int main() { @@ -47,12 +51,12 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::Task<> t1 = Threads::new_task (test, 1); Threads::Task<> t2 = Threads::new_task (test, 2); t1.join (); t2.join (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/task_05.cc b/tests/base/task_05.cc index e776f98a87..a9fc105be4 100644 --- a/tests/base/task_05.cc +++ b/tests/base/task_05.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // start several tasks and see that return_value() waits for the correct // result @@ -28,7 +32,7 @@ #include -int test (int i) +int test (int i) { int k = 1; for (unsigned int j=0; j<100000000; ++j) @@ -36,8 +40,8 @@ int test (int i) return k; } - - + + int main() { @@ -45,19 +49,21 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::Task tasks[] = - { Threads::new_task (test, 1), - Threads::new_task (test, 2), - Threads::new_task (test, 3), - Threads::new_task (test, 4), - Threads::new_task (test, 5), - Threads::new_task (test, 6), - Threads::new_task (test, 7), - Threads::new_task (test, 8) }; - + { + Threads::new_task (test, 1), + Threads::new_task (test, 2), + Threads::new_task (test, 3), + Threads::new_task (test, 4), + Threads::new_task (test, 5), + Threads::new_task (test, 6), + Threads::new_task (test, 7), + Threads::new_task (test, 8) + }; + for (unsigned int i=0; i -void test (int i) +void test (int i) { deallog << "Task " << i << " starting..." << std::endl; sleep (1); @@ -33,8 +37,8 @@ void test (int i) deallog << "Task " << i << " finished!" << std::endl; } - - + + int main() { @@ -42,12 +46,12 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::Thread<> t1 = Threads::new_thread (test, 1); Threads::Thread<> t2 = Threads::new_thread (test, 2); t1.join (); t2.join (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/task_07.cc b/tests/base/task_07.cc index 7f3504daf0..d9f148710f 100644 --- a/tests/base/task_07.cc +++ b/tests/base/task_07.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // verify that TaskGroup does what we want @@ -21,15 +25,15 @@ #include -void test (int i) +void test (int i) { deallog << "Task " << i << " starting..." << std::endl; sleep (1); deallog << "Task " << i << " finished!" << std::endl; } - - + + int main() { @@ -37,12 +41,12 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::TaskGroup<> tg; tg += Threads::new_task (test, 1); tg += Threads::new_task (test, 2); tg.join_all (); - + deallog << "OK" << std::endl; } diff --git a/tests/base/task_08.cc b/tests/base/task_08.cc index 772bbac245..c7d19964f1 100644 --- a/tests/base/task_08.cc +++ b/tests/base/task_08.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // tasks cannot be abandoned, i.e. if you don't explicitly wait for a // task to finish then the destructor of Task will wait for the task @@ -23,14 +27,14 @@ #include -void test (int i) +void test (int i) { sleep (1); deallog << "Task " << i << " finished!" << std::endl; } - - + + int main() { @@ -38,8 +42,8 @@ int main() deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + Threads::new_task (test, 1); - + deallog << "OK" << std::endl; } diff --git a/tests/base/task_09.cc b/tests/base/task_09.cc index fa14a58b01..6e84e4bbe2 100644 --- a/tests/base/task_09.cc +++ b/tests/base/task_09.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2009, 2010 by the deal.II authors +// Copyright (C) 2009 - 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. +// +// --------------------------------------------------------------------- + // we used to synchronise child tasks with the one that spawned it by // using a mutex, but this could lead to deadlocks if there are more @@ -35,20 +39,20 @@ void test () void outer () { - // wait for some time to make sure - // that really all outer tasks have - // been started, then start a bunch - // of new tasks and wait for them - // to finish. it used to be that - // the join() function used a mutex - // which could only be acquired - // once the spawned task has - // finished, but since we already - // have so many tasks running at - // this point, the children never - // get to run and so never release - // the mutex that we try to acquire - // in join() + // wait for some time to make sure + // that really all outer tasks have + // been started, then start a bunch + // of new tasks and wait for them + // to finish. it used to be that + // the join() function used a mutex + // which could only be acquired + // once the spawned task has + // finished, but since we already + // have so many tasks running at + // this point, the children never + // get to run and so never release + // the mutex that we try to acquire + // in join() sleep (1); Threads::new_task (test).join(); diff --git a/tests/base/tensor.cc b/tests/base/tensor.cc index a4d452a044..b3ad0c9561 100644 --- a/tests/base/tensor.cc +++ b/tests/base/tensor.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- tensor.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. +// +// --------------------------------------------------------------------- + #include "../tests.h" @@ -26,10 +30,10 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + double a[3][3] = {{1, 2, 3}, {3, 4, 5}, {6, 7, 8}}; double b[3][3] = {{25,31,37}, {45,57,69}, {75,96,117}}; - + const unsigned int dim=3; Tensor<2,dim> t(a); Tensor<2,dim> tt; @@ -38,10 +42,10 @@ int main () Assert (transpose(transpose(result)) == result, ExcInternalError()); Vector unrolled(9); - + t.unroll(unrolled); deallog << "unrolled:"; - for (unsigned i=0;i<9;i++) + for (unsigned i=0; i<9; i++) deallog << ' ' << unrolled(i); deallog << std::endl; @@ -49,17 +53,17 @@ int main () for (unsigned int i=0; i::operator= (double) @@ -27,9 +31,9 @@ int main () deallog.attach(logfile); deallog.depth_console(0); deallog.threshold_double(1.e-10); - + double a[3] = {1, 2, 3}; - + const unsigned int dim=3; Tensor<1,dim> t(a); @@ -38,6 +42,6 @@ int main () deallog << t.norm() << std::endl; Assert (t.norm() == 0, ExcInternalError()); - + deallog << "OK" << std::endl; } diff --git a/tests/base/tensor_04.cc b/tests/base/tensor_04.cc index 3b028f71aa..153c207731 100644 --- a/tests/base/tensor_04.cc +++ b/tests/base/tensor_04.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_04.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2012 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. // -//---------------------------- tensor_04.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. +// +// --------------------------------------------------------------------- + // check l1_norm(Tensor<2,dim>) diff --git a/tests/base/tensor_05.cc b/tests/base/tensor_05.cc index 91a918933a..524fc1d71f 100644 --- a/tests/base/tensor_05.cc +++ b/tests/base/tensor_05.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_05.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2012 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. // -//---------------------------- tensor_05.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. +// +// --------------------------------------------------------------------- + // check linfty_norm(Tensor<2,dim>) diff --git a/tests/base/tensor_06.cc b/tests/base/tensor_06.cc index b9648364e9..e3b1474172 100644 --- a/tests/base/tensor_06.cc +++ b/tests/base/tensor_06.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_06.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2012 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. // -//---------------------------- tensor_06.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. +// +// --------------------------------------------------------------------- + // check Tensor<1,dim>::operator*(Tensor<1,dim>) diff --git a/tests/base/tensor_07.cc b/tests/base/tensor_07.cc index 442fe0a142..6ae7f21494 100644 --- a/tests/base/tensor_07.cc +++ b/tests/base/tensor_07.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_05.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2006, 2012 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. // -//---------------------------- tensor_05.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. +// +// --------------------------------------------------------------------- + // check double_contract(Tensor<2,dim>,Tensor<2,dim>) @@ -24,11 +28,11 @@ template void test_constant() { Tensor<2,dim> t; - for (unsigned int i=0;i t; unsigned int sum = 0; - for (unsigned int i=0;i s; Tensor<2,dim> t; unsigned int sum = 0; - for (unsigned int i=0;i,Tensor<2,dim>,Tensor<1,dim>) @@ -24,17 +29,17 @@ void test_select(double f1, double f2) { Tensor<2,dim> t; unsigned int k = 0; - for (unsigned int i=0;i u, v; - u[i] = f1; - v[j] = f2; - deallog << '\t' << contract3(u,t,v); + Tensor<1,dim> u, v; + u[i] = f1; + v[j] = f2; + deallog << '\t' << contract3(u,t,v); } deallog << std::endl; } @@ -44,14 +49,14 @@ int main () { std::string logname = JobIdentifier::base_name(__FILE__) + std::string("/output"); std::ofstream logfile(logname.c_str()); - deallog.attach(logfile); + deallog.attach(logfile); deallog.depth_console(0); deallog << std::setprecision(3); test_select<2>(1.,1.); test_select<3>(1.,1.); test_select<4>(1.,1.); - + test_select<2>(2.,3.); test_select<3>(2.,3.); test_select<4>(2.,3.); diff --git a/tests/base/tensor_24.cc b/tests/base/tensor_24.cc new file mode 100644 index 0000000000..21f1b43e1b --- /dev/null +++ b/tests/base/tensor_24.cc @@ -0,0 +1,60 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// check Tensor<2,dim>::component_to_unrolled_index and the +// other way round + +#include "../tests.h" +#include +#include +#include +#include +#include + + +template +void check () +{ + typedef Tensor<2,dim> S; + for (unsigned int i=0; i (); + check<2> (); + check<3> (); + + deallog << "OK" << std::endl; +} diff --git a/tests/base/tensor_24/cmp/generic b/tests/base/tensor_24/cmp/generic new file mode 100644 index 0000000000..b19d2b3e7e --- /dev/null +++ b/tests/base/tensor_24/cmp/generic @@ -0,0 +1,16 @@ + +DEAL::0 -- [0,0] +DEAL::0 -- [0,0] +DEAL::1 -- [0,1] +DEAL::2 -- [1,0] +DEAL::3 -- [1,1] +DEAL::0 -- [0,0] +DEAL::1 -- [0,1] +DEAL::2 -- [0,2] +DEAL::3 -- [1,0] +DEAL::4 -- [1,1] +DEAL::5 -- [1,2] +DEAL::6 -- [2,0] +DEAL::7 -- [2,1] +DEAL::8 -- [2,2] +DEAL::OK diff --git a/tests/base/tensor_25.cc b/tests/base/tensor_25.cc new file mode 100644 index 0000000000..e3ff1a5315 --- /dev/null +++ b/tests/base/tensor_25.cc @@ -0,0 +1,68 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// check Tensor<2,dim>::operator[] (TableIndices) + +#include "../tests.h" +#include +#include +#include +#include +#include + + +template +void check () +{ + typedef Tensor<3,dim> T; + T t; + for (unsigned int i=0; i(i,j,k) + == + T::unrolled_to_component_indices (i*dim*dim+j*dim+k), + ExcInternalError()); + Assert (T::component_to_unrolled_index(TableIndices<3>(i,j,k)) + == + i*dim*dim+j*dim+k, + ExcInternalError()); + Assert (t[TableIndices<3>(i,j,k)] == t[i][j][k], + ExcInternalError()); + } + deallog << "OK" << std::endl; +} + + +int main () +{ + std::ofstream logfile("tensor_25/output"); + deallog << std::setprecision(3); + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + check<1> (); + check<2> (); + check<3> (); + + deallog << "OK" << std::endl; +} diff --git a/tests/base/tensor_25/cmp/generic b/tests/base/tensor_25/cmp/generic new file mode 100644 index 0000000000..5f42bb230f --- /dev/null +++ b/tests/base/tensor_25/cmp/generic @@ -0,0 +1,5 @@ + +DEAL::OK +DEAL::OK +DEAL::OK +DEAL::OK diff --git a/tests/base/tensor_complex.cc b/tests/base/tensor_complex.cc index f0dd879493..af2521e2ad 100644 --- a/tests/base/tensor_complex.cc +++ b/tests/base/tensor_complex.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_complex.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- tensor_complex.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. +// +// --------------------------------------------------------------------- + // Same as tensor.cc, but uses tensors based on std::complex instead // of double @@ -31,19 +35,21 @@ int main () deallog.threshold_double(1.e-10); double a_double[3][3][2] = {{{1,-1}, {2,0}, {3,0}}, - {{3,0}, {4,0}, {5,0}}, - {{6,0}, {7,0}, {8,3}}}; + {{3,0}, {4,0}, {5,0}}, + {{6,0}, {7,0}, {8,3}} + }; double b_double[3][3][2] = {{{24,-2}, {31,-2}, {37,6}}, - {{45,-3}, {57,0}, {69,15}}, - {{75,12}, {96,21}, {108,48}}}; + {{45,-3}, {57,0}, {69,15}}, + {{75,12}, {96,21}, {108,48}} + }; const unsigned int dim=3; std::complex a[dim][dim], b[dim][dim]; for (unsigned int d=0; d(a_double[d][e][0],a_double[d][e][1]); - b[d][e] = std::complex(b_double[d][e][0],b_double[d][e][1]); + a[d][e] = std::complex(a_double[d][e][0],a_double[d][e][1]); + b[d][e] = std::complex(b_double[d][e][0],b_double[d][e][1]); } Tensor<2,dim,std::complex > t(a); @@ -54,11 +60,11 @@ int main () Vector > unrolled(9); - // cast result to double to profit from zero - // threshold and so on + // cast result to double to profit from zero + // threshold and so on t.unroll(unrolled); deallog << "unrolled:"; - for (unsigned i=0;i<9;i++) + for (unsigned i=0; i<9; i++) deallog << ' ' << unrolled(i); deallog << std::endl; @@ -66,7 +72,7 @@ int main () for (unsigned int i=0; i > result; cross_product(result,e1,e2); deallog << '\t' << result[0] - << '\t' << result[1] - << '\t' << result[2] << std::endl; + << '\t' << result[1] + << '\t' << result[2] << std::endl; cross_product(result,e2,e3); deallog << '\t' << result[0] - << '\t' << result[1] << '\t' - << result[2] << std::endl; + << '\t' << result[1] << '\t' + << result[2] << std::endl; cross_product(result,e3,e1); deallog << '\t' << result[0] - << '\t' << result[1] - << '\t' << result[2] << std::endl; + << '\t' << result[1] + << '\t' << result[2] << std::endl; deallog.pop(); } diff --git a/tests/base/tensor_float.cc b/tests/base/tensor_float.cc index 2ba5e88b42..c07415e724 100644 --- a/tests/base/tensor_float.cc +++ b/tests/base/tensor_float.cc @@ -1,15 +1,19 @@ -//---------------------------- tensor_float.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2011 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- tensor_float.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. +// +// --------------------------------------------------------------------- + // Same as tensor.cc, but uses tensors based on floats instead of doubles @@ -40,11 +44,11 @@ int main () Vector unrolled(9); - // cast result to double to profit from zero - // threshold and so on + // cast result to double to profit from zero + // threshold and so on t.unroll(unrolled); deallog << "unrolled:"; - for (unsigned i=0;i<9;i++) + for (unsigned i=0; i<9; i++) deallog << ' ' << static_cast(unrolled(i)); deallog << std::endl; @@ -52,7 +56,7 @@ int main () for (unsigned int i=0; i(t[i][j]) << ' '; + deallog << static_cast(t[i][j]) << ' '; deallog << std::endl; }; @@ -64,7 +68,7 @@ int main () for (unsigned int i=0; i(tt[i][j]) << ' '; + deallog << static_cast(tt[i][j]) << ' '; deallog << std::endl; }; @@ -80,18 +84,18 @@ int main () Tensor<1,3,float> result; cross_product(result,e1,e2); deallog << '\t' << static_cast(result[0]) - << '\t' << static_cast(result[1]) - << '\t' << static_cast(result[2]) << std::endl; + << '\t' << static_cast(result[1]) + << '\t' << static_cast(result[2]) << std::endl; cross_product(result,e2,e3); deallog << '\t' << static_cast(result[0]) - << '\t' << static_cast(result[1]) << '\t' - << static_cast(result[2]) << std::endl; + << '\t' << static_cast(result[1]) << '\t' + << static_cast(result[2]) << std::endl; cross_product(result,e3,e1); deallog << '\t' << static_cast(result[0]) - << '\t' << static_cast(result[1]) - << '\t' << static_cast(result[2]) << std::endl; + << '\t' << static_cast(result[1]) + << '\t' << static_cast(result[2]) << std::endl; deallog.pop(); } diff --git a/tests/base/thread_local_storage_01.cc b/tests/base/thread_local_storage_01.cc index 1db83c1746..82e3c039e5 100644 --- a/tests/base/thread_local_storage_01.cc +++ b/tests/base/thread_local_storage_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // verify that thread local storage works as advertised @@ -23,9 +27,15 @@ struct X { - X () { deallog << "Creating" << std::endl; }; - ~X () { deallog << "Destroying " << std::endl; }; - int i; + X () + { + deallog << "Creating" << std::endl; + }; + ~X () + { + deallog << "Destroying " << std::endl; + }; + int i; }; Threads::ThreadLocalStorage *tls_data; @@ -36,60 +46,60 @@ void execute (int i) { tls_data->get().i = i; - // indicate that the TLS object has been - // accessed + // indicate that the TLS object has been + // accessed static Threads::Mutex m; { Threads::Mutex::ScopedLock l(m); ++counter; } - // wait in order to make sure that the - // thread lives longer than the TLS object + // wait in order to make sure that the + // thread lives longer than the TLS object sleep (5); } -void test () +void test () { - // create a thread local storage object + // create a thread local storage object tls_data = new Threads::ThreadLocalStorage(); - - // create 5 threads and wait for their - // return. the OS will create 5 individual - // thread ids, which means that we will - // create 5 individual thread specific - // storage locations + + // create 5 threads and wait for their + // return. the OS will create 5 individual + // thread ids, which means that we will + // create 5 individual thread specific + // storage locations Threads::ThreadGroup<> tg; for (unsigned int i=10; i<15; ++i) tg += Threads::new_thread (execute, i); - // spin lock until all threads have created - // their objects + // spin lock until all threads have created + // their objects while (counter != 5); - - // delete the TLS object. this should also - // destroy all the objects created so far, - // namely 5 of them; while that happens, we - // should get output into logstream + + // delete the TLS object. this should also + // destroy all the objects created so far, + // namely 5 of them; while that happens, we + // should get output into logstream delete tls_data; - // write something into the output - // file. this also makes sure that the - // output file records the order in which - // this output is generated and in which - // the TLS objects were destroyed. we want - // that these objects are destroyed when - // the TLS object is destroyed, not when - // the threads exit + // write something into the output + // file. this also makes sure that the + // output file records the order in which + // this output is generated and in which + // the TLS objects were destroyed. we want + // that these objects are destroyed when + // the TLS object is destroyed, not when + // the threads exit deallog << "Done." << std::endl; - // now make sure the threads all finish + // now make sure the threads all finish tg.join_all (); } - - + + int main() { diff --git a/tests/base/thread_local_storage_02.cc b/tests/base/thread_local_storage_02.cc index f8ab90122e..575b4858ad 100644 --- a/tests/base/thread_local_storage_02.cc +++ b/tests/base/thread_local_storage_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // verify that thread local storage works as advertised. like _01 but using // the initialization with an exemplar @@ -24,12 +28,24 @@ struct X { - X () { Assert (false, ExcInternalError()); }; - X (int n) { deallog << "Creating" << std::endl; - Assert (n==42, ExcInternalError()); }; - X (const X&) { deallog << "Copying" << std::endl; }; - ~X () { deallog << "Destroying " << std::endl; }; - int i; + X () + { + Assert (false, ExcInternalError()); + }; + X (int n) + { + deallog << "Creating" << std::endl; + Assert (n==42, ExcInternalError()); + }; + X (const X &) + { + deallog << "Copying" << std::endl; + }; + ~X () + { + deallog << "Destroying " << std::endl; + }; + int i; }; Threads::ThreadLocalStorage *tls_data; @@ -40,66 +56,66 @@ void execute (int i) { tls_data->get().i = i; - // indicate that the TLS object has been - // accessed + // indicate that the TLS object has been + // accessed static Threads::Mutex m; { Threads::Mutex::ScopedLock l(m); ++counter; } - // wait in order to make sure that the - // thread lives longer than the TLS object + // wait in order to make sure that the + // thread lives longer than the TLS object sleep (5); } -void test () +void test () { - // create a thread local storage object + // create a thread local storage object X exemplar(42); tls_data = new Threads::ThreadLocalStorage(exemplar); - - // create 5 threads and wait for their - // return. the OS will create 5 individual - // thread ids, which means that we will - // create 5 individual thread specific - // storage locations + + // create 5 threads and wait for their + // return. the OS will create 5 individual + // thread ids, which means that we will + // create 5 individual thread specific + // storage locations Threads::ThreadGroup<> tg; for (unsigned int i=10; i<15; ++i) tg += Threads::new_thread (execute, i); - // spin lock until all threads have created - // their objects + // spin lock until all threads have created + // their objects while (counter != 5); - - // delete the TLS object. this should also - // destroy all the objects created so far, - // namely 5 of them, plus the one copy the - // TLS object stores; while that happens, - // we should get output into logstream + + // delete the TLS object. this should also + // destroy all the objects created so far, + // namely 5 of them, plus the one copy the + // TLS object stores; while that happens, + // we should get output into logstream delete tls_data; - // write something into the output - // file. this also makes sure that the - // output file records the order in which - // this output is generated and in which - // the TLS objects were destroyed. we want - // that these objects are destroyed when - // the TLS object is destroyed, not when - // the threads exit + // write something into the output + // file. this also makes sure that the + // output file records the order in which + // this output is generated and in which + // the TLS objects were destroyed. we want + // that these objects are destroyed when + // the TLS object is destroyed, not when + // the threads exit deallog << "Done." << std::endl; - // now make sure the threads all finish + // now make sure the threads all finish tg.join_all (); - // at this point, the seventh object will - // be destroyed, which is the exemplar - // object local to this function + // at this point, the seventh object will + // be destroyed, which is the exemplar + // object local to this function } - - + + int main() { diff --git a/tests/base/thread_local_storage_03.cc b/tests/base/thread_local_storage_03.cc index 65fb1eb751..7433568261 100644 --- a/tests/base/thread_local_storage_03.cc +++ b/tests/base/thread_local_storage_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test ThreadLocalStorage::operator T& @@ -23,21 +27,21 @@ struct X { - Threads::ThreadLocalStorage tls_data; - - X () - : - tls_data (42) - {} - - int f () - { - // access TLS data and have it - // converted to the right data type - // without the need to call - // tls_data.get() - return tls_data; - } + Threads::ThreadLocalStorage tls_data; + + X () + : + tls_data (42) + {} + + int f () + { + // access TLS data and have it + // converted to the right data type + // without the need to call + // tls_data.get() + return tls_data; + } }; @@ -48,7 +52,7 @@ void test () t = Threads::new_thread (&X::f, x); Assert (t.return_value() == 42, - ExcInternalError()); + ExcInternalError()); } diff --git a/tests/base/thread_local_storage_04.cc b/tests/base/thread_local_storage_04.cc index aa9b53d9d3..60863834c7 100644 --- a/tests/base/thread_local_storage_04.cc +++ b/tests/base/thread_local_storage_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test ThreadLocalStorage::operator= (const T&) @@ -24,23 +28,23 @@ int counter = 10; struct X { - Threads::ThreadLocalStorage tls_data; - - X () - : - tls_data (42) - {} - - int f () - { - // use TLS::operator= - tls_data = counter++; - // access TLS data and have it - // converted to the right data type - // without the need to call - // tls_data.get() - return tls_data; - } + Threads::ThreadLocalStorage tls_data; + + X () + : + tls_data (42) + {} + + int f () + { + // use TLS::operator= + tls_data = counter++; + // access TLS data and have it + // converted to the right data type + // without the need to call + // tls_data.get() + return tls_data; + } }; @@ -51,13 +55,13 @@ void test () Threads::Thread t; t = Threads::new_thread (&X::f, x); Assert (t.return_value() == 10, - ExcInternalError()); + ExcInternalError()); } { Threads::Thread t; t = Threads::new_thread (&X::f, x); Assert (t.return_value() == 11, - ExcInternalError()); + ExcInternalError()); } Assert (counter == 12, ExcInternalError()); diff --git a/tests/base/thread_validity_01.cc b/tests/base/thread_validity_01.cc index d117e3a23f..6ce1434ee1 100644 --- a/tests/base/thread_validity_01.cc +++ b/tests/base/thread_validity_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that objects that can't be copied aren't copied when passed to a new // thread by reference @@ -22,11 +26,11 @@ struct X { - X(int i) : i(i) {} - int i; - private: - X(const X&); - X & operator= (const X&); + X(int i) : i(i) {} + int i; +private: + X(const X &); + X &operator= (const X &); }; @@ -37,15 +41,15 @@ void execute (const X &x) } -void test () +void test () { X x(42); Threads::Thread t = Threads::spawn (&execute)(x); t.join (); } - - + + int main() { diff --git a/tests/base/thread_validity_02.cc b/tests/base/thread_validity_02.cc index 2011941169..f0c89f103e 100644 --- a/tests/base/thread_validity_02.cc +++ b/tests/base/thread_validity_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that objects that can't be copied aren't copied when passed to a new // thread by reference @@ -26,30 +30,30 @@ struct X { - X(int i) : i(i) {} - int i; - private: - X(const X&); - X & operator= (const X&); + X(int i) : i(i) {} + int i; +private: + X(const X &); + X &operator= (const X &); }; void execute (const X &x) { - Assert (x.i == 42, ExcInternalError()); + Assert (x.i == 42, ExcInternalError()); deallog << "OK" << std::endl; } -void test () +void test () { const X x(42); Threads::Thread t = Threads::spawn (&execute)(x); t.join (); } - - + + int main() { diff --git a/tests/base/thread_validity_03.cc b/tests/base/thread_validity_03.cc index dc00d1cd71..1c27a502fa 100644 --- a/tests/base/thread_validity_03.cc +++ b/tests/base/thread_validity_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that objects that can't be copied aren't copied when passed to a new // thread by reference @@ -25,32 +29,32 @@ struct X { - X(int i) : i(i) {} - int i; - - void execute () - { - Assert (i == 42, ExcInternalError()); - deallog << "OK" << std::endl; - } - - private: - X(const X&); - X & operator= (const X&); + X(int i) : i(i) {} + int i; + + void execute () + { + Assert (i == 42, ExcInternalError()); + deallog << "OK" << std::endl; + } + +private: + X(const X &); + X &operator= (const X &); }; -void test () +void test () { X x(42); Threads::Thread t = Threads::spawn (x, &X::execute)(); t.join (); } - - + + int main() { diff --git a/tests/base/thread_validity_04.cc b/tests/base/thread_validity_04.cc index 2f28736196..2b2d72e8ae 100644 --- a/tests/base/thread_validity_04.cc +++ b/tests/base/thread_validity_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that objects that can't be copied aren't copied when passed to a new // thread by reference @@ -26,32 +30,32 @@ struct X { - X(int i) : i(i) {} - int i; - - void execute () const - { - Assert (i == 42, ExcInternalError()); - deallog << "OK" << std::endl; - } - - private: - X(const X&); - X & operator= (const X&); + X(int i) : i(i) {} + int i; + + void execute () const + { + Assert (i == 42, ExcInternalError()); + deallog << "OK" << std::endl; + } + +private: + X(const X &); + X &operator= (const X &); }; -void test () +void test () { const X x(42); Threads::Thread t = Threads::spawn (x, &X::execute)(); t.join (); } - - + + int main() { diff --git a/tests/base/thread_validity_05.cc b/tests/base/thread_validity_05.cc index a51e68cf8c..7746c2d894 100644 --- a/tests/base/thread_validity_05.cc +++ b/tests/base/thread_validity_05.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that objects that can't be copied aren't copied when passed to a new // thread by reference @@ -25,27 +29,27 @@ struct X { - X(int i) : i(i) {} - int i; - - void execute () - { - Assert (false, ExcInternalError()); - } - - void execute () const - { - Assert (i == 42, ExcInternalError()); - deallog << "OK" << std::endl; - } - - private: - X(const X&); - X & operator= (const X&); + X(int i) : i(i) {} + int i; + + void execute () + { + Assert (false, ExcInternalError()); + } + + void execute () const + { + Assert (i == 42, ExcInternalError()); + deallog << "OK" << std::endl; + } + +private: + X(const X &); + X &operator= (const X &); }; -void test1 () +void test1 () { const X x(42); Threads::Thread t = Threads::spawn (x, &X::execute)(); @@ -55,35 +59,35 @@ void test1 () struct Y { - Y(int i) : i(i) {} - int i; - - void execute () - { - Assert (i == 42, ExcInternalError()); - deallog << "OK" << std::endl; - } - - void execute () const - { - Assert (false, ExcInternalError()); - } - - private: - Y(const Y&); - Y & operator= (const Y&); + Y(int i) : i(i) {} + int i; + + void execute () + { + Assert (i == 42, ExcInternalError()); + deallog << "OK" << std::endl; + } + + void execute () const + { + Assert (false, ExcInternalError()); + } + +private: + Y(const Y &); + Y &operator= (const Y &); }; -void test2 () +void test2 () { Y y(42); Threads::Thread t = Threads::spawn (y, &Y::execute)(); t.join (); } - - + + int main() { diff --git a/tests/base/thread_validity_06.cc b/tests/base/thread_validity_06.cc index 7b12603d19..9c3fc87e4f 100644 --- a/tests/base/thread_validity_06.cc +++ b/tests/base/thread_validity_06.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // this is a test opposite of thread_validity_05: if we have a function that // gets an argument *by value* rather than by reference, then make sure that @@ -27,10 +31,14 @@ struct X { - X() : i(0) {} - X(const X &x) : i(x.i+1) {} - X & operator= (const X &x) { i = x.i+1; return *this;} - int i; + X() : i(0) {} + X(const X &x) : i(x.i+1) {} + X &operator= (const X &x) + { + i = x.i+1; + return *this; + } + int i; }; @@ -45,12 +53,12 @@ void execute_value (X x) { Assert (x.i > 0, ExcInternalError()); deallog << __PRETTY_FUNCTION__ << ' ' << (x.i>0 ? "OK" : "not OK") - << std::endl; + << std::endl; deallog << "OK" << std::endl; } -void test () +void test () { { X x; @@ -64,8 +72,8 @@ void test () } } - - + + int main() { diff --git a/tests/base/thread_validity_07.cc b/tests/base/thread_validity_07.cc index 6d221d489e..da1e9180f1 100644 --- a/tests/base/thread_validity_07.cc +++ b/tests/base/thread_validity_07.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test that if multiple threads are waiting for one single thread, all of the // waiting ones will be woken up. @@ -31,16 +35,16 @@ void worker () Threads::Thread<> worker_thread; -void waiter (int i) +void waiter (int i) { worker_thread.join (); - + deallog << "Waiting thread " << i << " was woken up." - << std::endl; + << std::endl; } - - + + int main() { diff --git a/tests/base/thread_validity_08.cc b/tests/base/thread_validity_08.cc index 1ebbb2c4f2..e69ef0c4ec 100644 --- a/tests/base/thread_validity_08.cc +++ b/tests/base/thread_validity_08.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009 by the deal.II authors +// Copyright (C) 2008 - 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 if we can detach from threads @@ -32,7 +36,7 @@ void worker () spin_lock = 1; } - + int main() { @@ -42,32 +46,32 @@ int main() deallog.threshold_double(1.e-10); mutex.acquire (); - // start and abandon the - // thread. because we hold the - // lock, the started task can not - // proceed to print out "OK" until - // we release the lock which we do - // only after some time to give the - // thread a way to start up - // - // if detachment from threads isn't - // possible, then the worker() - // function will hang because it - // won't be able to acquire the - // mutex + // start and abandon the + // thread. because we hold the + // lock, the started task can not + // proceed to print out "OK" until + // we release the lock which we do + // only after some time to give the + // thread a way to start up + // + // if detachment from threads isn't + // possible, then the worker() + // function will hang because it + // won't be able to acquire the + // mutex { Threads::new_thread (worker); } sleep (1); - // let abandoned thread continue + // let abandoned thread continue mutex.release (); - // wait for thread to finish + // wait for thread to finish while (spin_lock == 0) ; - // release the lock that the thread - // acquired to avoid pthread errors + // release the lock that the thread + // acquired to avoid pthread errors mutex.release (); } diff --git a/tests/base/thread_validity_09.cc b/tests/base/thread_validity_09.cc index 6ed34c5a3d..e7d07eaa30 100644 --- a/tests/base/thread_validity_09.cc +++ b/tests/base/thread_validity_09.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009, 2011 by the deal.II authors +// Copyright (C) 2008 - 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 if we can detach from threads. before r18272 we used to have a // bug where detached threads would write their return value into diff --git a/tests/base/thread_validity_10.cc b/tests/base/thread_validity_10.cc index 0944eda0ee..0f832207bb 100644 --- a/tests/base/thread_validity_10.cc +++ b/tests/base/thread_validity_10.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009, 2011 by the deal.II authors +// Copyright (C) 2008 - 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 that we can query a thread object that has never been // assigned @@ -42,15 +46,15 @@ int main() deallog.threshold_double(1.e-10); Threads::Thread t; - // join non-existing thread + // join non-existing thread deallog << (t.valid() ? "true" : "false") - << std::endl; + << std::endl; - // now assign a thread object and - // wait for it + // now assign a thread object and + // wait for it t = Threads::new_thread (worker); deallog << (t.valid() ? "true" : "false") - << std::endl; + << std::endl; deallog << "return value = " << t.return_value() - << std::endl; + << std::endl; } diff --git a/tests/base/thread_validity_11.cc b/tests/base/thread_validity_11.cc index 4d8b2e9d7c..0f03cb2de9 100644 --- a/tests/base/thread_validity_11.cc +++ b/tests/base/thread_validity_11.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // It looks like we can't call std::thread::join() twice -- the second call // produces a std::system_error exception, and this can in fact be verified @@ -26,18 +30,18 @@ void execute () {} -void test () +void test () { Threads::Thread<> t = Threads::spawn (&execute)(); deallog << "Before first join()" << std::endl; t.join (); deallog << "Between join()s" << std::endl; t.join (); - deallog << "After second join()" << std::endl; + deallog << "After second join()" << std::endl; } - - + + int main() { diff --git a/tests/base/thread_validity_12.cc b/tests/base/thread_validity_12.cc index 2816c47ab7..c202c64139 100644 --- a/tests/base/thread_validity_12.cc +++ b/tests/base/thread_validity_12.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2011 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // Make sure we can call Threads::Thread::join on objects that haven't even // been assigned a thread @@ -24,19 +28,19 @@ void execute () {} -void test () +void test () { - // use a default constructed object + // use a default constructed object Threads::Thread<> t; deallog << "Before first join()" << std::endl; t.join (); deallog << "Between join()s" << std::endl; t.join (); - deallog << "After second join()" << std::endl; + deallog << "After second join()" << std::endl; } - - + + int main() { diff --git a/tests/base/threads.pl b/tests/base/threads.pl index a4d08e9f4e..9289d75f71 100644 --- a/tests/base/threads.pl +++ b/tests/base/threads.pl @@ -1,15 +1,18 @@ -#---------------------------- threads.pl --------------------------- -# $Id$ -# Version: $Name$ -# -# Copyright (C) 2003, 2004, 2005, 2007, 2008, 2009 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. -# -#---------------------------- threads.pl --------------------------- +## --------------------------------------------------------------------- +## $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 is the script with which threads_01.cc is generated # diff --git a/tests/base/timer.cc b/tests/base/timer.cc index 2869694b5b..5b375eae63 100644 --- a/tests/base/timer.cc +++ b/tests/base/timer.cc @@ -1,15 +1,19 @@ -//---------------------------- timer.cc --------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2010 by the deal.II authors +// Copyright (C) 1998 - 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. // -//---------------------------- timer.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. +// +// --------------------------------------------------------------------- + #include "../tests.h" @@ -27,11 +31,13 @@ void compare (double t1, double t2, double ratio) double r = t2/t1; double d = std::fabs(r-ratio) / ratio; - // relative error < 15%? + // relative error < 15%? if (d <= .15) { deallog << "OK" << std::endl; - } else { + } + else + { deallog << "Ratio " << r << " should be " << ratio << std::endl; } } @@ -44,9 +50,9 @@ void burn (unsigned int n) for (unsigned int i=0 ; i -void test () +void test () { deallog << Utilities::int_to_string (42,4) << std::endl; deallog << Utilities::int_to_string (42) << std::endl; @@ -43,19 +47,19 @@ void test () Assert (Utilities::split_string_list (p).size() == 3, ExcInternalError()); Assert (Utilities::split_string_list (p)[0] == "alpha", - ExcInternalError()); + ExcInternalError()); Assert (Utilities::split_string_list (p)[1] == "beta", ExcInternalError()); Assert (Utilities::split_string_list (p)[2] == "gamma", ExcInternalError()); } - + { const char *p = "alpha; beta; gamma "; Assert (Utilities::split_string_list (p, ';').size() == 3, ExcInternalError()); Assert (Utilities::split_string_list (p, ';')[0] == "alpha", - ExcInternalError()); + ExcInternalError()); Assert (Utilities::split_string_list (p, ';')[1] == "beta", ExcInternalError()); Assert (Utilities::split_string_list (p, ';')[2] == "gamma", @@ -68,8 +72,8 @@ void test () deallog << std::endl; } - - + + int main() { diff --git a/tests/base/utilities_02.cc b/tests/base/utilities_02.cc index 0a7c909d81..ce9711b769 100644 --- a/tests/base/utilities_02.cc +++ b/tests/base/utilities_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2007 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. +// +// --------------------------------------------------------------------- + // test Utilities::fixed_power @@ -23,7 +27,7 @@ template -void test () +void test () { deallog << Utilities::fixed_power (2) << std::endl; deallog << Utilities::fixed_power (-2) << std::endl; @@ -32,8 +36,8 @@ void test () deallog << std::endl; } - - + + int main() { diff --git a/tests/base/utilities_03.cc b/tests/base/utilities_03.cc index 4d3a63509e..79d4b84b02 100644 --- a/tests/base/utilities_03.cc +++ b/tests/base/utilities_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2011 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. +// +// --------------------------------------------------------------------- + // test functions in namespace Utilities diff --git a/tests/base/utilities_04.cc b/tests/base/utilities_04.cc index fb654e39bf..837e0b3e13 100644 --- a/tests/base/utilities_04.cc +++ b/tests/base/utilities_04.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2005, 2006, 2011 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. +// +// --------------------------------------------------------------------- + // test functions in namespace Utilities @@ -29,7 +33,7 @@ std::vector split_string(const std::string &text, const char delim= std::vector result; std::string word; std::stringstream stream(text); - while( getline(stream, word, delim) ) + while ( getline(stream, word, delim) ) result.push_back(word); return result; @@ -37,9 +41,9 @@ std::vector split_string(const std::string &text, const char delim= void test_function(const std::string &original_text, - const unsigned int width, - const char delimiter, - const std::string &result) + const unsigned int width, + const char delimiter, + const std::string &result) { std::vector res_vec = Utilities::break_text_into_lines (original_text, width, delimiter); @@ -49,10 +53,10 @@ void test_function(const std::string &original_text, Assert(res_vec.size()==should_be_vec.size(), ExcInternalError()); - for (unsigned int i=0;i which tests the basic stuff in the // aligned vector @@ -62,7 +66,7 @@ void test () deallog << a[i] << " "; deallog << std::endl; - // check setting elements for large vectors + // check setting elements for large vectors a.resize (0); a.resize (100000, 1); deallog << "Check large initialization: "; @@ -70,7 +74,7 @@ void test () AssertDimension (a[i], 1); deallog << "OK" << std::endl; - // check resize for large vectors + // check resize for large vectors deallog << "Check large resize: "; a.resize (200000, 2); a.resize (400000); diff --git a/tests/base/vectorization_02.cc b/tests/base/vectorization_02.cc index 2948906982..b15663c5c2 100644 --- a/tests/base/vectorization_02.cc +++ b/tests/base/vectorization_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2012 by the deal.II authors +// Copyright (C) 2012 - 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. +// +// --------------------------------------------------------------------- + // test for AlignedVector > @@ -45,7 +49,7 @@ void test () b.push_back (make_vectorized_array(27.)); a.insert_back (b.begin(), b.end()); - // keep reference in sync + // keep reference in sync b_ref = a_ref; b_ref.push_back (27); a_ref.insert (a_ref.end(), b_ref.begin(), b_ref.end()); @@ -78,7 +82,7 @@ void test () Assert (a[i][d] == a_ref[i], ExcInternalError()); deallog << "OK" << std::endl; - // check setting elements for large vectors + // check setting elements for large vectors a.resize (0); a.resize (100000, make_vectorized_array(1.)); deallog << "Check large initialization: "; @@ -87,7 +91,7 @@ void test () Assert (a[i][d] == 1., ExcInternalError()); deallog << "OK" << std::endl; - // check resize for large vectors + // check resize for large vectors deallog << "Check large resize: "; a.resize (200000, make_vectorized_array(2.)); a.resize (400000); diff --git a/tests/base/vectorization_03.cc b/tests/base/vectorization_03.cc index 1258c782a6..22876ad780 100644 --- a/tests/base/vectorization_03.cc +++ b/tests/base/vectorization_03.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2012 by the deal.II authors +// Copyright (C) 2012 - 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. +// +// --------------------------------------------------------------------- + // test for AlignedVector > @@ -29,7 +33,7 @@ void print_vec (VECVEC &v) { deallog << "["; for (unsigned int j=0; j e = d - b; for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl - << "Absolute value: "; + << "Absolute value: "; d = -c; d = std::abs(d); for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + 10.*std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl - << "Cosine: "; + << "Cosine: "; e = std::cos(c); for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + 10.*std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl - << "Tangent: "; + << "Tangent: "; d = std::tan(e); for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + 10.*std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl - << "Exponential: "; + << "Exponential: "; d = std::exp(c-a); for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + 10.*std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl - << "Logarithm: "; + << "Logarithm: "; e = std::log(d); for (unsigned int i=0; i::epsilon(), - ExcInternalError()); + 10.*std::numeric_limits::epsilon(), + ExcInternalError()); deallog << "OK" << std::endl; } @@ -158,9 +162,9 @@ int main() test (); deallog.pop(); - // test long double: in that case, the default - // path of VectorizedArray is taken no matter - // what was done for double or float + // test long double: in that case, the default + // path of VectorizedArray is taken no matter + // what was done for double or float deallog.push("long double"); test (); deallog.pop(); diff --git a/tests/base/work_stream_01.cc b/tests/base/work_stream_01.cc index 6066aa8263..2ac20ab9fd 100644 --- a/tests/base/work_stream_01.cc +++ b/tests/base/work_stream_01.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test functions in namespace WorkStream @@ -28,40 +32,40 @@ struct ScratchData struct CopyData { - unsigned int computed; + unsigned int computed; }; struct X { - void worker (const std::vector::iterator &i, - ScratchData &, - CopyData &ad) - { - ad.computed = *i * 2; - } - - void copier (const CopyData &ad) - { - deallog << ad.computed << std::endl; - } + void worker (const std::vector::iterator &i, + ScratchData &, + CopyData &ad) + { + ad.computed = *i * 2; + } + + void copier (const CopyData &ad) + { + deallog << ad.computed << std::endl; + } }; -void test () +void test () { std::vector v; for (unsigned int i=0; i<20; ++i) v.push_back (i); - + X x; WorkStream::run (v.begin(), v.end(), x, &X::worker, &X::copier, - ScratchData(), - CopyData()); + ScratchData(), + CopyData()); } - - + + int main() { diff --git a/tests/base/work_stream_02.cc b/tests/base/work_stream_02.cc index c0c573a4f2..54bcd752ae 100644 --- a/tests/base/work_stream_02.cc +++ b/tests/base/work_stream_02.cc @@ -1,15 +1,19 @@ -//----------------------------------------------------------------------------- -// $Id$ -// Version: $Name$ +// --------------------------------------------------------------------- +// $Id$ // -// Copyright (C) 2008, 2009 by the deal.II authors +// Copyright (C) 2008 - 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. +// +// --------------------------------------------------------------------- + // test functions in namespace WorkStream @@ -28,13 +32,13 @@ struct ScratchData struct CopyData { - unsigned int computed; + unsigned int computed; }; void worker (const std::vector::iterator &i, - ScratchData &, - CopyData &ad) + ScratchData &, + CopyData &ad) { ad.computed = *i * 2; } @@ -45,19 +49,19 @@ void copier (const CopyData &ad) } -void test () +void test () { std::vector v; for (unsigned int i=0; i<20; ++i) v.push_back (i); - + WorkStream::run (v.begin(), v.end(), &worker, &copier, - ScratchData(), - CopyData()); + ScratchData(), + CopyData()); } - - + + int main() { diff --git a/tests/base/work_stream_03.cc b/tests/base/work_stream_03.cc new file mode 100644 index 0000000000..70760f9502 --- /dev/null +++ b/tests/base/work_stream_03.cc @@ -0,0 +1,175 @@ +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + + +// Moritz originally implemented thread local scratch objects for +// WorkStream in r24748 but it led to failures in the testsuite. what +// exactly went on was a mystery and this test is a first step in +// figuring out what happens by running a simplified version of one of +// the failing tests (deal.II/project_q_01) multiple times and +// verifying that it indeed works + +#include "../tests.h" +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include + +char logname[] = "work_stream_03/output"; + +template +double +value(const Point &p) +{ + double val = 0; + for (unsigned int d = 0; d < dim; ++d) + for (unsigned int i = 0; i <= 1; ++i) + val += std::pow(p[d], 1. * i); + return val; +} + +namespace +{ + template + struct Scratch + { + Scratch(const FiniteElement &fe, const Quadrature &quadrature) : + fe_collection(fe), quadrature_collection(quadrature), x_fe_values( + fe_collection, quadrature_collection, update_q_points), rhs_values( + quadrature_collection.size()) + { + } + + Scratch(const Scratch &data) : + fe_collection(data.fe_collection), quadrature_collection( + data.quadrature_collection), x_fe_values(fe_collection, + quadrature_collection, update_q_points), rhs_values( + data.rhs_values) + { + } + + const FiniteElement &fe_collection; + const Quadrature &quadrature_collection; + + FEValues x_fe_values; + + std::vector rhs_values; + }; + + struct CopyData + { + std::vector cell_rhs; + }; +} + +void +zero_subrange(const unsigned int begin, const unsigned int end, + std::vector &dst) +{ + for (unsigned int i = begin; i < end; ++i) + dst[i] = 0; +} + + +void +zero_element(std::vector &dst, + const unsigned int i) +{ + dst[i] = 0; +} + + +template +void +mass_assembler(const typename Triangulation::active_cell_iterator &cell, + Scratch &data, CopyData ©_data) +{ + data.x_fe_values.reinit(cell); + + const Point q = data.x_fe_values.quadrature_point(0); + + // this appears to be the key: the following two ways both overwrite some + // of the memory in which we store the quadrature point location. + parallel::apply_to_subranges(0U, copy_data.cell_rhs.size(), + std_cxx1x::bind(&zero_subrange, std_cxx1x::_1, std_cxx1x::_2, + std_cxx1x::ref(copy_data.cell_rhs)), 1); + + Assert(q == data.x_fe_values.quadrature_point(0), + ExcInternalError()); + + copy_data.cell_rhs[0] = value(data.x_fe_values.quadrature_point(0)); +} + + +void +copy_local_to_global(const CopyData &data, double *sum) +{ + *sum += data.cell_rhs[0]; +} + + +void +do_project() +{ + static const int dim = 3; + + Triangulation < dim > triangulation; + GridGenerator::hyper_cube (triangulation); + triangulation.refine_global(2); + + FE_Nothing < dim > fe; + QMidpoint < dim > q; + + for (unsigned int i = 0; i < 12; ++i) + { + std::vector tmp; + + double sum = 0; + Scratch assembler_data(fe, q); + CopyData copy_data; + copy_data.cell_rhs.resize(8); + WorkStream::run(triangulation.begin_active(), triangulation.end(), + &mass_assembler, + std_cxx1x::bind(©_local_to_global, std_cxx1x::_1, &sum), + assembler_data, copy_data, 8, 1); + + Assert (std::fabs(sum-288.) < 1e-12, ExcInternalError()); + deallog << sum << std::endl; + } +} + + +int main() +{ + std::ofstream logfile(logname); + deallog << std::setprecision(3); + + deallog.attach(logfile); + deallog.depth_console(0); + deallog.threshold_double(1.e-10); + + do_project(); +} diff --git a/tests/base/work_stream_03/cmp/generic b/tests/base/work_stream_03/cmp/generic new file mode 100644 index 0000000000..d1b460b43f --- /dev/null +++ b/tests/base/work_stream_03/cmp/generic @@ -0,0 +1,13 @@ + +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. +DEAL::288. diff --git a/tests/benchmarks/bench.sh b/tests/benchmarks/bench.sh old mode 100644 new mode 100755 diff --git a/tests/benchmarks/benchrev.sh b/tests/benchmarks/benchrev.sh old mode 100644 new mode 100755 index 38a9f67fe5..b3666444dd --- a/tests/benchmarks/benchrev.sh +++ b/tests/benchmarks/benchrev.sh @@ -3,16 +3,18 @@ source testlist.sh PREVREVISION="`svn info deal.II | grep Revision | sed s/Revision://`" -MAKECMD="nice make -j10" +MAKECMD="nice make -j10 install" +#MAKECMD="nice make -j10 optimized" export MAKECMD echo "testing $PREVREVISION" -cd deal.II echo "configure" - ./configure --disable-threads --with-petsc=no || exit 2 + cd build + cmake ../deal.II || exit 2 + #./configure --disable-threads --with-petsc=no || exit 2 echo "compiling" - $MAKECMD optimized || exit 3 + $MAKECMD || exit 3 cd .. diff --git a/tests/benchmarks/gettimes/get_times.cc b/tests/benchmarks/gettimes/get_times.cc index 6965ab534d..03e2c0e06b 100644 --- a/tests/benchmarks/gettimes/get_times.cc +++ b/tests/benchmarks/gettimes/get_times.cc @@ -1,5 +1,19 @@ -//Jordan Cazamias -//9-19-2012 +// --------------------------------------------------------------------- +// $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. +// +// --------------------------------------------------------------------- + #include #include @@ -11,138 +25,143 @@ using namespace std; -int main(int argc, char *argv[]) { - - ifstream input; - stringstream ss; - const int IGNORE_LINES = 3; //Number of initial lines to ignore - const string DELIM = "*"; //String to divide test data - - input.open("temp.txt"); - - vector names; - vector times; - - //If no revision number, retrieve column names - if(argc <= 1) - { - string curr_line; - - //Ignore first n lines + delimeter- they don't hold any useful data - for(int i = 0; i < IGNORE_LINES + 1; i++) - { - getline(input, curr_line); - } - - while(!input.eof()) { - - getline(input, curr_line); - if(curr_line == "") - continue; - if(curr_line == DELIM) - break; - - ////cout << "curr line: " << curr_line << endl; - //Looking for the string after the '|' and ' ' - int first_char = 0; - if(curr_line[0] == '|') - first_char++; - if (curr_line[1] == ' ') - first_char++; - - - ////cout << "first char at pos: " << first_char << endl; - - //Find end of string - int num_chars = 0; - while(curr_line[first_char + num_chars] != '|') - num_chars++; - - num_chars--; - - while(curr_line[first_char + num_chars] == ' ') - num_chars--; - - names.push_back(curr_line.substr(first_char, num_chars+1)); - } - } - - else //Else, extract execution time from each line - { - - int time_index = 0; - - while(!input.eof()) - { - - string curr_line = ""; - - //Read in line - getline(input,curr_line); - - //Check for delimeter - if(curr_line == DELIM) - { - ////cout << "Delimeter detected" << endl; - time_index = 0; - //Ignore first n lines- they don't hold any useful data - for(int i = 0; i < IGNORE_LINES; i++) - { - string dummy; - getline(input, dummy); - ////cout << "Skipping: " << dummy << endl; - } - continue; - } - - ////cout << "Reading: " << curr_line << endl; - - if(curr_line == "" && DELIM != "") - continue; - - - //Looking for a number that ends with 's' - int last_s = curr_line.rfind('s'); - //In case 's' is not used in the future - assert(isdigit(curr_line[last_s - 1])); // Test: s preceded by number - - //Find time string and convert to double - int num_start = last_s - 1; - while(curr_line[num_start] != ' ') - num_start--; - string timestr = curr_line.substr(num_start+1, last_s - num_start); - double time = (double)atof(timestr.substr(0,timestr.size()-1).c_str()); - - assert(times.size() >= time_index); - // first addition of times to vector; each loop, times.size() should be one less than time_index - if(times.size() == time_index) - times.push_back(time); - else - times[time_index] = (time < times[time_index]) ? time : times[time_index]; //else, determines minimum time and stores it - time_index++; - - } - } - - - //Output individual names - if(argc <= 1) { - for(int i = 0; i < names.size(); i++) { - cout << names[i]; - if(i < names.size() - 1) - cout << endl; - } - } - - //Output individual times - if(argc > 1) { - cout << argv[1]; - for(int i = 0; i < times.size(); i++) - cout << " " << times[i]; - } - - cout << endl; - - - return 0; +int main(int argc, char *argv[]) +{ + + ifstream input; + stringstream ss; + const int IGNORE_LINES = 3; //Number of initial lines to ignore + const string DELIM = "*"; //String to divide test data + + input.open("temp.txt"); + + vector names; + vector times; + + //If no revision number, retrieve column names + if (argc <= 1) + { + string curr_line; + + //Ignore first n lines + delimeter- they don't hold any useful data + for (int i = 0; i < IGNORE_LINES + 1; i++) + { + getline(input, curr_line); + } + + while (!input.eof()) + { + + getline(input, curr_line); + if (curr_line == "") + continue; + if (curr_line == DELIM) + break; + + ////cout << "curr line: " << curr_line << endl; + //Looking for the string after the '|' and ' ' + int first_char = 0; + if (curr_line[0] == '|') + first_char++; + if (curr_line[1] == ' ') + first_char++; + + + ////cout << "first char at pos: " << first_char << endl; + + //Find end of string + int num_chars = 0; + while (curr_line[first_char + num_chars] != '|') + num_chars++; + + num_chars--; + + while (curr_line[first_char + num_chars] == ' ') + num_chars--; + + names.push_back(curr_line.substr(first_char, num_chars+1)); + } + } + + else //Else, extract execution time from each line + { + + int time_index = 0; + + while (!input.eof()) + { + + string curr_line = ""; + + //Read in line + getline(input,curr_line); + + //Check for delimeter + if (curr_line == DELIM) + { + ////cout << "Delimeter detected" << endl; + time_index = 0; + //Ignore first n lines- they don't hold any useful data + for (int i = 0; i < IGNORE_LINES; i++) + { + string dummy; + getline(input, dummy); + ////cout << "Skipping: " << dummy << endl; + } + continue; + } + + ////cout << "Reading: " << curr_line << endl; + + if (curr_line == "" && DELIM != "") + continue; + + + //Looking for a number that ends with 's' + int last_s = curr_line.rfind('s'); + //In case 's' is not used in the future + assert(isdigit(curr_line[last_s - 1])); // Test: s preceded by number + + //Find time string and convert to double + int num_start = last_s - 1; + while (curr_line[num_start] != ' ') + num_start--; + string timestr = curr_line.substr(num_start+1, last_s - num_start); + double time = (double)atof(timestr.substr(0,timestr.size()-1).c_str()); + + assert(times.size() >= time_index); + // first addition of times to vector; each loop, times.size() should be one less than time_index + if (times.size() == time_index) + times.push_back(time); + else + times[time_index] = (time < times[time_index]) ? time : times[time_index]; //else, determines minimum time and stores it + time_index++; + + } + } + + + //Output individual names + if (argc <= 1) + { + for (int i = 0; i < names.size(); i++) + { + cout << names[i]; + if (i < names.size() - 1) + cout << endl; + } + } + + //Output individual times + if (argc > 1) + { + cout << argv[1]; + for (int i = 0; i < times.size(); i++) + cout << " " << times[i]; + } + + cout << endl; + + + return 0; } diff --git a/tests/benchmarks/index.html b/tests/benchmarks/index.html deleted file mode 100644 index a91ecc4c62..0000000000 --- a/tests/benchmarks/index.html +++ /dev/null @@ -1,19 +0,0 @@ - - - - -deal.II performance benchmarks, see -http://www.dealii.org/testsuite.html
- - - - - - - - - - - - - diff --git a/tests/benchmarks/interactive.py b/tests/benchmarks/interactive.py index 0ff0e7d3e1..f687f4b079 100755 --- a/tests/benchmarks/interactive.py +++ b/tests/benchmarks/interactive.py @@ -7,14 +7,13 @@ begin = \ - Highcharts Example + deal.II regression timings -