diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0fff428f43..764b28a76d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -89,9 +89,10 @@ jobs: . ../firedrake_venv/bin/activate python "$(which firedrake-clean)" python -m pip install \ - pytest-xdist pytest-timeout ipympl + pytest-xdist pytest-timeout ipympl pytest-split + pip install git+https://github.com/JDBetteridge/mpispawn python -m pip list - - name: Test Firedrake + - name: Test Firedrake Serial run: | . ../firedrake_venv/bin/activate echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" @@ -102,15 +103,103 @@ jobs: --timeout=1800 \ --timeout-method=thread \ -o faulthandler_timeout=1860 \ + -m "not parallel" \ -n 12 --dist worksteal \ - --junit-xml=firedrake.xml \ + --junit-xml=firedrake1.xml \ -sv tests - timeout-minutes: 120 + timeout-minutes: 60 + - name: Test Firedrake 2 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpispawn -nU 12 -nW 2 --propagate-errcodes pytest \ + --splitting-algorithm least_duration \ + --splits \$MPISPAWN_NUM_TASKS \ + --group \$MPISPAWN_TASK_ID1 \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake2_\$MPISPAWN_TASK_ID1.xml \ + -m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \ + -v tests + timeout-minutes: 30 + - name: Test Firedrake 3 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpispawn -nU 12 -nW 3 --propagate-errcodes pytest \ + --splitting-algorithm least_duration \ + --splits \$MPISPAWN_NUM_TASKS \ + --group \$MPISPAWN_TASK_ID1 \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake3_\$MPISPAWN_TASK_ID1.xml \ + -m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \ + -v tests + timeout-minutes: 60 + - name: Test Firedrake 4 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpispawn -nU 8 -nW 4 --propagate-errcodes pytest \ + --splitting-algorithm least_duration \ + --splits \$MPISPAWN_NUM_TASKS \ + --group \$MPISPAWN_TASK_ID1 \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake4_\$MPISPAWN_TASK_ID1.xml \ + -m "parallel[\$MPISPAWN_WORLD_SIZE] and not broken" \ + -v tests + timeout-minutes: 30 + - name: Test Firedrake 6 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpiexec -n 6 python -m pytest \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake6.xml \ + -m "parallel[6] and not broken" \ + -sv tests + timeout-minutes: 30 + - name: Test Firedrake 7 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpiexec -n 7 python -m pytest \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake7.xml \ + -m "parallel[7] and not broken" \ + -sv tests + timeout-minutes: 30 + - name: Test Firedrake 8 ranks + run: | + . ../firedrake_venv/bin/activate + echo OMP_NUM_THREADS is "$OMP_NUM_THREADS" + echo OPENBLAS_NUM_THREADS is "$OPENBLAS_NUM_THREADS" + mpiexec -n 8 python -m pytest \ + --timeout=1800 \ + --timeout-method=thread \ + -o faulthandler_timeout=1860 \ + --junit-xml=firedrake8.xml \ + -m "parallel[8] and not broken" \ + -sv tests + timeout-minutes: 30 - name: Publish Test Report uses: mikepenz/action-junit-report@v5.0.0-a02 if: ${{ always() && ( github.ref != 'refs/heads/master') }} with: - report_paths: '/__w/firedrake/firedrake/firedrake.xml' + report_paths: '/__w/firedrake/firedrake/firedrake*.xml' comment: true check_name: "Firedrake ${{ matrix.scalar-type }}" updateComment: true diff --git a/.test_durations b/.test_durations new file mode 100644 index 0000000000..f7d0518314 --- /dev/null +++ b/.test_durations @@ -0,0 +1,1353 @@ +{ + "tests/ensemble_reduced_functional/test_reduced_functional.py::test_verification": 2.0288130468688905, + "tests/ensemble_reduced_functional/test_reduced_functional.py::test_verification_gather_functional_Function": 0.9344081431627274, + "tests/ensemble_reduced_functional/test_reduced_functional.py::test_verification_gather_functional_adjfloat": 0.11416081106290221, + "tests/extrusion/test_extruded_cell_subdomains.py::test_subdomain_cell_integral_parallel[1]": 0.5329550113528967, + "tests/extrusion/test_extruded_cell_subdomains.py::test_subdomain_cell_integral_parallel[2]": 0.072725934907794, + "tests/extrusion/test_extruded_cell_subdomains.py::test_subdomain_cell_integral_parallel[everywhere]": 0.9353436501696706, + "tests/extrusion/test_extruded_periodic.py::test_extruded_periodic_annulus": 15.55769157782197, + "tests/extrusion/test_extruded_periodic.py::test_extruded_periodic_poisson": 3.2808128437027335, + "tests/extrusion/test_mixed_bcs.py::test_stokes_taylor_hood_parallel": 6.443470865488052, + "tests/extrusion/test_mixed_bcs.py::test_stokes_taylor_hood_parallel_monolithic": 0.46189043996855617, + "tests/extrusion/test_offset_computation.py::test_offset_parallel_allsame": 0.016358421184122562, + "tests/extrusion/test_steady_advection_2D_extr.py::test_bottom_to_top_parallel[DG]": 3.6461463570594788, + "tests/extrusion/test_steady_advection_2D_extr.py::test_bottom_to_top_parallel[DPC]": 3.1246388177387416, + "tests/extrusion/test_steady_advection_2D_extr.py::test_left_to_right_parallel[DG]": 4.959518405608833, + "tests/extrusion/test_steady_advection_2D_extr.py::test_left_to_right_parallel[DPC]": 3.6704856320284307, + "tests/extrusion/test_steady_advection_2D_extr.py::test_right_to_left_parallel[DG]": 5.781243119388819, + "tests/extrusion/test_steady_advection_2D_extr.py::test_right_to_left_parallel[DPC]": 4.9262388944625854, + "tests/extrusion/test_steady_advection_2D_extr.py::test_top_to_bottom_parallel[DG]": 4.315540089271963, + "tests/extrusion/test_steady_advection_2D_extr.py::test_top_to_bottom_parallel[DPC]": 3.419489706866443, + "tests/extrusion/test_subdomain_extruded.py::test_base_box_3d_parallel": 2.967332679312676, + "tests/extrusion/test_variable_layers_numbering.py::test_layer_extents_parallel": 0.287050673738122, + "tests/extrusion/test_variable_layers_numbering.py::test_layer_extents_parallel_vertex_owners": 0.2982264691963792, + "tests/meshes/test_meshes_volume.py::test_meshes_volume_annulusmesh": 0.38126750802621245, + "tests/meshes/test_meshes_volume.py::test_meshes_volume_solidtorusmesh": 1.8617067653685808, + "tests/multigrid/test_basics.py::test_refine_interval_parallel": 0.004817801062017679, + "tests/multigrid/test_basics.py::test_refine_square_ncell_parallel": 0.006221716292202473, + "tests/multigrid/test_basics.py::test_refining_overlapped_mesh_fails_parallel": 0.0032490291632711887, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-1-CG]": 0.4996175360865891, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-1-N1curl]": 0.6011090106330812, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-1-RT]": 0.6065232278779149, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-2-CG]": 0.6251957044005394, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-2-N1curl]": 0.857012300286442, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Averaging-2-RT]": 0.8616276639513671, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-1-CG]": 4.669150022789836, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-1-N1curl]": 3.3645170191302896, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-1-RT]": 6.261734631843865, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-2-CG]": 4.995977064128965, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-2-N1curl]": 4.2635332411155105, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Default-2-RT]": 6.8862763633951545, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-1-CG]": 0.8708911621943116, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-1-N1curl]": 1.0364993270486593, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-1-RT]": 1.0353799075819552, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-2-CG]": 1.067152286414057, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-2-N1curl]": 1.6585805988870561, + "tests/multigrid/test_embedded_transfer.py::test_riesz_parallel[Exact-2-RT]": 1.2482566670514643, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-1-injection]": 1.27832683455199, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-1-prolongation]": 0.027729393914341927, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-1-restriction]": 2.407323840074241, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-2-injection]": 5.78133468516171, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-2-prolongation]": 0.02484349487349391, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[hexahedron-2-restriction]": 7.044832328800112, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-1-injection]": 3.085070522967726, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-1-prolongation]": 0.01814178377389908, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-1-restriction]": 3.1310941483825445, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-2-injection]": 0.33868290670216084, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-2-prolongation]": 0.018440587911754847, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[interval-2-restriction]": 0.7672774470411241, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-1-injection]": 0.7238545534200966, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-1-prolongation]": 0.026227079797536135, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-1-restriction]": 1.2908134795725346, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-2-injection]": 4.388784368056804, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-2-prolongation]": 0.020755734760314226, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[prism-2-restriction]": 5.327908644918352, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-1-injection]": 0.7035870039835572, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-1-prolongation]": 0.019751465879380703, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-1-restriction]": 1.3519084872677922, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-2-injection]": 3.749872848857194, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-2-prolongation]": 0.015507927630096674, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[quadrilateral-2-restriction]": 4.384888095781207, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-1-injection]": 0.6773411366157234, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-1-prolongation]": 0.023297525476664305, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-1-restriction]": 1.4087947197258472, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-2-injection]": 4.069945047143847, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-2-prolongation]": 0.019344794563949108, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[tetrahedron-2-restriction]": 4.944702276028693, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-1-injection]": 0.16615417413413525, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-1-prolongation]": 0.019368169829249382, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-1-restriction]": 0.2690480169840157, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-2-injection]": 3.0236498904414475, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-2-prolongation]": 0.01564865792170167, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-2-restriction]": 3.1859779274091125, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-1-injection]": 0.00948785850778222, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-1-prolongation]": 0.020611317828297615, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-1-restriction]": 2.0412310264073312, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-2-injection]": 0.009793094359338284, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-2-prolongation]": 0.0004592319019138813, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_parallel[triangle-nonnested-2-restriction]": 0.0004175221547484398, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[interval-CG]": 2.973503842484206, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[interval-DG]": 3.0231138435192406, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[quadrilateral-CG]": 6.399719785433263, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[quadrilateral-DG]": 5.229436374269426, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[tetrahedron-CG]": 11.785504463594407, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[tetrahedron-DG]": 15.913201489951462, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[triangle-CG]": 3.720685045234859, + "tests/multigrid/test_grid_transfer.py::test_grid_transfer_periodic[triangle-DG]": 3.8960412479937077, + "tests/multigrid/test_netgen_gmg.py::test_netgen_mg_circle_parallel": 5.105298453010619, + "tests/multigrid/test_opencascade_volume.py::test_area[1]": 0.0005707358941435814, + "tests/multigrid/test_opencascade_volume.py::test_area[2]": 0.0006557279266417027, + "tests/multigrid/test_opencascade_volume.py::test_volume[stepdata0]": 0.000784887932240963, + "tests/multigrid/test_opencascade_volume.py::test_volume[stepdata1]": 0.0006539360620081425, + "tests/multigrid/test_opencascade_volume.py::test_volume[stepdata2]": 0.0007292306981980801, + "tests/multigrid/test_opencascade_volume.py::test_volume[stepdata3]": 0.0008243531920015812, + "tests/multigrid/test_opencascade_volume.py::test_volume[stepdata4]": 0.0006045801565051079, + "tests/multigrid/test_poisson_gmg.py::test_poisson_gmg_parallel_fas": 0.20813011704012752, + "tests/multigrid/test_poisson_gmg.py::test_poisson_gmg_parallel_mg": 3.3844008413143456, + "tests/multigrid/test_poisson_gmg.py::test_poisson_gmg_parallel_newtonfas": 0.208403751719743, + "tests/multigrid/test_poisson_gmg_extruded.py::test_poisson_gmg_parallel_fas": 1.0814871462062001, + "tests/multigrid/test_poisson_gmg_extruded.py::test_poisson_gmg_parallel_mg": 4.040620458777994, + "tests/multigrid/test_poisson_gmg_extruded.py::test_poisson_gmg_parallel_newtonfas": 1.0808063382282853, + "tests/multigrid/test_poisson_gmg_extruded_serendipity.py::test_poisson_gmg": 15.615221514832228, + "tests/multigrid/test_poisson_p1pcmg_extruded_serendipity.py::test_poisson_gmg": 12.48874409776181, + "tests/multigrid/test_two_poisson_gmg.py::test_two_poisson_gmg_parallel_fas": 0.38660360500216484, + "tests/multigrid/test_two_poisson_gmg.py::test_two_poisson_gmg_parallel_mg": 2.7150431973859668, + "tests/multigrid/test_two_poisson_gmg.py::test_two_poisson_gmg_parallel_splitmg": 0.49744460452347994, + "tests/output/test_dumb_checkpoint.py::test_serial_checkpoint_parallel_load_fails[quad]": 0.0015206197276711464, + "tests/output/test_dumb_checkpoint.py::test_serial_checkpoint_parallel_load_fails[simplex]": 0.00695076584815979, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[quad-CG-1]": 0.33361337473616004, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[quad-CG-2]": 0.3389313956722617, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[quad-CG-3]": 0.3554908628575504, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[simplex-CG-1]": 0.2946336283348501, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[simplex-CG-2]": 0.29517221031710505, + "tests/output/test_dumb_checkpoint.py::test_store_load_parallel[simplex-CG-3]": 0.31117551028728485, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[quad-CG-1]": 0.3238086779601872, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[quad-CG-2]": 0.32624557707458735, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[quad-CG-3]": 0.3356734309345484, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[simplex-CG-1]": 0.2980590555816889, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[simplex-CG-2]": 0.296505531296134, + "tests/output/test_hdf5file_checkpoint.py::test_write_read_parallel[simplex-CG-3]": 0.30175255704671144, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=hexahedron-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 2.6886891894973814, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=interval-periodic=False-extruded=True-extruded_periodic=True-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 2.9462509960867465, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=quadrilateral-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 1.138386229518801, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=quadrilateral-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=True-mixed=False-2024_01_27]": 0.769547266419977, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=tetrahedron-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 12.222177022136748, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=tetrahedron-periodic=True-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.8518655449151993, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 1.2486360999755561, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=True-2024_01_27]": 1.706544355954975, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=True-mixed=False-2024_01_27]": 0.5872769178822637, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=False-extruded=True-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 2.5325162620283663, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=False-extruded=True-extruded_periodic=False-extruded_real=True-immersed=False-mixed=False-2024_01_27]": 2.782985315192491, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_load[cell_type=triangle-periodic=True-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.7356916875578463, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=hexahedron-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00011616293340921402, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=interval-periodic=False-extruded=True-extruded_periodic=True-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00011869752779603004, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=quadrilateral-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00011973874643445015, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=quadrilateral-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=True-mixed=False-2024_01_27]": 0.00011280737817287445, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=tetrahedron-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00012347614392638206, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=tetrahedron-periodic=True-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.0001165228895843029, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00015493715181946754, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=True-2024_01_27]": 0.00011420948430895805, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=False-extruded=False-extruded_periodic=False-extruded_real=False-immersed=True-mixed=False-2024_01_27]": 0.00011191517114639282, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=False-extruded=True-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.0001183883287012577, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=False-extruded=True-extruded_periodic=False-extruded_real=True-immersed=False-mixed=False-2024_01_27]": 0.00011286698281764984, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_base_save[cell_type=triangle-periodic=True-extruded=False-extruded_periodic=False-extruded_real=False-immersed=False-mixed=False-2024_01_27]": 0.00011858809739351273, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_timestepping_append[2024_01_27]": 16.373014458455145, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_timestepping_load[2024_01_27]": 0.49359299475327134, + "tests/output/test_io_backward_compat.py::test_io_backward_compat_timestepping_save[2024_01_27]": 0.00022292789071798325, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree0]": 1.3999331900849938, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree10]": 2.752979446668178, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree11]": 0.6341660781763494, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree12]": 1.460878239478916, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree13]": 2.909967972431332, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree14]": 4.060576391872019, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree15]": 16.88696456560865, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree16]": 2.4612320391461253, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree17]": 2.823707005009055, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree18]": 2.7301980825141072, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree19]": 2.754567166324705, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree1]": 1.3748823502101004, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree20]": 4.435131870210171, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree21]": 37.18583884043619, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree22]": 1.7322887582704425, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree23]": 6.262830084189773, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree24]": 5.369415157940239, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree25]": 0.7099233833141625, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree26]": 0.7879081484861672, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree27]": 2.6284506884403527, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree28]": 2.412927833851427, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree29]": 2.2619362426921725, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree2]": 1.3925777380354702, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree30]": 2.138596137985587, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree31]": 2.4650769205763936, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree32]": 3.009359434712678, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree33]": 2.2767191119492054, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree34]": 4.088739695493132, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree35]": 7.4927615923807025, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree3]": 1.409781952854246, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree4]": 1.5263681667856872, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree5]": 1.5495380577631295, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree6]": 1.466994110494852, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree7]": 1.517959663644433, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree8]": 1.4073481508530676, + "tests/output/test_io_function.py::test_io_function_base[cell_family_degree9]": 2.6726546180434525, + "tests/output/test_io_function.py::test_io_function_extrusion[cell_family_degree_vfamily_vdegree0]": 9.95519626699388, + "tests/output/test_io_function.py::test_io_function_extrusion[cell_family_degree_vfamily_vdegree1]": 13.080747440923005, + "tests/output/test_io_function.py::test_io_function_extrusion_real[cell_family_degree0]": 3.8990492476150393, + "tests/output/test_io_function.py::test_io_function_extrusion_real[cell_family_degree1]": 4.168166868388653, + "tests/output/test_io_function.py::test_io_function_extrusion_variable_layer1[cell_family_degree_vfamily_vdegree0]": 3.813119570259005, + "tests/output/test_io_function.py::test_io_function_extrusion_variable_layer1[cell_family_degree_vfamily_vdegree1]": 4.3547536372207105, + "tests/output/test_io_function.py::test_io_function_mixed[cell_family_degree_tuples0]": 3.620397298131138, + "tests/output/test_io_function.py::test_io_function_mixed[cell_family_degree_tuples1]": 4.781688835006207, + "tests/output/test_io_function.py::test_io_function_mixed[cell_family_degree_tuples2]": 11.408802228048444, + "tests/output/test_io_function.py::test_io_function_mixed[cell_family_degree_tuples3]": 4.004698715638369, + "tests/output/test_io_function.py::test_io_function_mixed[cell_family_degree_tuples4]": 7.023650483228266, + "tests/output/test_io_function.py::test_io_function_mixed_real[cell_family_degree_tuples0]": 2.7820637188851833, + "tests/output/test_io_function.py::test_io_function_mixed_real[cell_family_degree_tuples1]": 2.7061623451299965, + "tests/output/test_io_function.py::test_io_function_mixed_vector[quadrilateral]": 6.179183966945857, + "tests/output/test_io_function.py::test_io_function_mixed_vector[tetrahedra]": 16.90892341826111, + "tests/output/test_io_function.py::test_io_function_mixed_vector_extrusion_real[cell_family_degree_dim0]": 24.398099110927433, + "tests/output/test_io_function.py::test_io_function_mixed_vector_extrusion_real[cell_family_degree_dim1]": 19.790094041265547, + "tests/output/test_io_function.py::test_io_function_naming[cell_family_degree0]": 1.3622794691473246, + "tests/output/test_io_function.py::test_io_function_naming[cell_family_degree1]": 1.361075306776911, + "tests/output/test_io_function.py::test_io_function_real[quadrilateral]": 0.7073015212081373, + "tests/output/test_io_function.py::test_io_function_real[triangle]": 0.7143185548484325, + "tests/output/test_io_function.py::test_io_function_tensor[cell_family_degree_shape_symmetry0]": 2.508467252831906, + "tests/output/test_io_function.py::test_io_function_tensor[cell_family_degree_shape_symmetry1]": 4.219218859449029, + "tests/output/test_io_function.py::test_io_function_tensor[cell_family_degree_shape_symmetry2]": 2.55583114316687, + "tests/output/test_io_function.py::test_io_function_tensor[cell_family_degree_shape_symmetry3]": 2.676154266577214, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim0]": 3.6846512090414762, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim1]": 3.9897901047952473, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim2]": 3.0911070527508855, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim3]": 11.26283367909491, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim4]": 7.63455981714651, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim5]": 2.2810979448258877, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim6]": 9.855908822733909, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim7]": 8.85442655114457, + "tests/output/test_io_function.py::test_io_function_vector[cell_family_degree_dim8]": 2.998896101024002, + "tests/output/test_io_function.py::test_io_function_vector_extrusion_real[cell_family_degree_dim0]": 4.621015570126474, + "tests/output/test_io_function.py::test_io_function_vector_extrusion_real[cell_family_degree_dim1]": 4.661477736663073, + "tests/output/test_io_mesh.py::test_io_mesh_base[interval]": 2.1338329687714577, + "tests/output/test_io_mesh.py::test_io_mesh_base[quad-square]": 2.4629518589936197, + "tests/output/test_io_mesh.py::test_io_mesh_base[square]": 2.167283170390874, + "tests/output/test_io_mesh.py::test_io_mesh_default_mesh_name": 2.0391767360270023, + "tests/output/test_io_mesh.py::test_io_mesh_radial_extrusion[circlemanifold]": 2.362095642834902, + "tests/output/test_io_mesh.py::test_io_mesh_radial_extrusion[cubedsphere]": 2.4064194881357253, + "tests/output/test_io_mesh.py::test_io_mesh_radial_hedgehog_extrusion[circlemanifold]": 3.512486962135881, + "tests/output/test_io_mesh.py::test_io_mesh_radial_hedgehog_extrusion[cubedsphere]": 4.090522010810673, + "tests/output/test_io_mesh.py::test_io_mesh_radial_hedgehog_extrusion[icosahedron]": 4.369311217684299, + "tests/output/test_io_mesh.py::test_io_mesh_uniform_extrusion[interval]": 3.156550125218928, + "tests/output/test_io_mesh.py::test_io_mesh_uniform_extrusion[quad-square]": 3.673711349721998, + "tests/output/test_io_mesh.py::test_io_mesh_uniform_extrusion[square]": 3.5106712663546205, + "tests/output/test_io_timestepping.py::test_io_timestepping[BDMF3]": 3.3790504266507924, + "tests/output/test_io_timestepping.py::test_io_timestepping[P1]": 1.9297984456643462, + "tests/output/test_io_timestepping.py::test_io_timestepping[P2-P1]": 4.593077791854739, + "tests/output/test_io_timestepping.py::test_io_timestepping[Real]": 0.35981141962110996, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[box[hex]]": 0.3735635560005903, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[box[quad x interval]]": 0.04851711401715875, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[box[tet]]": 0.036826635245233774, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[interval]": 0.03455530432984233, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[sphere[quad]]": 0.3222056473605335, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[sphere[tri]]": 0.03168328898027539, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[square[quad]]": 0.03745908848941326, + "tests/output/test_pvd_output.py::test_can_save_coordinates_parallel[square[tri]]": 0.018615436274558306, + "tests/randomfunctiongen/test_randomfunction.py::test_randomfunc_parallel_pcg64": 0.013304216787219048, + "tests/randomfunctiongen/test_randomfunction.py::test_randomfunc_parallel_philox": 0.012949564959853888, + "tests/regression/test_adv_diff.py::test_adv_diff_on_quadrilaterals_parallel": 5.987550034187734, + "tests/regression/test_adv_diff.py::test_adv_diff_parallel": 5.204198971390724, + "tests/regression/test_adv_diff_nonsplit.py::test_adv_diff_on_quadrilaterals_parallel": 3.191945725120604, + "tests/regression/test_adv_diff_nonsplit.py::test_adv_diff_parallel": 2.670787743292749, + "tests/regression/test_bcs.py::test_bc_nodes_cover_ghost_dofs": 0.004370502196252346, + "tests/regression/test_cell_subdomains.py::test_subdomain_cell_integral_parallel[1]": 0.3033287120051682, + "tests/regression/test_cell_subdomains.py::test_subdomain_cell_integral_parallel[2]": 0.020658467896282673, + "tests/regression/test_cell_subdomains.py::test_subdomain_cell_integral_parallel[everywhere]": 0.30184907000511885, + "tests/regression/test_dg_advection.py::test_dg_advection_cubed_sphere_parallel": 3.4319314816966653, + "tests/regression/test_dg_advection.py::test_dg_advection_icosahedral_sphere_parallel": 3.607740603853017, + "tests/regression/test_ensembleparallelism.py::test_comm_manager_allreduce[blocking]": 1.1019954215735197, + "tests/regression/test_ensembleparallelism.py::test_comm_manager_allreduce[nonblocking]": 1.0977159645408392, + "tests/regression/test_ensembleparallelism.py::test_comm_manager_parallel": 0.00046544335782527924, + "tests/regression/test_ensembleparallelism.py::test_comm_manager_reduce[blocking]": 1.082836924586445, + "tests/regression/test_ensembleparallelism.py::test_comm_manager_reduce[nonblocking]": 1.0801158994436264, + "tests/regression/test_exodus_mesh.py::test_create_from_file": 0.0006156205199658871, + "tests/regression/test_exodus_mesh.py::test_sidesets": 0.00041588814929127693, + "tests/regression/test_expressions.py::test_assign_with_dirty_expression_halo_skips_halo_values": 0.0007474152371287346, + "tests/regression/test_expressions.py::test_assign_with_dirty_halo_and_no_subset_sets_halo_values": 0.00467921607196331, + "tests/regression/test_expressions.py::test_assign_with_dirty_halo_and_subset_skips_halo_values": 0.0005905535072088242, + "tests/regression/test_expressions.py::test_assign_with_valid_halo_and_subset_sets_halo_values": 0.0006327959708869457, + "tests/regression/test_facet_split.py::test_facet_split_parallel[jacobi]": 1.5479237427935004, + "tests/regression/test_facet_split.py::test_facet_split_parallel[lu]": 5.893096944782883, + "tests/regression/test_fas_snespatch.py::test_snespatch[0]": 2.997988703660667, + "tests/regression/test_fas_snespatch.py::test_snespatch[1]": 0.4606177597306669, + "tests/regression/test_fas_snespatch.py::test_snespatch[2]": 0.22331652790308, + "tests/regression/test_fieldsplit_split_reorder_bcs.py::test_fieldsplit_split_reorder_bcs_parallel[flipped]": 12.122483893763274, + "tests/regression/test_fieldsplit_split_reorder_bcs.py::test_fieldsplit_split_reorder_bcs_parallel[normal]": 7.768821244128048, + "tests/regression/test_garbage.py::test_making_many_meshes_does_not_exhaust_comms": 5.339011991396546, + "tests/regression/test_helmholtz.py::test_firedrake_helmholtz_on_quadrilateral_mesh_from_file_parallel": 3.081014874856919, + "tests/regression/test_helmholtz.py::test_firedrake_helmholtz_parallel": 1.8799639656208456, + "tests/regression/test_helmholtz_complex.py::test_firedrake_helmholtz_parallel": 0.00015931623056530952, + "tests/regression/test_helmholtz_nonlinear_diffusion.py::test_l2_conv_on_quadrilaterals_parallel": 2.3350701122544706, + "tests/regression/test_helmholtz_nonlinear_diffusion.py::test_l2_conv_parallel": 1.6839751615189016, + "tests/regression/test_helmholtz_serendipity.py::test_firedrake_helmholtz_on_quadrilateral_mesh_from_file_parallel": 0.03139277920126915, + "tests/regression/test_helmholtz_serendipity.py::test_firedrake_helmholtz_parallel": 2.6084102354943752, + "tests/regression/test_helmholtz_sphere.py::test_helmholtz_mixed_cubedsphere_parallel": 10.960334768984467, + "tests/regression/test_identity.py::test_identity_parallel": 6.040130187291652, + "tests/regression/test_identity.py::test_tensor_identity_nonstandard_shape_parallel": 8.143503421917558, + "tests/regression/test_identity.py::test_tensor_identity_parallel": 7.379857594147325, + "tests/regression/test_identity.py::test_vector_identity_parallel": 6.214820622466505, + "tests/regression/test_integral_hex.py::test_integral_hex_exterior_facet[DQ-False]": 1.1604969510808587, + "tests/regression/test_integral_hex.py::test_integral_hex_exterior_facet[DQ-True]": 0.0333472928032279, + "tests/regression/test_integral_hex.py::test_integral_hex_exterior_facet[Q-False]": 1.1537745906971395, + "tests/regression/test_integral_hex.py::test_integral_hex_exterior_facet[Q-True]": 0.034717803820967674, + "tests/regression/test_interior_facets.py::test_interior_facet_solve_parallel": 2.872656380292028, + "tests/regression/test_interpolate.py::test_interpolation_on_hex": 3.1831010840833187, + "tests/regression/test_interpolate_cross_mesh.py::test_exact_refinement_parallel": 0.7413549614138901, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_interval[False]": 1.2296338086016476, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_interval[True]": 0.2650052928365767, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[circlemanifold]": 7.663416325114667, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[circlemanifold_to_high_order]": 11.966674798168242, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[extrudedcube]": 12.009041207842529, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[sphereextrudedsphereextruded]": 20.320420684292912, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[spheresphere]": 31.763988972641528, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare]": 16.87956288224086, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_N1curl_source]": 14.560318801552057, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_Regge_source]": 17.21888637728989, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_SminusDiv_destination]": 0.8551551825366914, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_from_high_order]": 0.8824833980761468, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_tfs]": 18.98609859123826, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_to_high_order]": 21.095515918917954, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_cross_mesh_parallel[unitsquare_vfs]": 16.718093512114137, + "tests/regression/test_interpolate_cross_mesh.py::test_interpolate_unitsquare_mixed_parallel": 7.876942091155797, + "tests/regression/test_interpolate_cross_mesh.py::test_missing_dofs_parallel": 0.9965051678009331, + "tests/regression/test_manifolds.py::test_manifold_parallel": 4.722823845222592, + "tests/regression/test_manifolds.py::test_no_manifold_parallel": 4.142453565262258, + "tests/regression/test_matrix_free.py::test_get_info[Mass-scalar-local]": 0.005907643120735884, + "tests/regression/test_matrix_free.py::test_get_info[Mass-scalar-max]": 0.005579714197665453, + "tests/regression/test_matrix_free.py::test_get_info[Mass-scalar-sum]": 0.0053473180159926414, + "tests/regression/test_matrix_free.py::test_get_info[Mass-vector-local]": 0.005898626986891031, + "tests/regression/test_matrix_free.py::test_get_info[Mass-vector-max]": 0.006174977403134108, + "tests/regression/test_matrix_free.py::test_get_info[Mass-vector-sum]": 0.005849321372807026, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-scalar-local]": 0.011104533914476633, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-scalar-max]": 0.01049011293798685, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-scalar-sum]": 0.010277996305376291, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-vector-local]": 0.010670811403542757, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-vector-max]": 0.010868498589843512, + "tests/regression/test_matrix_free.py::test_get_info[Poisson-vector-sum]": 0.010766454041004181, + "tests/regression/test_matrix_free.py::test_matrix_free_split_communicators": 1.4110553776845336, + "tests/regression/test_mesh_generation.py::test_bendy_cube_parallel[1]": 0.003397515043616295, + "tests/regression/test_mesh_generation.py::test_bendy_cube_parallel[2]": 0.3416595971211791, + "tests/regression/test_mesh_generation.py::test_bendy_cube_parallel[3]": 0.4209105847403407, + "tests/regression/test_mesh_generation.py::test_bendy_cube_unit_parallel[1]": 0.0034260288812220097, + "tests/regression/test_mesh_generation.py::test_bendy_cube_unit_parallel[2]": 0.00786631554365158, + "tests/regression/test_mesh_generation.py::test_bendy_cube_unit_parallel[3]": 0.00599267752841115, + "tests/regression/test_mesh_generation.py::test_bendy_icos_parallel[1]": 0.003696597181260586, + "tests/regression/test_mesh_generation.py::test_bendy_icos_parallel[2]": 0.3049379740841687, + "tests/regression/test_mesh_generation.py::test_bendy_icos_parallel[3]": 0.3186451238580048, + "tests/regression/test_mesh_generation.py::test_bendy_icos_unit_parallel[1]": 0.003706186544150114, + "tests/regression/test_mesh_generation.py::test_bendy_icos_unit_parallel[2]": 0.006346035748720169, + "tests/regression/test_mesh_generation.py::test_bendy_icos_unit_parallel[3]": 0.00721962284296751, + "tests/regression/test_mesh_generation.py::test_bendy_octa_parallel[1]": 0.0178520898334682, + "tests/regression/test_mesh_generation.py::test_bendy_octa_parallel[2]": 1.4759378735907376, + "tests/regression/test_mesh_generation.py::test_bendy_octa_parallel[3]": 1.539798118174076, + "tests/regression/test_mesh_generation.py::test_bendy_octa_unit_parallel[1]": 0.017231829464435577, + "tests/regression/test_mesh_generation.py::test_bendy_octa_unit_parallel[2]": 0.01797678042203188, + "tests/regression/test_mesh_generation.py::test_bendy_octa_unit_parallel[3]": 0.01851375075057149, + "tests/regression/test_mesh_generation.py::test_cubed_sphere_mesh_num_exterior_facets_parallel": 0.003801940940320492, + "tests/regression/test_mesh_generation.py::test_icosahedral_sphere_mesh_num_exterior_facets_parallel": 0.003014389891177416, + "tests/regression/test_mesh_generation.py::test_interval_parallel": 0.008551550097763538, + "tests/regression/test_mesh_generation.py::test_mesh_validation_parallel": 0.0007232674397528172, + "tests/regression/test_mesh_generation.py::test_octahedral_sphere_mesh_num_exterior_facets_parallel": 1.431496957782656, + "tests/regression/test_mesh_generation.py::test_one_element_advection_parallel": 8.863110294565558, + "tests/regression/test_mesh_generation.py::test_one_element_mesh_parallel": 3.341475016903132, + "tests/regression/test_mesh_generation.py::test_periodic_interval_parallel": 0.3408252317458391, + "tests/regression/test_mesh_generation.py::test_periodic_unit_cube_parallel": 0.41711086919531226, + "tests/regression/test_mesh_generation.py::test_periodic_unit_interval_parallel": 0.03463779157027602, + "tests/regression/test_mesh_generation.py::test_periodic_unit_interval_parallel_np2": 1.1442805342376232, + "tests/regression/test_mesh_generation.py::test_split_comm_dm_mesh": 0.00258222920820117, + "tests/regression/test_mesh_generation.py::test_tensor_box_parallel": 0.010591748636215925, + "tests/regression/test_mesh_generation.py::test_tensor_rectangle_parallel": 0.007904117461293936, + "tests/regression/test_mesh_generation.py::test_unit_cube_parallel": 0.6337618082761765, + "tests/regression/test_mesh_generation.py::test_unit_interval_parallel": 0.046869187615811825, + "tests/regression/test_mesh_generation.py::test_unit_square_parallel": 0.3482670010998845, + "tests/regression/test_mesh_overlaps.py::test_overlap[flat-FACET]": 0.003212789073586464, + "tests/regression/test_mesh_overlaps.py::test_overlap[flat-NONE]": 0.0027874833904206753, + "tests/regression/test_mesh_overlaps.py::test_overlap[flat-VERTEX]": 0.0032585160806775093, + "tests/regression/test_mesh_overlaps.py::test_overlap[refined-FACET]": 0.006355804856866598, + "tests/regression/test_mesh_overlaps.py::test_overlap[refined-NONE]": 0.004773896653205156, + "tests/regression/test_mesh_overlaps.py::test_overlap[refined-VERTEX]": 0.005602758377790451, + "tests/regression/test_mesh_overlaps.py::test_override_distribution_parameters[FACET]": 0.006259008310735226, + "tests/regression/test_mesh_overlaps.py::test_override_distribution_parameters[NONE]": 0.004625883884727955, + "tests/regression/test_mesh_overlaps.py::test_override_distribution_parameters[VERTEX]": 0.005030288361012936, + "tests/regression/test_nested_fieldsplit_solves.py::test_nested_fieldsplit_solve_parallel": 5.763030297588557, + "tests/regression/test_netgen.py::test_alfeld_stokes_netgen": 3.072802876587957, + "tests/regression/test_netgen.py::test_firedrake_Adaptivity_netgen_parallel": 6.761526349931955, + "tests/regression/test_netgen.py::test_firedrake_Poisson_netgen_parallel": 1.3397368020378053, + "tests/regression/test_netgen.py::test_firedrake_integral_sphere_high_order_netgen_parallel": 1.0236317981034517, + "tests/regression/test_nonlinear_helmholtz.py::test_l2_conv_parallel": 1.1413352354429662, + "tests/regression/test_nullspace.py::test_near_nullspace_mixed[PC(DG0-mu)]": 4.437806579750031, + "tests/regression/test_nullspace.py::test_near_nullspace_mixed[PC(mu)]": 6.8105192156508565, + "tests/regression/test_par_loops.py::test_dict_order_parallel": 0.29532907297834754, + "tests/regression/test_par_loops.py::test_mixed_dat_performs_halo_exchange": 0.22801403235644102, + "tests/regression/test_parallel_cr.py::test_cr_facet_integral_parallel": 1.6422894219867885, + "tests/regression/test_parallel_kernel.py::test_kernel_with_det_of_tensor_of_derivatives_of_field": 3.080444951541722, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-quad-crossed]": 0.00037351856008172035, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-quad-left]": 0.5731185520999134, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-quad-right]": 0.00042633991688489914, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-tri-crossed]": 0.14322490664198995, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-tri-left]": 0.5552168926224113, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[both-tri-right]": 0.14487196411937475, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-quad-crossed]": 0.0003385809250175953, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-quad-left]": 3.259116276167333, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-quad-right]": 0.0004119221121072769, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-tri-crossed]": 0.2688233107328415, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-tri-left]": 2.2975791939534247, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[x-tri-right]": 0.14353945571929216, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-quad-crossed]": 0.00034708715975284576, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-quad-left]": 1.5008257329463959, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-quad-right]": 0.00041167158633470535, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-tri-crossed]": 0.26411031652241945, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-tri-left]": 0.4851231714710593, + "tests/regression/test_periodic_2d.py::test_periodic_helmholtz_parallel[y-tri-right]": 0.13896985910832882, + "tests/regression/test_periodic_interval_advection.py::test_periodic_1d_advection_parallel[DG0]": 6.210028914734721, + "tests/regression/test_periodic_interval_advection.py::test_periodic_1d_advection_parallel[DG1]": 7.044842600822449, + "tests/regression/test_periodic_interval_advection.py::test_periodic_1d_advection_parallel[DG2]": 6.855242181569338, + "tests/regression/test_periodic_interval_advection.py::test_periodic_1d_advection_parallel[DG3]": 6.379578552208841, + "tests/regression/test_periodic_rectangle_advection.py::test_parallel_periodic_rectangle_advection": 6.403065616730601, + "tests/regression/test_point_eval_api.py::test_nascent_parallel_support": 0.643923306837678, + "tests/regression/test_poisson_mixed_strong_bcs.py::test_poisson_mixed_parallel[False]": 0.02576394286006689, + "tests/regression/test_poisson_mixed_strong_bcs.py::test_poisson_mixed_parallel[True]": 5.043250259011984, + "tests/regression/test_poisson_mixed_strong_bcs.py::test_poisson_mixed_parallel_fieldsplit": 3.15962133416906, + "tests/regression/test_poisson_sphere.py::test_hdiv_l2_cubedsphere_parallel": 9.531863535288721, + "tests/regression/test_poisson_strong_bcs.py::test_poisson_analytic_linear_parallel": 1.31451810663566, + "tests/regression/test_real_space.py::test_real_mixed_solve": 2.6475895158946514, + "tests/regression/test_real_space.py::test_real_mixed_solve_split_comms": 0.29251377331092954, + "tests/regression/test_restricted_function_space.py::test_poisson_inhomogeneous_bcs_high_level_interface": 1.3321229256689548, + "tests/regression/test_slepc.py::test_laplace_parallel": 0.15085813496261835, + "tests/regression/test_split_communicators.py::test_split_communicators": 0.6057132063433528, + "tests/regression/test_steady_advection_2D.py::test_left_to_right_parallel[quadrilateral-DG]": 3.1637774943374097, + "tests/regression/test_steady_advection_2D.py::test_left_to_right_parallel[quadrilateral-DPC]": 3.607987279072404, + "tests/regression/test_steady_advection_2D.py::test_left_to_right_parallel[triangle-DG]": 3.0920788403600454, + "tests/regression/test_steady_advection_2D.py::test_left_to_right_parallel[triangle-DPC]": 0.020207480061799288, + "tests/regression/test_steady_advection_2D.py::test_up_to_down_parallel[quadrilateral-DG]": 5.005814782343805, + "tests/regression/test_steady_advection_2D.py::test_up_to_down_parallel[quadrilateral-DPC]": 5.134501951280981, + "tests/regression/test_steady_advection_2D.py::test_up_to_down_parallel[triangle-DG]": 4.095277260988951, + "tests/regression/test_steady_advection_2D.py::test_up_to_down_parallel[triangle-DPC]": 0.0261216857470572, + "tests/regression/test_steady_advection_3D.py::test_3d_near_to_far_parallel": 4.961247452534735, + "tests/regression/test_steady_advection_3D.py::test_3d_up_to_down_parallel": 5.959852817468345, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[aij-BDM2-DG1]": 19.99612240260467, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[aij-RT3-DG2]": 26.22883691964671, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[matfree-BDM2-DG1]": 10.999163683038205, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[matfree-RT3-DG2]": 17.11109979590401, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[nest-BDM2-DG1]": 7.99017574544996, + "tests/regression/test_stokes_hdiv_parallel.py::test_stokes_hdiv_parallel[nest-RT3-DG2]": 14.523166480008513, + "tests/regression/test_subdomain.py::test_box_1d_0form_parallel": 1.513477629981935, + "tests/regression/test_subdomain.py::test_box_1d_1form_parallel": 0.5492819342762232, + "tests/regression/test_subdomain.py::test_box_1d_2form_parallel": 0.633098981808871, + "tests/regression/test_upwind_flux.py::test_upwind_flux_cubed_sphere_parallel": 7.104390961583704, + "tests/regression/test_upwind_flux.py::test_upwind_flux_icosahedral_sphere_parallel": 6.210634596180171, + "tests/regression/test_vector.py::test_parallel_gather": 0.003820886369794607, + "tests/regression/test_zero_forms.py::test_dsn_parallel[False]": 0.5144718498922884, + "tests/regression/test_zero_forms.py::test_dsn_parallel[True]": 0.7042855331674218, + "tests/slate/test_cg_poisson.py::test_cg_convergence[3-False-3.75]": 4.525107697118074, + "tests/slate/test_cg_poisson.py::test_cg_convergence[5-True-5.75]": 15.689642280340195, + "tests/slate/test_hdg_poisson.py::test_hdg_convergence[1-False-1.75]": 16.582400509621948, + "tests/slate/test_hdg_poisson.py::test_hdg_convergence[1-True-1.75]": 23.746956082992256, + "tests/slate/test_hdg_poisson.py::test_hdg_convergence[2-False-2.75]": 15.314449888654053, + "tests/slate/test_hdg_poisson.py::test_hdg_convergence[2-True-2.75]": 23.182356069330126, + "tests/slate/test_hybrid_poisson_sphere.py::test_hybrid_conv_parallel[UnitCubedSphereMesh-RTCF]": 15.506931213662028, + "tests/slate/test_hybrid_poisson_sphere.py::test_hybrid_conv_parallel[UnitIcosahedralSphereMesh-BDM]": 11.071424897294492, + "tests/slate/test_slac_parallel.py::test_parallel_kernel_on_sphere": 2.4746989267878234, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub0-2]": 0.3890440007671714, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub0-4]": 0.032855939120054245, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub0-8]": 0.050745421554893255, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub0-None]": 0.058966938871890306, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub1-2]": 0.031611097510904074, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub1-4]": 0.036115172784775496, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub1-8]": 0.06052621593698859, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-GT-fe_fesub1-None]": 0.07238068198785186, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub0-2]": 0.39735629176720977, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub0-4]": 0.03233875473961234, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub0-8]": 0.052676542196422815, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub0-None]": 0.059423747938126326, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub1-2]": 0.03154191607609391, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub1-4]": 0.03559637349098921, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub1-8]": 0.06241479469463229, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-GT-LT-fe_fesub1-None]": 0.07185010286048055, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub0-2]": 0.39809346944093704, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub0-4]": 0.032369384076446295, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub0-8]": 0.051012886222451925, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub0-None]": 0.05897909263148904, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub1-2]": 0.037692463025450706, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub1-4]": 0.03624011343345046, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub1-8]": 0.061413148418068886, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-GT-fe_fesub1-None]": 0.07066647801548243, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub0-2]": 0.3891831901855767, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub0-4]": 0.03258279524743557, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub0-8]": 0.05196319241076708, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub0-None]": 0.05880344519391656, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub1-2]": 0.031647016759961843, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub1-4]": 0.0357487085275352, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub1-8]": 0.06006096117198467, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-GT-LT-LT-fe_fesub1-None]": 1.0540813687257469, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub0-2]": 0.38973035104572773, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub0-4]": 0.03341162716969848, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub0-8]": 0.05305040022358298, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub0-None]": 0.06032196246087551, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub1-2]": 0.0313074947334826, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub1-4]": 0.03635673597455025, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub1-8]": 0.06354174017906189, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-GT-fe_fesub1-None]": 0.07299051387235522, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub0-2]": 0.4013509922660887, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub0-4]": 1.092264270875603, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub0-8]": 0.052425000350922346, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub0-None]": 0.05976865999400616, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub1-2]": 0.038531954400241375, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub1-4]": 0.036303894594311714, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub1-8]": 0.06198636116459966, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-GT-LT-fe_fesub1-None]": 0.07377643324434757, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub0-2]": 0.39282023068517447, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub0-4]": 0.03227553516626358, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub0-8]": 0.050445235799998045, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub0-None]": 0.05976186692714691, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub1-2]": 0.03149330196902156, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub1-4]": 0.035285256803035736, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub1-8]": 0.06020049983635545, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-GT-fe_fesub1-None]": 0.07272741990163922, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub0-2]": 2.371408130507916, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub0-4]": 0.033071684651076794, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub0-8]": 0.05049897078424692, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub0-None]": 0.06114085856825113, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub1-2]": 3.0934140738099813, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub1-4]": 0.03693058900535107, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub1-8]": 0.06099859345704317, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[None-LT-LT-LT-fe_fesub1-None]": 0.07455107243731618, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub0-2]": 0.02703115763142705, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub0-4]": 1.2313676211051643, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub0-8]": 0.04315851582214236, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub0-None]": 0.050666619557887316, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub1-2]": 0.037079534493386745, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub1-4]": 0.0324084903113544, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub1-8]": 0.05049524176865816, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-GT-fe_fesub1-None]": 0.060879071708768606, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub0-2]": 0.027308399323374033, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub0-4]": 0.029524899553507566, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub0-8]": 0.043369519989937544, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub0-None]": 0.05137553159147501, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub1-2]": 0.02954287501052022, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub1-4]": 0.03227347880601883, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub1-8]": 0.04967225017026067, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-GT-LT-fe_fesub1-None]": 0.05949925258755684, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub0-2]": 0.026967606972903013, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub0-4]": 0.029045486822724342, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub0-8]": 0.042475100606679916, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub0-None]": 0.05009878100827336, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub1-2]": 0.029313111677765846, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub1-4]": 0.03191562183201313, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub1-8]": 0.04833948938176036, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-GT-fe_fesub1-None]": 0.05845703789964318, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub0-2]": 0.027818911243230104, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub0-4]": 0.02941617090255022, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub0-8]": 0.04275785339996219, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub0-None]": 0.05030759982764721, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub1-2]": 0.0294165201485157, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub1-4]": 0.03231596387922764, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub1-8]": 0.0486687021329999, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-GT-LT-LT-fe_fesub1-None]": 0.05849555181339383, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub0-2]": 0.027305977419018745, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub0-4]": 0.02970792120322585, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub0-8]": 0.04329562792554498, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub0-None]": 0.05064381705597043, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub1-2]": 1.5724795307032764, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub1-4]": 0.03276837058365345, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub1-8]": 0.04874082934111357, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-GT-fe_fesub1-None]": 0.05975055694580078, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub0-2]": 0.027440885081887245, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub0-4]": 0.029293926432728767, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub0-8]": 0.042811587918549776, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub0-None]": 0.05037294561043382, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub1-2]": 0.029486174695193768, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub1-4]": 0.03235810250043869, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub1-8]": 0.050462269224226475, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-GT-LT-fe_fesub1-None]": 0.061689911875873804, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub0-2]": 0.027422520332038403, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub0-4]": 0.02943963510915637, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub0-8]": 0.04288239357993007, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub0-None]": 0.051308735739439726, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub1-2]": 0.029395793098956347, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub1-4]": 0.03254254721105099, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub1-8]": 0.050115692894905806, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-GT-fe_fesub1-None]": 0.061181504745036364, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub0-2]": 0.028622496407479048, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub0-4]": 0.030413635540753603, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub0-8]": 0.04405570030212402, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub0-None]": 0.051643358543515205, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub1-2]": 0.029548274353146553, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub1-4]": 0.03239898243919015, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub1-8]": 0.05015870509669185, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_hex_3_processes[distribution_parameters1-LT-LT-LT-fe_fesub1-None]": 0.06024177884683013, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-GT-GT-fe_fesub0]": 0.34537872578948736, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-GT-GT-fe_fesub1]": 0.03566212020814419, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-GT-LT-fe_fesub0]": 0.33775422908365726, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-GT-LT-fe_fesub1]": 0.0356595846824348, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-LT-GT-fe_fesub0]": 0.33990471065044403, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-LT-GT-fe_fesub1]": 0.03446611203253269, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-LT-LT-fe_fesub0]": 2.0372163648717105, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[None-LT-LT-fe_fesub1]": 2.4067927291616797, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-GT-GT-fe_fesub0]": 0.029975703451782465, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-GT-GT-fe_fesub1]": 0.03176146559417248, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-GT-LT-fe_fesub0]": 0.030816099606454372, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-GT-LT-fe_fesub1]": 0.03252608422189951, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-LT-GT-fe_fesub0]": 0.030837790574878454, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-LT-GT-fe_fesub1]": 0.03169187204912305, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-LT-LT-fe_fesub0]": 0.03112412104383111, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_quad_3_processes[distribution_parameters1-LT-LT-fe_fesub1]": 0.0327690108679235, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-GT-fe_fesub0]": 0.31390912691131234, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-GT-fe_fesub1]": 0.032753211446106434, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-GT-fe_fesub2]": 0.032935221679508686, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-GT-fe_fesub3]": 0.03209970472380519, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-LT-fe_fesub0]": 0.30802812753245234, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-LT-fe_fesub1]": 0.03215658478438854, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-LT-fe_fesub2]": 0.032087432220578194, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-GT-LT-fe_fesub3]": 0.03207951597869396, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-GT-fe_fesub0]": 0.31102247070521116, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-GT-fe_fesub1]": 0.03213021578267217, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-GT-fe_fesub2]": 0.03193592093884945, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-GT-fe_fesub3]": 0.0319017949514091, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-LT-fe_fesub0]": 1.6645149737596512, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-LT-fe_fesub1]": 2.0824222899973392, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-LT-fe_fesub2]": 3.0007640556432307, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[None-LT-LT-fe_fesub3]": 3.0054783672094345, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-GT-fe_fesub0]": 0.030946419574320316, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-GT-fe_fesub1]": 0.03030733158811927, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-GT-fe_fesub2]": 0.031032835599035025, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-GT-fe_fesub3]": 0.030184765346348286, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-LT-fe_fesub0]": 0.02915610931813717, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-LT-fe_fesub1]": 0.02959692757576704, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-LT-fe_fesub2]": 0.030618319287896156, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-GT-LT-fe_fesub3]": 0.03078614082187414, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-GT-fe_fesub0]": 0.02855608705431223, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-GT-fe_fesub1]": 0.029983969870954752, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-GT-fe_fesub2]": 0.030387324281036854, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-GT-fe_fesub3]": 0.030424958560615778, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-LT-fe_fesub0]": 0.028915417846292257, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-LT-fe_fesub1]": 0.029926800169050694, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-LT-fe_fesub2]": 0.03072198899462819, + "tests/submesh/test_submesh_interpolate.py::test_submesh_interpolate_cell_cell_tri_3_processes[distribution_parameters1-LT-LT-fe_fesub3]": 0.03080331487581134, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[CG1-CG1]": 0.717767761554569, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[CG1-CG2]": 2.233963143080473, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[CG1-DG1]": 1.011167149990797, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[CG2-CG2]": 0.7372335665859282, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG0-CG1]": 1.265881564002484, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG0-CG2]": 0.6574909677729011, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG0-DG0]": 0.9743231139145792, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG0-DG1]": 0.618456450290978, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG1-CG1]": 0.9622687106020749, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG1-CG2]": 0.6952559864148498, + "tests/supermesh/test_nonnested_project.py::test_project_parallel[DG1-DG1]": 0.6427897200919688, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[CG1-CG1]": 0.08677535504102707, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[CG1-CG2]": 0.08963607111945748, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[CG1-DG1]": 0.07639122335240245, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[CG2-CG2]": 0.10124991601333022, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG0-CG1]": 0.07412523915991187, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG0-CG2]": 0.08696792647242546, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG0-DG0]": 0.07102599600329995, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG0-DG1]": 0.07392344111576676, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG1-CG1]": 0.07633645832538605, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG1-CG2]": 0.08951577078551054, + "tests/supermesh/test_nonnested_project_no_hierarchy.py::test_project_parallel[DG1-DG1]": 0.07497909991070628, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Cofunction-nprocs=2]": 0.00578449759632349, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Cofunction-nprocs=3]": 0.005878114141523838, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Cofunction-nprocs=4]": 0.006503991317003965, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Constant-nprocs=2]": 0.00039809616282582283, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Constant-nprocs=3]": 0.00043348316103219986, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Constant-nprocs=4]": 0.00040819495916366577, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Function-nprocs=2]": 0.005911450833082199, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Function-nprocs=3]": 0.0061063920147717, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Function-nprocs=4]": 0.0069313920103013515, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Mesh-nprocs=2]": 0.0023458548821508884, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Mesh-nprocs=3]": 0.002265763934701681, + "tests/unit/test_utils/test_uid.py::test_monotonic_uid[Mesh-nprocs=4]": 0.0023585613816976547, + "tests/vertexonly/test_different_comms.py::test_different_comms": 0.5186760150827467, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(Regge2)]": 0.1701470548287034, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.07766145328059793, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.14008933817967772, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(Regge2)]": 0.06303184805437922, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.06278878916054964, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.06311946595087647, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(Regge2)]": 0.06474168179556727, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-100-coords-TensorFunctionSpace(CG2)]": 1.883476834744215, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[cube-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.06974805938079953, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(Regge2)]": 0.0089187640696764, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.4468436669558287, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.010148325469344854, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(Regge2)]": 0.008406600449234247, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.1337753194384277, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.008845304604619741, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(Regge2)]": 0.008371703326702118, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.1303319432772696, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extruded-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.008736545220017433, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(Regge2)]": 0.00011369772255420685, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.00012244470417499542, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.00011606281623244286, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(Regge2)]": 0.00011446932330727577, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.00011220620945096016, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.00011224579066038132, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(Regge2)]": 0.00011053355410695076, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.0001115952618420124, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.00011872826144099236, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(Regge2)]": 0.00933591602370143, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.36647532833740115, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.010828402824699879, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(Regge2)]": 0.0094261490739882, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.057106472086161375, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.009692301042377949, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(Regge2)]": 0.009572030510753393, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.057481270749121904, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphere-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.009649178013205528, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(Regge2)]": 0.01710210694000125, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.2844968042336404, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.01819659024477005, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(Regge2)]": 0.015481362119317055, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.14076563622802496, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.016545296646654606, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(Regge2)]": 0.015610629692673683, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.13843089109286666, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.016716205049306154, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(Regge2)]": 0.0011328267864882946, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.10781141836196184, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.0013103969395160675, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(Regge2)]": 0.0010956758633255959, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.06916553108021617, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.0011647972278296947, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(Regge2)]": 0.0010984810069203377, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.06722107389941812, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[interval-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0012071989476680756, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(Regge2)]": 0.1537922932766378, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.3716901154257357, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.15986607130616903, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(Regge2)]": 0.05628589587286115, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.05724571878090501, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.05857392167672515, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(Regge2)]": 0.05698969680815935, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-100-coords-TensorFunctionSpace(CG2)]": 1.326764513272792, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[periodicrectangle-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.06235011760145426, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(Regge2)]": 0.04082516161724925, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.041856424417346716, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.042862786911427975, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(Regge2)]": 0.042515978682786226, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.04426715383306146, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.042470192071050406, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(Regge2)]": 0.041890629567205906, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.04222186515107751, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[shiftedmesh-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.043480793945491314, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(Regge2)]": 0.08471579710021615, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.05075850710272789, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.08688723621889949, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(Regge2)]": 0.042824624106287956, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.03981034271419048, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-1-coords-VectorFunctionSpace(BDM2)]": 1.1793127413839102, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(Regge2)]": 0.041335212998092175, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.04190380498766899, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[square-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.046111668925732374, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(Regge2)]": 0.0014890297316014767, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.19960406934842467, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.0017906716093420982, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(Regge2)]": 0.001476446632295847, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.14395276177674532, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.0016059968620538712, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(Regge2)]": 0.0014243163168430328, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.14363742619752884, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[squarequads-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0017140726558864117, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(Regge2)]": 0.05985496332868934, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.06037545157596469, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.062185268849134445, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(Regge2)]": 0.05921713775023818, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.0612732470035553, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.06041688285768032, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(Regge2)]": 0.0597853884100914, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.05962875811383128, + "tests/vertexonly/test_interpolation_from_parent.py::test_mixed_function_interpolation_parallel[tetrahedron-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.059912041295319796, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[cube-mesh-0-coords]": 0.42899883165955544, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[cube-mesh-1-coords]": 0.06053493916988373, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[cube-mesh-100-coords]": 0.05549774970859289, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extruded-mesh-0-coords]": 0.16756465751677752, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extruded-mesh-1-coords]": 0.11739615816622972, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extruded-mesh-100-coords]": 0.11839877348393202, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-0-coords]": 0.00013803644105792046, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-1-coords]": 0.00011987891048192978, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-100-coords]": 0.00013151299208402634, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-0-coords]": 0.5878256801515818, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-1-coords]": 0.056940080132335424, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-100-coords]": 0.05079629551619291, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-0-coords]": 0.12699091248214245, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-1-coords]": 0.1237403666600585, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-100-coords]": 0.12553303223103285, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[interval-mesh-0-coords]": 0.39671037485823035, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[interval-mesh-1-coords]": 0.06058938289061189, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[interval-mesh-100-coords]": 0.05749180307611823, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-0-coords]": 0.06737152440473437, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-1-coords]": 0.04909929586574435, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-100-coords]": 0.050621571484953165, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-0-coords]": 0.03914300678297877, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-1-coords]": 0.042441003024578094, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-100-coords]": 0.04339837282896042, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[square-mesh-0-coords]": 0.3808554629795253, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[square-mesh-1-coords]": 0.037400488276034594, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[square-mesh-100-coords]": 0.03506825678050518, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[squarequads-mesh-0-coords]": 0.7291332907043397, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[squarequads-mesh-1-coords]": 0.13559712888672948, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[squarequads-mesh-100-coords]": 0.13283823616802692, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-0-coords]": 0.05655968002974987, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-1-coords]": 0.05343113886192441, + "tests/vertexonly/test_interpolation_from_parent.py::test_scalar_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-100-coords]": 0.05305702984333038, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(Regge2)]": 10.965667694341391, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.8959068851545453, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-0-coords-VectorFunctionSpace(BDM2)]": 6.322193345986307, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(Regge2)]": 0.06762955011799932, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.07559014484286308, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.07583013456314802, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(Regge2)]": 0.0681948265992105, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.0689079174771905, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[cube-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.07515803445130587, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(Regge2)]": 0.008496683556586504, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-0-coords-TensorFunctionSpace(CG2)]": 3.6389394532889128, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.010598942637443542, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(Regge2)]": 0.008546178694814444, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.1397641501389444, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.009366635233163834, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(Regge2)]": 0.00878481799736619, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.13579962169751525, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extruded-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.008674515876919031, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(Regge2)]": 0.0001295488327741623, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.00013018911704421043, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.00012680329382419586, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(Regge2)]": 0.00013602105900645256, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.00011687446385622025, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.00012724334374070168, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(Regge2)]": 0.00011959066614508629, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.00012318650260567665, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0001249704509973526, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(Regge2)]": 0.010811270214617252, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.295099657960236, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.010305097792297602, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(Regge2)]": 0.009385510813444853, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.0664409869350493, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.009773926809430122, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(Regge2)]": 0.009343631099909544, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.06613983726128936, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphere-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.009453121572732925, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(Regge2)]": 0.015559874009341002, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.15424868185073137, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.016387655399739742, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(Regge2)]": 0.015368014574050903, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.14411043422296643, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.01639128103852272, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(Regge2)]": 0.015940765850245953, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.14266467792913318, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.016362504102289677, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(Regge2)]": 0.0011070859618484974, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.2205633758567274, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.001412804238498211, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(Regge2)]": 0.0011171652004122734, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.07509657833725214, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.0011280071921646595, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(Regge2)]": 0.001098510343581438, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.07325182482600212, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[interval-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0011559710837900639, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(Regge2)]": 0.04744009207934141, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.05068461364135146, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.04730677604675293, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(Regge2)]": 0.048202686943113804, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.047546837478876114, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.04726422345265746, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(Regge2)]": 0.04975860612466931, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.048062348272651434, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[periodicrectangle-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0476141064427793, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(Regge2)]": 0.048124014399945736, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.052929708268493414, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.053114812821149826, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(Regge2)]": 0.04869212629273534, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.04830813081935048, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.048021378461271524, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(Regge2)]": 0.048832636792212725, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.0485055185854435, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[shiftedmesh-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.04843075480312109, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(Regge2)]": 0.5048014968633652, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.1776243667118251, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-0-coords-VectorFunctionSpace(BDM2)]": 1.9378580595366657, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(Regge2)]": 0.0451704440638423, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.0479305861517787, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.04590717935934663, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(Regge2)]": 0.045675262808799744, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.04662810219451785, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[square-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.046136788092553616, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(Regge2)]": 0.0014930879697203636, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-0-coords-TensorFunctionSpace(CG2)]": 1.8138586771674454, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.0019235857762396336, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(Regge2)]": 0.0017102165147662163, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.15439059073105454, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.0016204738058149815, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(Regge2)]": 0.0015768189914524555, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.15034677274525166, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[squarequads-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.0017201551236212254, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(Regge2)]": 0.06573633337393403, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-0-coords-TensorFunctionSpace(CG2)]": 0.0655413269996643, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-0-coords-VectorFunctionSpace(BDM2)]": 0.06547850696370006, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(Regge2)]": 0.06509036244824529, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-1-coords-TensorFunctionSpace(CG2)]": 0.06589615112170577, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-1-coords-VectorFunctionSpace(BDM2)]": 0.06576269306242466, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(Regge2)]": 0.06585568282753229, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-100-coords-TensorFunctionSpace(CG2)]": 0.06592641724273562, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_function_interpolation_parallel[tetrahedron-mesh-100-coords-VectorFunctionSpace(BDM2)]": 0.06631692871451378, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[cube-mesh-0-coords]": 0.4257825454697013, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[cube-mesh-1-coords]": 0.058250993955880404, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[cube-mesh-100-coords]": 0.05552591988816857, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extruded-mesh-0-coords]": 0.544848782941699, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extruded-mesh-1-coords]": 0.12164960941299796, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extruded-mesh-100-coords]": 0.11848084162920713, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-0-coords]": 0.0001361612230539322, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-1-coords]": 0.00011771591380238533, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-100-coords]": 0.00011456990614533424, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-0-coords]": 0.40579080674797297, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-1-coords]": 0.05325390538200736, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-100-coords]": 0.05116373905912042, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-0-coords]": 0.12705063540488482, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-1-coords]": 0.12550796242430806, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-100-coords]": 0.1337654171511531, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[interval-mesh-0-coords]": 0.3930138503201306, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[interval-mesh-1-coords]": 0.06372142536565661, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[interval-mesh-100-coords]": 0.06070901732891798, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-0-coords]": 0.06633142847567797, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-1-coords]": 0.049293575808405876, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-100-coords]": 0.04975357046350837, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-0-coords]": 0.03689155774191022, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-1-coords]": 0.03656456992030144, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-100-coords]": 0.03684824565425515, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[square-mesh-0-coords]": 0.37776170717552304, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[square-mesh-1-coords]": 0.037580191157758236, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[square-mesh-100-coords]": 0.03561425395309925, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[squarequads-mesh-0-coords]": 0.547958757262677, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[squarequads-mesh-1-coords]": 0.13404699740931392, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[squarequads-mesh-100-coords]": 0.1313365106470883, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-0-coords]": 0.05376602755859494, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-1-coords]": 0.05382618401199579, + "tests/vertexonly/test_interpolation_from_parent.py::test_tensor_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-100-coords]": 0.053672969341278076, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(N1curl2)]": 3.2308380575850606, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(N1div2)]": 4.64948160527274, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(N2curl2)]": 4.10291350632906, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(N2div2)]": 4.458427675999701, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(RTCE2)]": 0.002489503938704729, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-FunctionSpace(RTCF2)]": 0.002105965744704008, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-0-coords-VectorFunctionSpace(CG2)]": 1.3428670675493777, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(N1curl2)]": 0.07052744179964066, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(N1div2)]": 0.06507153995335102, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(N2curl2)]": 0.07123252702876925, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(N2div2)]": 1.084392768330872, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(RTCE2)]": 0.002169176936149597, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-FunctionSpace(RTCF2)]": 0.002205146010965109, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.07160566467791796, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(N1curl2)]": 0.07055787136778235, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(N1div2)]": 0.07154801255092025, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(N2curl2)]": 0.07362948218360543, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(N2div2)]": 0.0679189614020288, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(RTCE2)]": 0.00209813192486763, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-FunctionSpace(RTCF2)]": 0.0020311307162046432, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[cube-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.06836644094437361, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(N1curl2)]": 0.009687942918390036, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(N1div2)]": 0.008704554289579391, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(N2curl2)]": 0.008761925157159567, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(N2div2)]": 0.009094943758100271, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(RTCE2)]": 0.008651753421872854, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-FunctionSpace(RTCF2)]": 0.00860130600631237, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-0-coords-VectorFunctionSpace(CG2)]": 1.6322374157607555, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(N1curl2)]": 0.008513586595654488, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(N1div2)]": 0.008419816847890615, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(N2curl2)]": 0.008677052333950996, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(N2div2)]": 0.008275048341602087, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(RTCE2)]": 0.00824607303366065, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-FunctionSpace(RTCF2)]": 0.008713792078197002, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.13575347233563662, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(N1curl2)]": 0.008458441123366356, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(N1div2)]": 0.008263477124273777, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(N2curl2)]": 0.00872738752514124, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(N2div2)]": 0.008251153863966465, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(RTCE2)]": 0.008232385851442814, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-FunctionSpace(RTCF2)]": 0.008226705715060234, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extruded-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.1322873244062066, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(N1curl2)]": 0.00011721625924110413, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(N1div2)]": 0.00011303694918751717, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(N2curl2)]": 0.00011694477871060371, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(N2div2)]": 0.00012752506881952286, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(RTCE2)]": 0.00011630309745669365, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-FunctionSpace(RTCF2)]": 0.00011248607188463211, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.0001244889572262764, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(N1curl2)]": 0.00011071376502513885, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(N1div2)]": 0.00011053215712308884, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(N2curl2)]": 0.00010971119627356529, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(N2div2)]": 0.00011094240471720695, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(RTCE2)]": 0.0002227388322353363, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-FunctionSpace(RTCF2)]": 0.00011106347665190697, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.00011139316484332085, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(N1curl2)]": 0.00011092191562056541, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(N1div2)]": 0.00011016195639967918, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(N2curl2)]": 0.00011124275624752045, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(N2div2)]": 0.00011127348989248276, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(RTCE2)]": 0.0001237490214407444, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-FunctionSpace(RTCF2)]": 0.00011712592095136642, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[extrudedvariablelayers-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.0001104213297367096, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(N1curl2)]": 0.010982289910316467, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(N1div2)]": 0.009780310094356537, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(N2curl2)]": 0.010063475463539362, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(N2div2)]": 0.009783708024770021, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(RTCE2)]": 0.009611025918275118, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-FunctionSpace(RTCF2)]": 0.008900380693376064, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-0-coords-VectorFunctionSpace(CG2)]": 1.1048581949435174, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(N1curl2)]": 0.009466618299484253, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(N1div2)]": 0.009470084682106972, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(N2curl2)]": 0.009576458018273115, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(N2div2)]": 0.009568494744598866, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(RTCE2)]": 0.009456147905439138, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-FunctionSpace(RTCF2)]": 0.009280160069465637, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.06180317001417279, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(N1curl2)]": 0.01040486991405487, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(N1div2)]": 0.009797293227165937, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(N2curl2)]": 0.009652083739638329, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(N2div2)]": 0.009415438398718834, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(RTCE2)]": 0.009466858115047216, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-FunctionSpace(RTCF2)]": 0.00972516369074583, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphere-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.06252811150625348, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(N1curl2)]": 0.01629172032698989, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(N1div2)]": 0.016020860988646746, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(N2curl2)]": 0.016030027996748686, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(N2div2)]": 0.01659323927015066, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(RTCE2)]": 0.016207358799874783, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-FunctionSpace(RTCF2)]": 0.016049434896558523, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.15285029588267207, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(N1curl2)]": 0.01645661797374487, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(N1div2)]": 0.01586583210155368, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(N2curl2)]": 0.016130209900438786, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(N2div2)]": 0.016586947720497847, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(RTCE2)]": 0.01612535212188959, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-FunctionSpace(RTCF2)]": 0.01619594730436802, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.14215454645454884, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(N1curl2)]": 0.016470573842525482, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(N1div2)]": 0.016485030762851238, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(N2curl2)]": 0.01568831130862236, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(N2div2)]": 0.01614079950377345, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(RTCE2)]": 0.01588810607790947, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-FunctionSpace(RTCF2)]": 0.016084623988717794, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[immersedsphereextruded-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.14338481845334172, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(N1curl2)]": 0.0014699334278702736, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(N1div2)]": 0.0011065457947552204, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(N2curl2)]": 0.0011446787975728512, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(N2div2)]": 0.0011087297461926937, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(RTCE2)]": 0.0012537091970443726, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-FunctionSpace(RTCF2)]": 0.0012016892433166504, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-0-coords-VectorFunctionSpace(CG2)]": 1.1173443021252751, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(N1curl2)]": 0.0011427151039242744, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(N1div2)]": 0.0011201128363609314, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(N2curl2)]": 0.001108671072870493, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(N2div2)]": 0.0013703121803700924, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(RTCE2)]": 0.0010952949523925781, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-FunctionSpace(RTCF2)]": 0.0010781511664390564, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.07282748492434621, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(N1curl2)]": 0.0011157440021634102, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(N1div2)]": 0.0010871291160583496, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(N2curl2)]": 0.0011004433035850525, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(N2div2)]": 0.0010796752758324146, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(RTCE2)]": 0.0012845280580222607, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-FunctionSpace(RTCF2)]": 0.0010809269733726978, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[interval-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.06876099249348044, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(N1curl2)]": 0.04766951501369476, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(N1div2)]": 0.047107405960559845, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(N2curl2)]": 0.046922109089791775, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(N2div2)]": 0.04716666787862778, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(RTCE2)]": 0.016968040261417627, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-FunctionSpace(RTCF2)]": 0.01652488810941577, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.050004211254417896, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(N1curl2)]": 0.04697923921048641, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(N1div2)]": 1.2796696876175702, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(N2curl2)]": 0.05101637728512287, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(N2div2)]": 0.04897177591919899, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(RTCE2)]": 0.01749035296961665, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-FunctionSpace(RTCF2)]": 0.015714550856500864, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.04629972390830517, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(N1curl2)]": 0.04860358079895377, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(N1div2)]": 0.047657322604209185, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(N2curl2)]": 0.04771903110668063, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(N2div2)]": 0.04818054707720876, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(RTCE2)]": 0.017210295889526606, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-FunctionSpace(RTCF2)]": 0.015794173814356327, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[periodicrectangle-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.04744251864030957, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(N1curl2)]": 0.051992280408740044, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(N1div2)]": 0.05201402306556702, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(N2curl2)]": 0.050282225012779236, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(N2div2)]": 0.05083062872290611, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(RTCE2)]": 0.004774673841893673, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-FunctionSpace(RTCF2)]": 0.004788168705999851, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.046793792862445116, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(N1curl2)]": 0.05174376396462321, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(N1div2)]": 0.05124104581773281, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(N2curl2)]": 0.04959528613835573, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(N2div2)]": 0.050167754758149385, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(RTCE2)]": 0.004734285641461611, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-FunctionSpace(RTCF2)]": 0.004832363687455654, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.04994556773453951, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(N1curl2)]": 0.04628407442942262, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(N1div2)]": 0.04861603258177638, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(N2curl2)]": 0.05031271278858185, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(N2div2)]": 0.04887543199583888, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(RTCE2)]": 0.004720469005405903, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-FunctionSpace(RTCF2)]": 0.004888161551207304, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[shiftedmesh-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.04880258347839117, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(N1curl2)]": 0.4185764491558075, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(N1div2)]": 1.4938206654042006, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(N2curl2)]": 1.6257919184863567, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(N2div2)]": 3.486701229121536, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(RTCE2)]": 0.0020450702868402004, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-FunctionSpace(RTCF2)]": 0.0017585293389856815, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.7473898380994797, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(N1curl2)]": 0.04825868969783187, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(N1div2)]": 0.047680279705673456, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(N2curl2)]": 0.04988912120461464, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(N2div2)]": 0.04498631181195378, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(RTCE2)]": 0.0015528234653174877, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-FunctionSpace(RTCF2)]": 0.0017333496361970901, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.048552295193076134, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(N1curl2)]": 0.047813124023377895, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(N1div2)]": 0.0477453232742846, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(N2curl2)]": 0.04533233679831028, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(N2div2)]": 0.04545885091647506, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(RTCE2)]": 0.0017014588229358196, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-FunctionSpace(RTCF2)]": 0.0015967781655490398, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[square-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.04510795697569847, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(N1curl2)]": 0.0020522717386484146, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(N1div2)]": 0.0015751160681247711, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(N2curl2)]": 0.0018289238214492798, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(N2div2)]": 0.0017073508352041245, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(RTCE2)]": 0.13439042586833239, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-FunctionSpace(RTCF2)]": 0.13333153119310737, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-0-coords-VectorFunctionSpace(CG2)]": 1.5881090075708926, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(N1curl2)]": 0.002047194167971611, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(N1div2)]": 0.0015668305568397045, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(N2curl2)]": 0.0017599016427993774, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(N2div2)]": 0.001702530775219202, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(RTCE2)]": 0.12877561757341027, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-FunctionSpace(RTCF2)]": 1.1995377778075635, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.14066977007314563, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(N1curl2)]": 0.0018348749727010727, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(N1div2)]": 0.0016720127314329147, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(N2curl2)]": 0.0018154880963265896, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(N2div2)]": 0.0022129015997052193, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(RTCE2)]": 0.1351999486796558, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-FunctionSpace(RTCF2)]": 1.1963603012263775, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[squarequads-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.14381331019103527, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(N1curl2)]": 0.06871167290955782, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(N1div2)]": 0.0638665552251041, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(N2curl2)]": 0.06385787902399898, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(N2div2)]": 0.06389117240905762, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(RTCE2)]": 0.001672843936830759, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-FunctionSpace(RTCF2)]": 0.0017918930388987064, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-0-coords-VectorFunctionSpace(CG2)]": 0.0664426744915545, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(N1curl2)]": 0.06345001515001059, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(N1div2)]": 0.06294282013550401, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(N2curl2)]": 0.06347126606851816, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(N2div2)]": 0.06354049826040864, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(RTCE2)]": 0.0016369051299989223, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-FunctionSpace(RTCF2)]": 0.0016953167505562305, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-1-coords-VectorFunctionSpace(CG2)]": 0.06389003992080688, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(N1curl2)]": 0.06335141370072961, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(N1div2)]": 0.06344051659107208, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(N2curl2)]": 0.06381012639030814, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(N2div2)]": 0.06331224087625742, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(RTCE2)]": 0.0016584559343755245, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-FunctionSpace(RTCF2)]": 0.0016521546058356762, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_function_interpolation_parallel[tetrahedron-mesh-100-coords-VectorFunctionSpace(CG2)]": 0.06428458727896214, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[cube-mesh-0-coords]": 0.37644936377182603, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[cube-mesh-1-coords]": 0.05838861269876361, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[cube-mesh-100-coords]": 0.055612549651414156, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extruded-mesh-0-coords]": 0.4763410775922239, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extruded-mesh-1-coords]": 0.1211830829270184, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extruded-mesh-100-coords]": 0.12016663001850247, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-0-coords]": 0.00013618078082799911, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-1-coords]": 0.000118959229439497, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[extrudedvariablelayers-mesh-100-coords]": 0.0001162942498922348, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-0-coords]": 0.36820135451853275, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-1-coords]": 0.0575932152569294, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphere-mesh-100-coords]": 0.05123427649959922, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-0-coords]": 0.128332348074764, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-1-coords]": 0.12498676124960184, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[immersedsphereextruded-mesh-100-coords]": 0.12484768265858293, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[interval-mesh-0-coords]": 0.37848985474556684, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[interval-mesh-1-coords]": 0.059892804361879826, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[interval-mesh-100-coords]": 0.05788433412089944, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-0-coords]": 0.06404097424820065, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-1-coords]": 0.05046287598088384, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[periodicrectangle-mesh-100-coords]": 0.05120997177436948, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-0-coords]": 0.039308704901486635, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-1-coords]": 0.03642778983339667, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[shiftedmesh-mesh-100-coords]": 0.03652456495910883, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[square-mesh-0-coords]": 0.03503647679463029, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[square-mesh-1-coords]": 0.03498370386660099, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[square-mesh-100-coords]": 0.03507965989410877, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[squarequads-mesh-0-coords]": 0.5107496483251452, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[squarequads-mesh-1-coords]": 0.13330791890621185, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[squarequads-mesh-100-coords]": 0.13025274872779846, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-0-coords]": 0.05350886657834053, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-1-coords]": 0.05318237980827689, + "tests/vertexonly/test_interpolation_from_parent.py::test_vector_spatialcoordinate_interpolation_parallel[tetrahedron-mesh-100-coords]": 0.05355583783239126, + "tests/vertexonly/test_poisson_inverse_conductivity.py::test_poisson_inverse_conductivity_parallel[dense]": 30.026812612544745, + "tests/vertexonly/test_poisson_inverse_conductivity.py::test_poisson_inverse_conductivity_parallel[per_cell]": 78.93761792033911, + "tests/vertexonly/test_poisson_inverse_conductivity.py::test_poisson_inverse_conductivity_parallel[sparse]": 34.13198793074116, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_2d_2procs": 1.02203289559111, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_2d_3procs": 0.1411356022581458, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[cube-nonredundant-exclude_halos]": 0.057028552051633596, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[cube-nonredundant-include_halos]": 0.056673749815672636, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[cube-redundant-exclude_halos]": 0.3503919132053852, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[cube-redundant-include_halos]": 0.05706145567819476, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extruded-nonredundant-exclude_halos]": 0.11979869334027171, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extruded-nonredundant-include_halos]": 0.11951469723135233, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extruded-redundant-exclude_halos]": 0.48551165824756026, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extruded-redundant-include_halos]": 0.12360482523217797, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extrudedvariablelayers-nonredundant-exclude_halos]": 0.00011447025462985039, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extrudedvariablelayers-nonredundant-include_halos]": 0.00011667376384139061, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extrudedvariablelayers-redundant-exclude_halos]": 0.00013377796858549118, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[extrudedvariablelayers-redundant-include_halos]": 0.00011802650988101959, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphere-nonredundant-exclude_halos]": 0.05060720629990101, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphere-nonredundant-include_halos]": 0.05110805807635188, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphere-redundant-exclude_halos]": 0.05568561144173145, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphere-redundant-include_halos]": 0.055493713822215796, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphereextruded-nonredundant-exclude_halos]": 0.13145634811371565, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphereextruded-nonredundant-include_halos]": 0.132144290022552, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphereextruded-redundant-exclude_halos]": 0.14309023460373282, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[immersedsphereextruded-redundant-include_halos]": 0.1430012141354382, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[interval-nonredundant-exclude_halos]": 0.05576069699600339, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[interval-nonredundant-include_halos]": 0.05462702922523022, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[interval-redundant-exclude_halos]": 0.3269315776415169, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[interval-redundant-include_halos]": 0.056014221627265215, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[periodicrectangle-nonredundant-exclude_halos]": 0.050521933007985353, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[periodicrectangle-nonredundant-include_halos]": 0.05272330157458782, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[periodicrectangle-redundant-exclude_halos]": 0.06384644890204072, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[periodicrectangle-redundant-include_halos]": 0.052204995416104794, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[shiftedmesh-nonredundant-exclude_halos]": 0.0645685768686235, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[shiftedmesh-nonredundant-include_halos]": 0.06637919414788485, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[shiftedmesh-redundant-exclude_halos]": 0.17909130407497287, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[shiftedmesh-redundant-include_halos]": 0.17857573367655277, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[square-nonredundant-exclude_halos]": 0.03628213796764612, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[square-nonredundant-include_halos]": 0.036075049079954624, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[square-redundant-exclude_halos]": 0.05706605268642306, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[square-redundant-include_halos]": 0.03723269375041127, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[squarequads-nonredundant-exclude_halos]": 0.12514191772788763, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[squarequads-nonredundant-include_halos]": 0.12332537863403559, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[squarequads-redundant-exclude_halos]": 0.42687377519905567, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[squarequads-redundant-include_halos]": 0.12603193754330277, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[tetrahedron-nonredundant-exclude_halos]": 0.054294600151479244, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[tetrahedron-nonredundant-include_halos]": 0.05421166121959686, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[tetrahedron-redundant-exclude_halos]": 0.054149490781128407, + "tests/vertexonly/test_swarm.py::test_pic_swarm_in_mesh_parallel[tetrahedron-redundant-include_halos]": 0.05438031395897269, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[cube-0-coords]": 0.19526155479252338, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[cube-1-coords]": 0.19476364646106958, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[cube-100-coords]": 0.19424298778176308, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extruded-0-coords]": 3.1997304698452353, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extruded-1-coords]": 0.26046939846128225, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extruded-100-coords]": 0.25652625411748886, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extrudedvariablelayers-0-coords]": 0.00013918709009885788, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extrudedvariablelayers-1-coords]": 0.00012452900409698486, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[extrudedvariablelayers-100-coords]": 0.0001231469213962555, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphere-0-coords]": 0.19273188384249806, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphere-1-coords]": 0.18827637564390898, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphere-100-coords]": 0.1939239944331348, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphereextruded-0-coords]": 0.18763247737661004, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphereextruded-1-coords]": 0.18646635860204697, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[immersedsphereextruded-100-coords]": 0.1875234297476709, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[interval-0-coords]": 2.822534717619419, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[interval-1-coords]": 0.1907728840596974, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[interval-100-coords]": 1.7013945882208645, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[periodicrectangle-0-coords]": 0.18691332591697574, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[periodicrectangle-1-coords]": 0.1873803953640163, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[periodicrectangle-100-coords]": 0.18698296090587974, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[shiftedmesh-0-coords]": 0.17228794191032648, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[shiftedmesh-1-coords]": 0.1729506547562778, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[shiftedmesh-100-coords]": 0.17400845745578408, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[square-0-coords]": 2.773773143067956, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[square-1-coords]": 0.17366484785452485, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[square-100-coords]": 0.17221765918657184, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[squarequads-0-coords]": 0.27006292762234807, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[squarequads-1-coords]": 0.2633059280924499, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[squarequads-100-coords]": 0.26351793529465795, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[tetrahedron-0-coords]": 0.1912784925661981, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[tetrahedron-1-coords]": 0.19162970781326294, + "tests/vertexonly/test_vertex_only_fs.py::test_functionspaces_parallel[tetrahedron-100-coords]": 0.19186572032049298, + "tests/vertexonly/test_vertex_only_fs.py::test_input_ordering_missing_point": 0.33415507711470127, + "tests/vertexonly/test_vertex_only_fs.py::test_simple_line": 0.9693466676399112, + "tests/vertexonly/test_vertex_only_manual.py::test_input_ordering_input": 0.23662629397585988, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[cube-nonredundant]": 0.05856864061206579, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[cube-redistribute]": 0.058491882868111134, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[cube-redundant]": 0.059472053311765194, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extruded-nonredundant]": 0.12584554636850953, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extruded-redistribute]": 0.12505468679592013, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extruded-redundant]": 0.12372444197535515, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extrudedvariablelayers-nonredundant]": 0.00011847866699099541, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extrudedvariablelayers-redistribute]": 0.00011441996321082115, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[extrudedvariablelayers-redundant]": 0.00013933656737208366, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphere-nonredundant]": 0.05204457649961114, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphere-redistribute]": 0.051853531040251255, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphere-redundant]": 0.052219373639672995, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphereextruded-nonredundant]": 0.1303762998431921, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphereextruded-redistribute]": 0.13034527050331235, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[immersedsphereextruded-redundant]": 0.13142116693779826, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[interval-nonredundant]": 0.06854640552774072, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[interval-redistribute]": 0.06575329974293709, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[interval-redundant]": 0.0654068049043417, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[periodicrectangle-nonredundant]": 0.05179872317239642, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[periodicrectangle-redistribute]": 0.052036800887435675, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[periodicrectangle-redundant]": 0.053848760668188334, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[shiftedmesh-nonredundant]": 0.04338353918865323, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[shiftedmesh-redistribute]": 0.043402054347097874, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[shiftedmesh-redundant]": 0.04328847490251064, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[square-nonredundant]": 0.0368351386860013, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[square-redistribute]": 0.03711844375357032, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[square-redundant]": 0.03762094955891371, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[squarequads-nonredundant]": 0.1390082435682416, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[squarequads-redistribute]": 0.13877047505229712, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[squarequads-redundant]": 0.13896663254126906, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[tetrahedron-nonredundant]": 0.055896326433867216, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[tetrahedron-redistribute]": 0.0567539120092988, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_cell_midpoints_parallel[tetrahedron-redundant]": 0.05676683783531189, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[cube-0-coords]": 0.05357308313250542, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[cube-1-coords]": 0.05287368921563029, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[cube-100-coords]": 0.057740097399801016, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extruded-0-coords]": 0.1139101292937994, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extruded-1-coords]": 0.11297856876626611, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extruded-100-coords]": 0.11640832806006074, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extrudedvariablelayers-0-coords]": 0.0001523834653198719, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extrudedvariablelayers-1-coords]": 0.00011890940368175507, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[extrudedvariablelayers-100-coords]": 0.000407584011554718, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphere-0-coords]": 0.04676300985738635, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphere-1-coords]": 0.046495156828314066, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphere-100-coords]": 0.052409997675567865, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphereextruded-0-coords]": 0.12094306852668524, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphereextruded-1-coords]": 0.12071698438376188, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[immersedsphereextruded-100-coords]": 0.12788908183574677, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[interval-0-coords]": 0.053596177604049444, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[interval-1-coords]": 0.05359441367909312, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[interval-100-coords]": 0.058950081933289766, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[periodicrectangle-0-coords]": 0.05105950403958559, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[periodicrectangle-1-coords]": 0.0486557362601161, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[periodicrectangle-100-coords]": 0.052294655703008175, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[shiftedmesh-0-coords]": 0.034812782891094685, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[shiftedmesh-1-coords]": 0.03496122919023037, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[shiftedmesh-100-coords]": 0.0383984437212348, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[square-0-coords]": 0.0352798723615706, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[square-1-coords]": 0.03530895709991455, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[square-100-coords]": 0.03934145299717784, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[squarequads-0-coords]": 0.12821605056524277, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[squarequads-1-coords]": 0.1282229539938271, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[squarequads-100-coords]": 0.13070066180080175, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[tetrahedron-0-coords]": 0.05173378111794591, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[tetrahedron-1-coords]": 0.0514869038015604, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_generate_random_parallel[tetrahedron-100-coords]": 0.05551104620099068, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_on_boundary_behaviour": 0.14402359584346414, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_partition_behaviour_2d_2procs": 0.4705595220439136, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_partition_behaviour_2d_3procs": 0.0805418691597879, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_pyop2_labelling": 0.062442450784146786, + "tests/vertexonly/test_vertex_only_mesh_generation.py::test_redistribution": 0.039744147565215826 +} \ No newline at end of file diff --git a/Makefile b/Makefile index f2108a7b16..5f1d81debf 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,7 @@ +.PHONY: all all: modules +.PHONY: modules modules: @echo " Building extension modules" @python setup.py build_ext --inplace > build.log 2>&1 || cat build.log @@ -12,6 +14,7 @@ else FLAKE8_FORMAT= endif +.PHONY: lint lint: @echo " Linting firedrake codebase" @python -m flake8 $(FLAKE8_FORMAT) firedrake @@ -20,11 +23,13 @@ lint: @echo " Linting firedrake scripts" @python -m flake8 $(FLAKE8_FORMAT) scripts --filename=* +.PHONY: actionlint actionlint: @echo " Pull latest actionlint image" @docker pull rhysd/actionlint:latest @docker run --rm -v $$(pwd):/repo --workdir /repo rhysd/actionlint -color +.PHONY: dockerlint dockerlint: @echo " Pull latest hadolint image" @docker pull hadolint/hadolint:latest @@ -38,6 +43,7 @@ dockerlint: || exit 1; \ done +.PHONY: clean clean: @echo " Cleaning extension modules" @python setup.py clean > /dev/null 2>&1 @@ -65,33 +71,87 @@ clean: -@rm -f firedrake/cython/mg/impl.so > /dev/null 2>&1 @echo " RM firedrake/cython/mg/impl.c" -@rm -f firedrake/cython/mg/impl.c > /dev/null 2>&1 + @echo " RM tinyasm/*.so" + -@rm -f tinyasm/*.so +# This is the minimum required to run the test suite +NPROCS=8 +# On CI we add additional `pytest` args to spit out more information +PYTEST_ARGS= +# specifically --durations=200 --timeout=1800 --timeout-method=thread -o faulthandler_timeout=1860 -s +# and --cov firedreake once the performance regression is fixed! -THREADS=1 -ifeq ($(THREADS), 1) - PYTEST_ARGS= -else - PYTEST_ARGS=-n $(THREADS) -endif +# Requires pytest and pytest-mpi only +.PHONY: test_serial +test_serial: + @echo " Running all tests in serial" + @python -m pytest -v tests + +# Requires pytest and pytest-mpi only +.PHONY: test_smoke +test_smoke: + @echo " Running the bare minimum smoke tests" + @python -m pytest -k "poisson_strong or stokes_mini or dg_advection" -v tests/regression/ + +.PHONY: _test_serial_tests +_test_serial_tests: + @echo " Running serial tests over $(NPROCS) threads" + @python -m pytest \ + -n $(NPROCS) --dist worksteal \ + $(PYTEST_ARGS) \ + -m "not parallel" \ + -v tests -test_regression: modules - @echo " Running non-extruded regression tests" - @python -m pytest tests/regression $(PYTEST_ARGS) +.PHONY: _test_small_world_tests +_test_small_world_tests: + @echo " Running parallel tests over $(NPROCS) ranks" + @set -e; \ + for N in 2 3 4 ; do \ + echo " COMM_WORLD=$$N ranks"; \ + mpispawn -nU $(NPROCS) -nW $$N --propagate-errcodes python -m pytest \ + --splitting-algorithm least_duration \ + --splits \$$MPISPAWN_NUM_TASKS \ + --group \$$MPISPAWN_TASK_ID1 \ + $(PYTEST_ARGS) \ + -m "parallel[\$$MPISPAWN_WORLD_SIZE] and not broken" \ + -v tests; \ + done + +.PHONY: _test_large_world_test +_test_large_world_tests: + @echo " Running parallel tests over $(NPROCS) ranks" + @set -e; \ + for N in 6 7 8 ; do \ + echo " COMM_WORLD=$$N ranks"; \ + mpiexec -n $$N python -m pytest \ + $(PYTEST_ARGS) \ + -m "parallel[$$N] and not broken" \ + -v tests; \ + done -test_extrusion: modules - @echo " Running extruded regression tests" - @python -m pytest tests/extrusion $(PYTEST_ARGS) +.PHONY: test_adjoint +test_adjoint: + @echo " Running adjoint tests over $(NPROCS) threads" + @python -m pytest \ + $(PYTEST_ARGS) \ + -v $(VIRTUAL_ENV)/src/pyadjoint/tests/firedrake-adjoint -test_demos: modules - @echo " Running test of demos" - @python -m pytest tests/demos $(PYTEST_ARGS) +# Additionally requires pytest-xdist, mpispawn and pytest-split +.PHONY: test +test: _test_serial_tests _test_small_world_tests _test_large_world_tests -test: modules - @echo " Running all regression tests" - @python -m pytest tests $(PYTEST_ARGS) +.PHONY: test_ci +test_ci: test test_adjoint -alltest: modules lint test +.PHONY: test_generate_timings +test_generate_timings: + @echo " Generate timings to optimise pytest-split" + @set -e; \ + for N in 2 3 4 ; do \ + @mpiexec \ + -n 1 pytest --store-durations -m "parallel[$$N] and not broken" -v tests : \ + -n $$(( $$N - 1 )) pytest -m "parallel[$$N] and not broken" -q tests; \ + done -shorttest: modules lint - @echo " Running short regression tests" - @python -m pytest --short tests $(PYTEST_ARGS) +.PHONY: alltest +alltest: modules lint test_serial diff --git a/firedrake/checkpointing.py b/firedrake/checkpointing.py index 28aaf04a94..11cf1001b6 100644 --- a/firedrake/checkpointing.py +++ b/firedrake/checkpointing.py @@ -1079,7 +1079,7 @@ def load_mesh(self, name=DEFAULT_MESH_NAME, reorder=None, distribution_parameter coord_element = self._load_ufl_element(path, PREFIX + "_coordinate_element") coord_name = self.get_attr(path, PREFIX + "_coordinates") coordinates = self._load_function_topology(tmesh, coord_element, coord_name) - mesh = make_mesh_from_coordinates(coordinates, name) + mesh = make_mesh_from_coordinates(coordinates, name, comm=self.comm) if self.has_attr(path, PREFIX + "_radial_coordinates"): radial_coord_element = self._load_ufl_element(path, PREFIX + "_radial_coordinate_element") radial_coord_name = self.get_attr(path, PREFIX + "_radial_coordinates") @@ -1111,7 +1111,7 @@ def load_mesh(self, name=DEFAULT_MESH_NAME, reorder=None, distribution_parameter coord_element = self._load_ufl_element(path, PREFIX + "_coordinate_element") coord_name = self.get_attr(path, PREFIX + "_coordinates") coordinates = self._load_function_topology(tmesh, coord_element, coord_name) - mesh = make_mesh_from_coordinates(coordinates, name) + mesh = make_mesh_from_coordinates(coordinates, name, comm=self.comm) # Load plex coordinates for a complete representation of plex. tmesh.topology_dm.coordinatesLoad(self.viewer, tmesh.sfXC) # Load cell_orientations for immersed meshes. diff --git a/firedrake/constant.py b/firedrake/constant.py index 9363e32f91..6c08c4054c 100644 --- a/firedrake/constant.py +++ b/firedrake/constant.py @@ -5,6 +5,7 @@ from tsfc.ufl_utils import TSFCConstantMixin from pyop2 import op2 from pyop2.exceptions import DataTypeError, DataValueError +from pyop2.mpi import collective from firedrake.petsc import PETSc from firedrake.utils import ScalarType from ufl.classes import all_ufl_classes, ufl_classes, terminal_classes @@ -95,6 +96,7 @@ def __new__(cls, value, domain=None, name=None, count=None): else: return object.__new__(cls) + @collective @ConstantMixin._ad_annotate_init def __init__(self, value, domain=None, name=None, count=None): """""" diff --git a/firedrake/mesh.py b/firedrake/mesh.py index acc9031542..cde5f600af 100644 --- a/firedrake/mesh.py +++ b/firedrake/mesh.py @@ -2760,7 +2760,7 @@ def mark_entities(self, f, label_value, label_name=None): @PETSc.Log.EventDecorator() -def make_mesh_from_coordinates(coordinates, name, tolerance=0.5): +def make_mesh_from_coordinates(coordinates, name, tolerance=0.5, comm=None): """Given a coordinate field build a new mesh, using said coordinate field. Parameters @@ -2780,6 +2780,9 @@ def make_mesh_from_coordinates(coordinates, name, tolerance=0.5): The mesh. """ + if comm is None: + raise ValueError("A comm must be provided when creating a mesh from coordinates") + if hasattr(coordinates, '_as_mesh_geometry'): mesh = coordinates._as_mesh_geometry() if mesh is not None: @@ -2986,7 +2989,7 @@ def Mesh(meshfile, **kwargs): else: coordinates = None if coordinates is not None: - return make_mesh_from_coordinates(coordinates, name) + return make_mesh_from_coordinates(coordinates, name, comm=user_comm) tolerance = kwargs.get("tolerance", 0.5) @@ -3034,7 +3037,7 @@ def Mesh(meshfile, **kwargs): distribution_name=kwargs.get("distribution_name"), permutation_name=kwargs.get("permutation_name"), comm=user_comm) - mesh = make_mesh_from_mesh_topology(topology, name) + mesh = make_mesh_from_mesh_topology(topology, name, user_comm) if netgen and isinstance(meshfile, netgen.libngpy._meshing.Mesh): netgen_firedrake_mesh.createFromTopology(topology, name=plex.getName(), comm=user_comm) mesh = netgen_firedrake_mesh.firedrakeMesh @@ -3181,7 +3184,7 @@ def ExtrudedMesh(mesh, layers, layer_height=None, extrusion_type='uniform', peri eutils.make_extruded_coords(topology, mesh._coordinates, coordinates, layer_height, extrusion_type=extrusion_type, kernel=kernel) - self = make_mesh_from_coordinates(coordinates, name) + self = make_mesh_from_coordinates(coordinates, name, comm=mesh.comm) self._base_mesh = mesh if extrusion_type == "radial_hedgehog": diff --git a/firedrake/preconditioners/patch.py b/firedrake/preconditioners/patch.py index b74897f574..1d3fc2121d 100644 --- a/firedrake/preconditioners/patch.py +++ b/firedrake/preconditioners/patch.py @@ -20,13 +20,13 @@ import ctypes from pyop2 import op2 -from pyop2.mpi import COMM_SELF import pyop2.types from pyop2.compilation import load -from pyop2.utils import get_petsc_dir from pyop2.codegen.builder import Pack, MatPack, DatPack from pyop2.codegen.representation import Comparison, Literal from pyop2.codegen.rep2loopy import register_petsc_function +from pyop2.mpi import COMM_SELF +from pyop2.utils import get_petsc_dir __all__ = ("PatchPC", "PlaneSmoother", "PatchSNES") diff --git a/firedrake/slate/slac/compiler.py b/firedrake/slate/slac/compiler.py index 1333a04039..b33a9df286 100644 --- a/firedrake/slate/slac/compiler.py +++ b/firedrake/slate/slac/compiler.py @@ -77,6 +77,8 @@ def _compile_expression_hashkey(slate_expr, compiler_parameters=None): params["slate_compiler"].update(compiler_parameters.pop("slate_compiler")) if compiler_parameters: params["form_compiler"].update(compiler_parameters) + # The getattr here is to defer validation to the `compile_expression` call + # as the test suite checks the correct exceptions are raised on invalid input. return getattr(slate_expr, "expression_hash", "ERROR") + str(sorted(params.items())) diff --git a/firedrake/slate/slac/kernel_builder.py b/firedrake/slate/slac/kernel_builder.py index d8b4b620d6..cbc9b6fed2 100644 --- a/firedrake/slate/slac/kernel_builder.py +++ b/firedrake/slate/slac/kernel_builder.py @@ -159,7 +159,11 @@ def collect_tsfc_kernel_data(self, mesh, tsfc_coefficients, tsfc_constants, wrap # Pick the constants associated with a Tensor()/TSFC kernel tsfc_constants = tuple(tsfc_constants[i] for i in kinfo.constant_numbers) - kernel_data.extend([(c, c.name) for c in wrapper_constants if c in tsfc_constants]) + kernel_data.extend([ + (constant, constant_name) + for constant, constant_name in wrapper_constants + if constant in tsfc_constants + ]) return kernel_data def loopify_tsfc_kernel_data(self, kernel_data): @@ -254,7 +258,10 @@ def collect_coefficients(self): def collect_constants(self): """ All constants of self.expression as a list """ - return self.expression.constants() + return tuple( + (constant, f"c_{i}") + for i, constant in enumerate(self.expression.constants()) + ) def initialise_terminals(self, var2terminal, coefficients): """ Initilisation of the variables in which coefficients @@ -361,9 +368,9 @@ def generate_wrapper_kernel_args(self, tensor2temp): dtype=self.tsfc_parameters["scalar_type"]) args.append(kernel_args.CoefficientKernelArg(coeff_loopy_arg)) - for constant in self.bag.constants: + for constant, constant_name in self.bag.constants: constant_loopy_arg = loopy.GlobalArg( - constant.name, + constant_name, shape=constant.dat.cdim, dtype=self.tsfc_parameters["scalar_type"] ) diff --git a/firedrake/slate/slac/tsfc_driver.py b/firedrake/slate/slac/tsfc_driver.py index 34baf10dbc..0f5fbf96d3 100644 --- a/firedrake/slate/slac/tsfc_driver.py +++ b/firedrake/slate/slac/tsfc_driver.py @@ -59,10 +59,9 @@ def compile_terminal_form(tensor, prefix, *, tsfc_parameters=None): cxt_kernels = [] assert prefix is not None for orig_it_type, integrals in transformed_integrals.items(): - subkernel_prefix = prefix + "%s_to_" % orig_it_type form = Form(integrals) kernels = tsfc_compile(form, - subkernel_prefix, + f"{prefix}{orig_it_type}_to_", parameters=tsfc_parameters, split=False, diagonal=tensor.diagonal) diff --git a/firedrake/tsfc_interface.py b/firedrake/tsfc_interface.py index a4a57ae0cb..ee61e34748 100644 --- a/firedrake/tsfc_interface.py +++ b/firedrake/tsfc_interface.py @@ -58,7 +58,7 @@ def tsfc_compile_form_hashkey(form, prefix, parameters, interface, diagonal, log return default_parallel_hashkey(form.signature(), prefix, parameters, interface, diagonal) -def tsfc_compile_form_comm_fetcher(*args, **kwargs): +def _compile_form_comm(*args, **kwargs): # args[0] is a form return args[0].ufl_domains()[0].comm @@ -66,7 +66,7 @@ def tsfc_compile_form_comm_fetcher(*args, **kwargs): # Decorate the original tsfc.compile_form with a cache tsfc_compile_form = memory_and_disk_cache( hashkey=tsfc_compile_form_hashkey, - comm_fetcher=tsfc_compile_form_comm_fetcher, + comm_fetcher=_compile_form_comm, cachedir=_cachedir )(original_tsfc_compile_form) @@ -146,10 +146,7 @@ def _compile_form_hashkey(*args, **kwargs): return key -def _compile_form_comm(*args, **kwargs): - return args[0].ufl_domains()[0].comm - - +@PETSc.Log.EventDecorator() @memory_and_disk_cache( hashkey=_compile_form_hashkey, comm_fetcher=_compile_form_comm, diff --git a/firedrake/utility_meshes.py b/firedrake/utility_meshes.py index 4f2a0f34f1..abf8026fbf 100644 --- a/firedrake/utility_meshes.py +++ b/firedrake/utility_meshes.py @@ -2717,7 +2717,7 @@ def AnnulusMesh( x, y = ufl.SpatialCoordinate(bar) V = bar.coordinates.function_space() coord = Function(V).interpolate(ufl.as_vector([x * ufl.cos(y), x * ufl.sin(y)])) - annulus = mesh.make_mesh_from_coordinates(coord.topological, name) + annulus = mesh.make_mesh_from_coordinates(coord.topological, name, comm=comm) annulus.topology.name = mesh._generate_default_mesh_topology_name(name) annulus._base_mesh = base return annulus @@ -2766,14 +2766,14 @@ def SolidTorusMesh( x, y = ufl.SpatialCoordinate(unit) V = unit.coordinates.function_space() coord = Function(V).interpolate(ufl.as_vector([r * x + R, r * y])) - disk = mesh.make_mesh_from_coordinates(coord.topological, base_name) + disk = mesh.make_mesh_from_coordinates(coord.topological, base_name, comm=comm) disk.topology.name = mesh._generate_default_mesh_topology_name(base_name) disk.topology.topology_dm.setName(disk.topology.name) bar = mesh.ExtrudedMesh(disk, layers=nR, layer_height=2 * np.pi / nR, extrusion_type="uniform", periodic=True) x, y, z = ufl.SpatialCoordinate(bar) V = bar.coordinates.function_space() coord = Function(V).interpolate(ufl.as_vector([x * ufl.cos(z), x * ufl.sin(z), -y])) - torus = mesh.make_mesh_from_coordinates(coord.topological, name) + torus = mesh.make_mesh_from_coordinates(coord.topological, name, comm=comm) torus.topology.name = mesh._generate_default_mesh_topology_name(name) torus._base_mesh = disk return torus diff --git a/tests/conftest.py b/tests/conftest.py index 0874f5b01e..5e0ee8f6e5 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -8,32 +8,60 @@ def pytest_configure(config): """Register an additional marker.""" config.addinivalue_line( "markers", - "skipcomplex: mark as skipped in complex mode") + "markif_fixture: conditional marker" + ) + config.addinivalue_line( + "markers", + "slow: mark a test that takes a while to run" + ) config.addinivalue_line( "markers", - "skipreal: mark as skipped unless in complex mode") + "broken: mark a test that is broken" + ) config.addinivalue_line( "markers", "skipmumps: mark as skipped unless MUMPS is installed" ) config.addinivalue_line( "markers", - "skipcomplexnoslate: mark as skipped in complex mode due to lack of Slate") + "skipcomplexnoslate: mark as skipped in complex mode due to lack of Slate" + ) + config.addinivalue_line( + "markers", + "skipcomplex: mark as skipped in complex mode" + ) + config.addinivalue_line( + "markers", + "skipreal: mark as skipped unless in complex mode" + ) + config.addinivalue_line( + "markers", + "skipcomplexnoslate: mark as skipped in complex mode due to lack of Slate" + ) + config.addinivalue_line( + "markers", + "skipnetgen: mark as skipped if netgen and ngsPETSc is not installed" + ) config.addinivalue_line( "markers", - "skiptorch: mark as skipped if PyTorch is not installed") + "skipvtk: mark as skipped if vtk is not installed" + ) config.addinivalue_line( "markers", - "skipjax: mark as skipped if JAX is not installed") + "skiptorch: mark as skipped if PyTorch is not installed" + ) config.addinivalue_line( "markers", - "skipplot: mark as skipped if matplotlib is not installed") + "skipjax: mark as skipped if JAX is not installed" + ) config.addinivalue_line( "markers", - "skipnetgen: mark as skipped if netgen and ngsPETSc is not installed") + "skipplot: mark as skipped if matplotlib is not installed" + ) config.addinivalue_line( "markers", - "skipvtk: mark as skipped if vtk is not installed") + "skipnetgen: mark as skipped if netgen and ngsPETSc is not installed" + ) def pytest_collection_modifyitems(session, config, items): @@ -77,6 +105,25 @@ def pytest_collection_modifyitems(session, config, items): vtk_installed = False for item in items: + markif_fixtures = [m for m in item.own_markers if m.name == "markif_fixture"] + for mark in markif_fixtures: + '''@pytest.mark.markif_fixture(*marks, **conditions) + marks: str | pytest.mark.structures.Mark + marks to apply if conditions are met + conditions: dict + dictionary of conditions; consisting of function argument keys + and fixture values or ids + ''' + # (function argument names, fixture ids) in a list + fixtures = [(name, id_) for name, id_ in zip(item.callspec.params.keys(), item.callspec._idlist)] + # If all the fixtures are in the dictionary of conditions apply all of the marks + if all((k, str(v)) in fixtures for k, v in mark.kwargs.items()): + for label in mark.args: + if isinstance(label, str): + item.add_marker(getattr(pytest.mark, label)()) + else: + item.add_marker(label()) + if complex_mode: if item.get_closest_marker("skipcomplex") is not None: item.add_marker(pytest.mark.skip(reason="Test makes no sense in complex mode")) diff --git a/tests/demos/test_demos_run.py b/tests/demos/test_demos_run.py index 9094bc99f7..9c5af2bd2c 100644 --- a/tests/demos/test_demos_run.py +++ b/tests/demos/test_demos_run.py @@ -77,6 +77,8 @@ def py_file(rst_file, tmpdir, monkeypatch): @pytest.mark.skipcomplex # Will need to add a seperate case for a complex demo. +@pytest.mark.markif_fixture(pytest.mark.slow, rst_file="linear_wave_equation.py.rst") +@pytest.mark.markif_fixture(pytest.mark.slow, rst_file="full_waveform_inversion.py.rst") def test_demo_runs(py_file, env): # Add pytest skips for missing imports or packages if basename(py_file) in ("stokes.py", "rayleigh-benard.py", "saddle_point_systems.py", "navier_stokes.py", "netgen_mesh.py"): diff --git a/tests/demos/test_notebooks_run.py b/tests/demos/test_notebooks_run.py index 8a415eab76..b65a5723e7 100644 --- a/tests/demos/test_notebooks_run.py +++ b/tests/demos/test_notebooks_run.py @@ -24,6 +24,9 @@ def ipynb_file(request): @pytest.mark.skipcomplex # Will need to add a seperate case for a complex tutorial. +@pytest.mark.markif_fixture(pytest.mark.slow, ipynb_file="09-hybridisation.ipynb") +@pytest.mark.markif_fixture(pytest.mark.slow, ipynb_file="10-sum-factorisation.ipynb") +@pytest.mark.markif_fixture(pytest.mark.slow, ipynb_file="12-HPC_demo.ipynb") def test_notebook_runs(ipynb_file, tmpdir, monkeypatch): import pytest # Unclear why this needs to be imported again diff --git a/tests/equation_bcs/test_equation_bcs.py b/tests/equation_bcs/test_equation_bcs.py index 0037537ae4..f929aa27b6 100644 --- a/tests/equation_bcs/test_equation_bcs.py +++ b/tests/equation_bcs/test_equation_bcs.py @@ -231,7 +231,7 @@ def test_EquationBC_poisson_matrix(eq_type, with_bbc): assert abs(math.log2(err[0]) - math.log2(err[1]) - (porder+1)) < 0.05 -@pytest.mark.parametrize("with_bbc", [False, True]) +@pytest.mark.parametrize("with_bbc", [False, pytest.param(True, marks=pytest.mark.slow)]) def test_EquationBC_poisson_matfree(with_bbc): eq_type = "linear" mat_type = "matfree" @@ -321,6 +321,7 @@ def test_EquationBC_mixedpoisson_matrix_fieldsplit(): assert abs(math.log2(err[0][0]) - math.log2(err[1][0]) - (porder+1)) < 0.05 +@pytest.mark.slow def test_EquationBC_mixedpoisson_matfree_fieldsplit(): mat_type = "matfree" eq_type = "linear" diff --git a/tests/extrusion/test_enrichment_1_feec.py b/tests/extrusion/test_enrichment_1_feec.py index f27814775d..ad7591eae4 100644 --- a/tests/extrusion/test_enrichment_1_feec.py +++ b/tests/extrusion/test_enrichment_1_feec.py @@ -39,6 +39,7 @@ def test_feec(extmesh, horiz_complex, vert_complex): run_feec(mesh, U0, U1, U2, V0, V1) +@pytest.mark.slow @pytest.mark.parametrize(('horiz_complex', 'vert_complex'), [((("CG", 1), ("RTCF", 1), ("DQ", 0)), (("CG", 3), ("DG", 2))), ((("CG", 2), ("RTCF", 2), ("DQ", 1)), (("CG", 2), ("DG", 1))), diff --git a/tests/extrusion/test_extruded_periodic.py b/tests/extrusion/test_extruded_periodic.py index 780b175103..9eeaf6562d 100644 --- a/tests/extrusion/test_extruded_periodic.py +++ b/tests/extrusion/test_extruded_periodic.py @@ -125,7 +125,7 @@ def test_extruded_periodic_annulus(): coordV1 = FunctionSpace(mesh1, elem1) x1, y1 = SpatialCoordinate(mesh1) coord1 = Function(coordV1).interpolate(as_vector([x1 * cos(y1), x1 * sin(y1)])) - mesh1 = make_mesh_from_coordinates(coord1.topological, "annulus") + mesh1 = make_mesh_from_coordinates(coord1.topological, "annulus", comm=COMM_WORLD) mesh1._base_mesh = mesh # Check volume x0, y0 = SpatialCoordinate(mesh0) diff --git a/tests/extrusion/test_facet_avg_extruded.py b/tests/extrusion/test_facet_avg_extruded.py index 1bcb4485ea..f6d19a6d81 100644 --- a/tests/extrusion/test_facet_avg_extruded.py +++ b/tests/extrusion/test_facet_avg_extruded.py @@ -18,6 +18,9 @@ def mesh(request): @pytest.mark.parametrize("degree", [1, 2, 3]) +@pytest.mark.markif_fixture(pytest.mark.slow, mesh="hex", degree=2) +@pytest.mark.markif_fixture(pytest.mark.slow, mesh="hex", degree=3) +@pytest.mark.markif_fixture(pytest.mark.slow, mesh="prism", degree=3) def test_facet_avg_extruded(mesh, degree): Vt = FunctionSpace(mesh, 'DGT', degree) diff --git a/tests/multigrid/test_embedded_transfer.py b/tests/multigrid/test_embedded_transfer.py index e09a2c9a72..0d7cf7aec9 100644 --- a/tests/multigrid/test_embedded_transfer.py +++ b/tests/multigrid/test_embedded_transfer.py @@ -2,7 +2,7 @@ from firedrake import * -@pytest.fixture(scope="module") +@pytest.fixture def hierarchy(): N = 10 distribution_parameters = {"partition": True, "overlap_type": (DistributedMeshOverlapType.VERTEX, 1)} diff --git a/tests/multigrid/test_netgen_gmg.py b/tests/multigrid/test_netgen_gmg.py index 11f05511de..a8f6cf40be 100644 --- a/tests/multigrid/test_netgen_gmg.py +++ b/tests/multigrid/test_netgen_gmg.py @@ -7,6 +7,7 @@ import ngsPETSc del ngsPETSc except ImportError: + # Netgen is not installed pytest.skip("Netgen not installed", allow_module_level=True) diff --git a/tests/multigrid/test_poisson_gmg.py b/tests/multigrid/test_poisson_gmg.py index 81f56acbfc..fa5178a135 100644 --- a/tests/multigrid/test_poisson_gmg.py +++ b/tests/multigrid/test_poisson_gmg.py @@ -5,6 +5,7 @@ def solver_parameters(solver_type): + max_its = 4 if solver_type == "mg": parameters = {"snes_type": "ksponly", "ksp_type": "preonly", @@ -12,7 +13,7 @@ def solver_parameters(solver_type): "pc_type": "mg", "pc_mg_type": "full", "mg_levels_ksp_type": "chebyshev", - "mg_levels_ksp_max_it": 3, + "mg_levels_ksp_max_it": max_its, "mg_levels_pc_type": "jacobi"} elif solver_type == "mgmatfree": parameters = {"snes_type": "ksponly", @@ -25,7 +26,7 @@ def solver_parameters(solver_type): "mg_coarse_pc_python_type": "firedrake.AssembledPC", "mg_coarse_assembled_pc_type": "lu", "mg_levels_ksp_type": "chebyshev", - "mg_levels_ksp_max_it": 3, + "mg_levels_ksp_max_it": max_its, "mg_levels_pc_type": "jacobi"} elif solver_type == "fas": parameters = {"snes_type": "fas", @@ -36,7 +37,7 @@ def solver_parameters(solver_type): "fas_coarse_redundant_pc_type": "lu", "fas_levels_snes_type": "ksponly", "fas_levels_ksp_type": "chebyshev", - "fas_levels_ksp_max_it": 3, + "fas_levels_ksp_max_it": max_its, "fas_levels_pc_type": "jacobi", "fas_levels_ksp_convergence_test": "skip", "snes_max_it": 1, @@ -57,7 +58,7 @@ def solver_parameters(solver_type): "npc_fas_coarse_snes_linesearch_type": "basic", "npc_fas_levels_snes_type": "ksponly", "npc_fas_levels_ksp_type": "chebyshev", - "npc_fas_levels_ksp_max_it": 3, + "npc_fas_levels_ksp_max_it": max_its, "npc_fas_levels_pc_type": "jacobi", "npc_fas_levels_ksp_convergence_test": "skip", "npc_snes_max_it": 1, diff --git a/tests/output/test_adjoint_disk_checkpointing.py b/tests/output/test_adjoint_disk_checkpointing.py index 2f4b15e9f7..fd44f86dfb 100644 --- a/tests/output/test_adjoint_disk_checkpointing.py +++ b/tests/output/test_adjoint_disk_checkpointing.py @@ -40,18 +40,17 @@ def adjoint_example(mesh): # AssembleBlock J = assemble((u - v)**2 * dx) - Jhat = ReducedFunctional(J, Control(m)) with stop_annotating(): m_new = assemble(interpolate(sin(4*pi*x)*cos(4*pi*y), cg_space)) - checkpointer = get_working_tape()._checkpoint_metadata - init_file_timestamp = os.stat(checkpointer.init_checkpoint_file).st_mtime - current_file_timestamp = os.stat(checkpointer.current_checkpoint_file).st_mtime + checkpointer = get_working_tape()._package_data + init_file_timestamp = os.stat(checkpointer["firedrake"].init_checkpoint_file.name).st_mtime + current_file_timestamp = os.stat(checkpointer["firedrake"].current_checkpoint_file.name).st_mtime Jnew = Jhat(m_new) # Check that any new disk checkpoints are written to the correct file. - assert init_file_timestamp == os.stat(checkpointer.init_checkpoint_file).st_mtime - assert current_file_timestamp < os.stat(checkpointer.current_checkpoint_file).st_mtime + assert init_file_timestamp == os.stat(checkpointer["firedrake"].init_checkpoint_file.name).st_mtime + assert current_file_timestamp < os.stat(checkpointer["firedrake"].current_checkpoint_file.name).st_mtime assert np.allclose(J, Jnew) @@ -61,17 +60,15 @@ def adjoint_example(mesh): @pytest.mark.skipcomplex -# Waiting on stable parallel decompositions through disk checkpointing. -@pytest.mark.xfail # A serial version of this test is included in the pyadjoint tests. @pytest.mark.parallel(nprocs=3) def test_disk_checkpointing(): from firedrake.adjoint import enable_disk_checkpointing, \ - checkpointable_mesh, pause_disk_checkpointing + checkpointable_mesh, pause_disk_checkpointing, continue_annotation tape = get_working_tape() tape.clear_tape() enable_disk_checkpointing() - + continue_annotation() mesh = checkpointable_mesh(UnitSquareMesh(10, 10, name="mesh")) J_disk, grad_J_disk = adjoint_example(mesh) tape.clear_tape() diff --git a/tests/output/test_io_backward_compat.py b/tests/output/test_io_backward_compat.py index 67cf0d6dff..48a2bd6470 100644 --- a/tests/output/test_io_backward_compat.py +++ b/tests/output/test_io_backward_compat.py @@ -93,7 +93,7 @@ def _get_mesh_and_V(params): coordV = FunctionSpace(mesh, elem) x, y = SpatialCoordinate(mesh) coord = Function(coordV).interpolate(as_vector([x * cos(y), x * sin(y)])) - mesh = make_mesh_from_coordinates(coord.topological, name=mesh_name) + mesh = make_mesh_from_coordinates(coord.topological, name=mesh_name, comm=COMM_WORLD) mesh._base_mesh = base V = FunctionSpace(mesh, "RTCF", 3) else: diff --git a/tests/output/test_io_function.py b/tests/output/test_io_function.py index fc48a220b4..9244299ce8 100644 --- a/tests/output/test_io_function.py +++ b/tests/output/test_io_function.py @@ -148,42 +148,44 @@ def _load_check_save_functions(filename, func_name, comm, method, mesh_name, var @pytest.mark.parallel(nprocs=2) -@pytest.mark.parametrize('cell_family_degree', [("triangle_small", "P", 1), - ("triangle_small", "P", 6), - ("triangle_small", "DP", 0), - ("triangle_small", "DP", 7), - ("quad_small", "Q", 1), - ("quad_small", "Q", 6), - ("quad_small", "DQ", 0), - ("quad_small", "DQ", 7), - ("triangle", "P", 5), - ("triangle", "RTE", 4), - ("triangle", "RTF", 4), - ("triangle", "DP", 0), - ("triangle", "DP", 6), - ("tetrahedra", "P", 6), - ("tetrahedra", "N1E", 2), # slow if high order - ("tetrahedra", "N1F", 5), - ("tetrahedra", "DP", 0), - ("tetrahedra", "DP", 5), - ("triangle", "BDME", 4), - ("triangle", "BDMF", 4), - ("tetrahedra", "N2E", 2), # slow if high order - ("tetrahedra", "N2F", 5), - ("quadrilateral", "Q", 7), - ("quadrilateral", "RTCE", 5), - ("quadrilateral", "RTCF", 5), - ("quadrilateral", "DQ", 0), - ("quadrilateral", "DQ", 7), - ("quadrilateral", "S", 5), - ("quadrilateral", "DPC", 5), - ("hexahedral", "Q", 5), - ("hexahedral", "DQ", 4), - ("hexahedral_möbius_solid", "Q", 6), - ("triangle_periodic", "P", 4), - ("tetrahedra_periodic", "P", 4), - ("triangle_3d", "BDMF", 4), - ("quad_3d", "RTCF", 4)]) +@pytest.mark.parametrize('cell_family_degree', [ + ("triangle_small", "P", 1), + ("triangle_small", "P", 6), + ("triangle_small", "DP", 0), + ("triangle_small", "DP", 7), + ("quad_small", "Q", 1), + ("quad_small", "Q", 6), + ("quad_small", "DQ", 0), + ("quad_small", "DQ", 7), + ("triangle", "P", 5), + ("triangle", "RTE", 4), + ("triangle", "RTF", 4), + ("triangle", "DP", 0), + ("triangle", "DP", 6), + ("tetrahedra", "P", 6), + ("tetrahedra", "N1E", 2), + pytest.param(("tetrahedra", "N1F", 5), marks=pytest.mark.slow), + ("tetrahedra", "DP", 0), + ("tetrahedra", "DP", 5), + ("triangle", "BDME", 4), + ("triangle", "BDMF", 4), + ("tetrahedra", "N2E", 2), + pytest.param(("tetrahedra", "N2F", 5), marks=pytest.mark.slow), + ("quadrilateral", "Q", 7), + ("quadrilateral", "RTCE", 5), + ("quadrilateral", "RTCF", 5), + ("quadrilateral", "DQ", 0), + ("quadrilateral", "DQ", 7), + ("quadrilateral", "S", 5), + ("quadrilateral", "DPC", 5), + ("hexahedral", "Q", 5), + ("hexahedral", "DQ", 4), + ("hexahedral_möbius_solid", "Q", 6), + ("triangle_periodic", "P", 4), + ("tetrahedra_periodic", "P", 4), + ("triangle_3d", "BDMF", 4), + ("quad_3d", "RTCF", 4) +]) def test_io_function_base(cell_family_degree, tmpdir): # Parameters cell_type, family, degree = cell_family_degree @@ -207,6 +209,7 @@ def test_io_function_base(cell_family_degree, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -234,6 +237,7 @@ def test_io_function_real(cell_type, tmpdir): assert abs(valueB - valueA) < 1.e-16 with CheckpointFile(filename, 'w', comm=comm) as afile: afile.save_function(fB) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -263,6 +267,7 @@ def test_io_function_mixed(cell_family_degree_tuples, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -301,6 +306,7 @@ def test_io_function_mixed_real(cell_family_degree_tuples, tmpdir): assert assemble(inner(fB - fBe, fB - fBe) * dx) < 1.e-16 with CheckpointFile(filename, 'w', comm=comm) as afile: afile.save_function(fB) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -331,6 +337,7 @@ def test_io_function_vector(cell_family_degree_dim, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -356,11 +363,14 @@ def test_io_function_tensor(cell_family_degree_shape_symmetry, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) -@pytest.mark.parametrize('cell_type', ["tetrahedra", - "quadrilateral"]) +@pytest.mark.parametrize('cell_type', [ + pytest.param("tetrahedra", marks=pytest.mark.slow), + "quadrilateral" +]) def test_io_function_mixed_vector(cell_type, tmpdir): filename = join(str(tmpdir), "test_io_function_mixed_vector_dump.h5") filename = COMM_WORLD.bcast(filename, root=0) @@ -389,6 +399,7 @@ def test_io_function_mixed_vector(cell_type, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -416,6 +427,7 @@ def test_io_function_extrusion(cell_family_degree_vfamily_vdegree, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -440,6 +452,7 @@ def test_io_function_extrusion_real(cell_family_degree, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -464,11 +477,14 @@ def test_io_function_vector_extrusion_real(cell_family_degree_dim, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=3) -@pytest.mark.parametrize('cell_family_degree_dim', [("triangle", "P", 1, 2, "BDMF", 2, "DG", 2, 2), - ("quadrilateral", "Q", 1, 2, "RTCF", 2, "DG", 0, 2)]) +@pytest.mark.parametrize('cell_family_degree_dim', [ + pytest.param(("triangle", "P", 1, 2, "BDMF", 2, "DG", 2, 2), marks=pytest.mark.slow), + ("quadrilateral", "Q", 1, 2, "RTCF", 2, "DG", 0, 2) +]) def test_io_function_mixed_vector_extrusion_real(cell_family_degree_dim, tmpdir): cell_type, family0, degree0, dim0, family1, degree1, vfamily1, vdegree1, dim1 = cell_family_degree_dim filename = join(str(tmpdir), "test_io_function_mixed_vector_extrusion_real_dump.h5") @@ -493,6 +509,7 @@ def test_io_function_mixed_vector_extrusion_real(cell_family_degree_dim, tmpdir) comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() def _compute_random_layers(base): @@ -537,6 +554,7 @@ def test_io_function_extrusion_variable_layer1(cell_family_degree_vfamily_vdegre comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() # -- Unable to test in parallel due to potential bug with variable layers extrusion + project in parallel (Issue #2169) @@ -566,8 +584,10 @@ def test_io_function_extrusion_variable_layer(cell_family_degree_vfamily_vdegree comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name, variable_layers=True) + comm.Free() +@pytest.mark.broken @pytest.mark.parallel(nprocs=3) def test_io_function_extrusion_periodic(tmpdir): filename = join(str(tmpdir), "test_io_function_extrusion_periodic_dump.h5") @@ -580,7 +600,7 @@ def test_io_function_extrusion_periodic(tmpdir): coordV = FunctionSpace(extm, elem) x, y = SpatialCoordinate(extm) coord = Function(coordV).interpolate(as_vector([x * cos(y), x * sin(y)])) - extm = make_mesh_from_coordinates(coord.topological, name=extruded_mesh_name) + extm = make_mesh_from_coordinates(coord.topological, name=extruded_mesh_name, comm=COMM_WORLD) extm._base_mesh = mesh V = FunctionSpace(extm, "RTCF", 3) method = get_embedding_method_for_checkpointing(V.ufl_element()) @@ -595,6 +615,7 @@ def test_io_function_extrusion_periodic(tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, func_name, comm, method, extruded_mesh_name) + comm.Free() @pytest.mark.parallel(nprocs=2) @@ -620,3 +641,4 @@ def test_io_function_naming(cell_family_degree, tmpdir): comm = COMM_WORLD.Split(color=mycolor, key=COMM_WORLD.rank) if mycolor == 0: _load_check_save_functions(filename, alt_name, comm, method, mesh_name) + comm.Free() diff --git a/tests/output/test_io_mesh.py b/tests/output/test_io_mesh.py index 2d80ceba1d..de66fddce6 100644 --- a/tests/output/test_io_mesh.py +++ b/tests/output/test_io_mesh.py @@ -31,9 +31,11 @@ def uniform_mesh(request): extrusion_type="uniform", name=mesh_name) -@pytest.fixture(params=["circlemanifold", - "icosahedron", - "cubedsphere"]) +@pytest.fixture(params=[ + "circlemanifold", + "icosahedron", + "cubedsphere" +]) def radial_mesh(request): if request.param == "circlemanifold": # Circumference of 1 @@ -121,12 +123,13 @@ def _test_io_mesh_extrusion(mesh, tmpdir, variable_layers=False): layers[:, 1] += 1 + layers[:, 0] assert np.array_equal(mesh.topology.layers, layers) v1 = _compute_integral(mesh) - assert abs(v1 - v) < 2.e-14 + assert abs(v1 - v) < 5.e-14 if isinstance(mesh.topology, ExtrudedMeshTopology): assert mesh.topology._base_mesh is mesh._base_mesh.topology # Save. with CheckpointFile(fname, "w", comm=comm) as afile: afile.save_mesh(mesh) + comm.Free() @pytest.mark.parallel(nprocs=3) @@ -174,7 +177,8 @@ def test_io_mesh_default_mesh_name(tmpdir): with CheckpointFile(fname, "r", comm=comm) as afile: mesh = afile.load_mesh() v1 = _compute_integral(mesh) - assert abs(v1 - v) < 1.e-14 + assert abs(v1 - v) < 5.e-14 # Save. with CheckpointFile(fname, "w", comm=comm) as afile: afile.save_mesh(mesh) + comm.Free() diff --git a/tests/regression/test_ensembleparallelism.py b/tests/regression/test_ensembleparallelism.py index faa3db99dc..3225f3f787 100644 --- a/tests/regression/test_ensembleparallelism.py +++ b/tests/regression/test_ensembleparallelism.py @@ -56,14 +56,14 @@ def unique_function(mesh, rank, W): return u -@pytest.fixture +@pytest.fixture(scope="module") def ensemble(): if COMM_WORLD.size == 1: return return Ensemble(COMM_WORLD, 2) -@pytest.fixture +@pytest.fixture(scope="module") def mesh(ensemble): if COMM_WORLD.size == 1: return diff --git a/tests/regression/test_fdm.py b/tests/regression/test_fdm.py index fef477190e..2c0274eb00 100644 --- a/tests/regression/test_fdm.py +++ b/tests/regression/test_fdm.py @@ -149,6 +149,7 @@ def test_p_independence_hgrad(mesh, variant): @pytest.mark.skipmumps @pytest.mark.skipcomplex +@pytest.mark.markif_fixture(pytest.mark.slow, mesh="Box") def test_p_independence_hcurl(mesh): family = "NCE" if mesh.topological_dimension() == 3 else "RTCE" expected = [13, 10] if mesh.topological_dimension() == 3 else [6, 6] @@ -162,6 +163,7 @@ def test_p_independence_hcurl(mesh): @pytest.mark.skipmumps @pytest.mark.skipcomplex +@pytest.mark.markif_fixture(pytest.mark.slow, mesh="Box") def test_p_independence_hdiv(mesh): family = "NCF" if mesh.topological_dimension() == 3 else "RTCF" expected = [6, 6] @@ -224,6 +226,7 @@ def fs(request, mesh): @pytest.mark.skipcomplex +@pytest.mark.markif_fixture(pytest.mark.slow, fs="rt", mesh="Box") def test_ipdg_direct_solver(fs): mesh = fs.mesh() x = SpatialCoordinate(mesh) diff --git a/tests/regression/test_garbage.py b/tests/regression/test_garbage.py index 94edcd2b99..546f64f907 100644 --- a/tests/regression/test_garbage.py +++ b/tests/regression/test_garbage.py @@ -6,7 +6,13 @@ @pytest.mark.parallel(2) def test_making_many_meshes_does_not_exhaust_comms(): + # Clean up garbage first, in case the test suite is already using lots of comms + garbage_cleanup(COMM_WORLD) + for ii in range(3000): mesh = UnitIntervalMesh(2) - if ii % 1000 == 0: + if ii % 800 == 0: garbage_cleanup(mesh) + + # Clean up garbage after too + garbage_cleanup(COMM_WORLD) diff --git a/tests/regression/test_interpolate_cross_mesh.py b/tests/regression/test_interpolate_cross_mesh.py index 1bd6ed6226..7489067663 100644 --- a/tests/regression/test_interpolate_cross_mesh.py +++ b/tests/regression/test_interpolate_cross_mesh.py @@ -65,7 +65,7 @@ def make_high_order(m_low_order, degree): ), ), "unitsquare_Regge_source", - "spheresphere", + pytest.param("spheresphere", marks=pytest.mark.slow), "sphereextrudedsphereextruded", ] ) diff --git a/tests/regression/test_par_loops.py b/tests/regression/test_par_loops.py index 6a446af0be..8222e0d5c7 100644 --- a/tests/regression/test_par_loops.py +++ b/tests/regression/test_par_loops.py @@ -1,6 +1,7 @@ import pytest import numpy as np from firedrake import * +from firedrake.utils import ScalarType_c from firedrake.__future__ import * @@ -292,6 +293,6 @@ def test_mixed_dat_performs_halo_exchange(): mdat[0].data_wo[...] = 1 assert not mdat.halo_valid - kernel = """static void k(double *x) { }""" + kernel = f"""static void k({ScalarType_c} *x) {{ }}""" op2.par_loop(op2.Kernel(kernel, "k"), iterset, mdat(op2.READ, mmap)) assert mdat.halo_valid diff --git a/tests/regression/test_projection.py b/tests/regression/test_projection.py index 2537b0ae4f..216f043ee3 100644 --- a/tests/regression/test_projection.py +++ b/tests/regression/test_projection.py @@ -334,7 +334,7 @@ def test_projector_bcs(tensor, same_fspace): @pytest.mark.parametrize(('degree', 'family', 'expected_convergence'), [ (0, 'DGT', 0.8), (1, 'DGT', 1.8), - (2, 'DGT', 2.8)]) + pytest.param(2, 'DGT', 2.8, marks=pytest.mark.slow)]) def test_DGT_convergence(degree, family, expected_convergence): l2_diff = np.array([run_trace_projection(x, degree, family) for x in range(2, 5)]) conv = np.log2(l2_diff[:-1] / l2_diff[1:]) diff --git a/tests/regression/test_stokes_hdiv_parallel.py b/tests/regression/test_stokes_hdiv_parallel.py index 8b5e77dab0..5e827ec1cc 100644 --- a/tests/regression/test_stokes_hdiv_parallel.py +++ b/tests/regression/test_stokes_hdiv_parallel.py @@ -16,6 +16,7 @@ def element_pair(request): @pytest.mark.parallel(nprocs=3) +@pytest.mark.markif_fixture(pytest.mark.slow, mat_type="aij", element_pair="RT3-DG2") def test_stokes_hdiv_parallel(mat_type, element_pair): err_u = [] err_p = [] diff --git a/tests/regression/test_stress_els.py b/tests/regression/test_stress_els.py index 16ca97bc58..ae99aabe54 100755 --- a/tests/regression/test_stress_els.py +++ b/tests/regression/test_stress_els.py @@ -27,8 +27,8 @@ def mesh_hierarchy(request): return mh +@pytest.mark.markif_fixture(pytest.mark.slow, stress_element="conforming") def test_stress_displacement_convergence(stress_element, mesh_hierarchy): - mesh = mesh_hierarchy[0] V = FunctionSpace(mesh, mesh.coordinates.ufl_element()) diff --git a/tests/slate/test_slate_hybridization_extr.py b/tests/slate/test_slate_hybridization_extr.py index 203eae438b..3f005b850b 100644 --- a/tests/slate/test_slate_hybridization_extr.py +++ b/tests/slate/test_slate_hybridization_extr.py @@ -3,6 +3,7 @@ from firedrake.petsc import DEFAULT_DIRECT_SOLVER +@pytest.mark.slow @pytest.mark.parametrize('quad', [False, True]) def test_hybrid_extr_helmholtz(quad): """Hybridize the lowest order HDiv conforming method using diff --git a/tests/vertexonly/test_poisson_inverse_conductivity.py b/tests/vertexonly/test_poisson_inverse_conductivity.py index 5bf518c042..9c6b38352a 100644 --- a/tests/vertexonly/test_poisson_inverse_conductivity.py +++ b/tests/vertexonly/test_poisson_inverse_conductivity.py @@ -112,10 +112,12 @@ def test_poisson_inverse_conductivity(num_points): Ĵ = ReducedFunctional(J, q̂) # Estimate q using Newton-CG which evaluates the hessian action - minimize(Ĵ, method='Newton-CG', options={'disp': True}) + minimize(Ĵ, method='Newton-CG', options={'maxiter': 3, 'disp': True}) @pytest.mark.skipcomplex # Taping for complex-valued 0-forms not yet done @pytest.mark.parallel +@pytest.mark.markif_fixture(pytest.mark.slow, num_points="sparse") +@pytest.mark.markif_fixture(pytest.mark.slow, num_points="dense") def test_poisson_inverse_conductivity_parallel(num_points): test_poisson_inverse_conductivity(num_points)