diff --git a/.github/workflows/build_docs.yml b/.github/workflows/build_docs.yml index 205556a..7dac631 100644 --- a/.github/workflows/build_docs.yml +++ b/.github/workflows/build_docs.yml @@ -5,11 +5,11 @@ on: workflow_call: pull_request: branches: - - main + - release jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: ghcr.io/fenics/dolfinx/dev-env:current-mpich env: # Directory that will be published on github pages @@ -18,9 +18,16 @@ jobs: steps: - uses: actions/checkout@v4 + with: + ref: release + + - name: Install libbost for backwards compatibility + run: | + apt-get update + apt-get install -y libboost-dev libboost-timer-dev - name: Install DOLFINx - uses: jorgensd/actions/install-dolfinx@v0.3 + uses: jorgensd/actions/install-dolfinx@v0.4 with: dolfinx: v0.9.0 ufl: 2024.2.0 diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index faf0fa8..fdf939f 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -5,7 +5,6 @@ on: pull_request: branches: - release - - main workflow_dispatch: diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml index 93a5578..5674b3a 100644 --- a/.github/workflows/sonarcloud.yml +++ b/.github/workflows/sonarcloud.yml @@ -67,7 +67,7 @@ jobs: echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH - name: Install DOLFINx - uses: jorgensd/actions/install-dolfinx@v0.3 + uses: jorgensd/actions/install-dolfinx@v0.4 with: petsc_arch: ${PETSC_ARCH} dolfinx: main diff --git a/.github/workflows/test_mpc.yml b/.github/workflows/test_mpc.yml index 2259db1..4731ed6 100644 --- a/.github/workflows/test_mpc.yml +++ b/.github/workflows/test_mpc.yml @@ -14,7 +14,7 @@ on: jobs: build: runs-on: ubuntu-latest - container: ghcr.io/fenics/dolfinx/dolfinx:stable + container: ghcr.io/fenics/dolfinx/dolfinx:nightly strategy: matrix: @@ -37,10 +37,10 @@ jobs: # - CC: clang # CXX: c++ env: - DOLFINX_BRANCH: v0.9.0 - BASIX_BRANCH: v0.9.0 - UFL_BRANCH: 2024.2.0 - FFCX_BRANCH: v0.9.0 + DOLFINX_BRANCH: main + BASIX_BRANCH: main + UFL_BRANCH: main + FFCX_BRANCH: main CC: ${{ matrix.CC }} CXX: ${{ matrix.CXX }} @@ -88,7 +88,7 @@ jobs: python3 -m pip install --no-build-isolation --no-cache-dir --no-binary=h5py h5py - name: Install DOLFINx - uses: jorgensd/actions/install-dolfinx@v0.3 + uses: jorgensd/actions/install-dolfinx@v0.4 with: dolfinx: ${{ env.DOLFINX_BRANCH }} ufl: ${{ env.UFL_BRANCH }} diff --git a/cpp/PeriodicConstraint.h b/cpp/PeriodicConstraint.h index 126f4d3..6d737c9 100644 --- a/cpp/PeriodicConstraint.h +++ b/cpp/PeriodicConstraint.h @@ -65,7 +65,7 @@ dolfinx_mpc::mpc_data _create_periodic_condition( parents_glob[i] = parents_glob[i] * bs + parent_rems[i]; return parents_glob; }; - if (const std::size_t value_size = V.value_size() / V.element()->block_size(); + if (const std::size_t value_size = V.element()->reference_value_size(); value_size > 1) throw std::runtime_error( "Periodic conditions for vector valued spaces are not " diff --git a/cpp/mpc_helpers.h b/cpp/mpc_helpers.h index ec9921a..7933473 100644 --- a/cpp/mpc_helpers.h +++ b/cpp/mpc_helpers.h @@ -231,10 +231,7 @@ create_extended_functionspace(const dolfinx::fem::FunctionSpace& V, old_dofmap.element_dof_layout(), new_index_map, old_dofmap.bs(), std::move(flattened_dofmap), old_dofmap.bs()); - return dolfinx::fem::FunctionSpace( - V.mesh(), element, new_dofmap, - dolfinx::fem::compute_value_shape(element, V.mesh()->topology()->dim(), - V.mesh()->geometry().dim())); + return dolfinx::fem::FunctionSpace(V.mesh(), element, new_dofmap); } } // namespace dolfinx_mpc \ No newline at end of file diff --git a/cpp/utils.h b/cpp/utils.h index 99e2ba8..d385bcf 100644 --- a/cpp/utils.h +++ b/cpp/utils.h @@ -1007,8 +1007,7 @@ evaluate_basis_functions(const dolfinx::fem::FunctionSpace& V, auto element = V.element(); assert(element); const int bs_element = element->block_size(); - const std::size_t reference_value_size - = element->reference_value_size() / bs_element; + const std::size_t reference_value_size = element->reference_value_size(); // If the space has sub elements, concatenate the evaluations on the // sub elements @@ -1026,7 +1025,7 @@ evaluate_basis_functions(const dolfinx::fem::FunctionSpace& V, assert(basis_shape[2] == std::size_t(element->space_dimension() / bs_element)); - assert(basis_shape[3] == std::size_t(V.value_size() / bs_element)); + assert(basis_shape[3] == std::size_t(element->reference_value_size())); std::array reference_shape = {basis_shape[1], basis_shape[2], basis_shape[3]}; std::vector output_basis(std::reduce( diff --git a/python/benchmarks/bench_contact_3D.py b/python/benchmarks/bench_contact_3D.py index 0dd8678..b95e9d6 100644 --- a/python/benchmarks/bench_contact_3D.py +++ b/python/benchmarks/bench_contact_3D.py @@ -19,7 +19,7 @@ import numpy as np from basix.ufl import element from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings, timing +from dolfinx.common import Timer, list_timings, timing from dolfinx.cpp.mesh import entities_to_geometry from dolfinx.fem import ( Constant, @@ -297,7 +297,7 @@ def sigma(v): apply_lifting(b, [bilinear_form], [bcs], mpc) b.ghostUpdate(addv=PETSc.InsertMode.ADD_VALUES, mode=PETSc.ScatterMode.REVERSE) # type: ignore set_bc(b, bcs) - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) # Solve Linear problem opts = PETSc.Options() # type: ignore @@ -365,13 +365,13 @@ def sigma(v): for op in operations: op_timing = timing(f"{num_dofs}: {op}") num_calls = op_timing[0] - wall_time = op_timing[1] + wall_time = op_timing[1].total_seconds() avg_time = comm.allreduce(wall_time, op=MPI.SUM) / comm.size min_time = comm.allreduce(wall_time, op=MPI.MIN) max_time = comm.allreduce(wall_time, op=MPI.MAX) if comm.rank == 0: print(op, num_calls, avg_time, min_time, max_time, file=results_file) - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) b.destroy() solver.destroy() diff --git a/python/benchmarks/bench_elasticity.py b/python/benchmarks/bench_elasticity.py index f0d3a86..3d69bbd 100644 --- a/python/benchmarks/bench_elasticity.py +++ b/python/benchmarks/bench_elasticity.py @@ -17,7 +17,7 @@ import h5py import numpy as np from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import ( Constant, Function, @@ -157,7 +157,7 @@ def l2b(li): solver.solve(b, uh) uh.ghostUpdate(addv=PETSc.InsertMode.INSERT, mode=PETSc.ScatterMode.FORWARD) # type: ignore mpc.backsubstitution(uh) - solver_time = timer.elapsed() + solver_time = timer.elapsed().total_seconds() it = solver.getIterationNumber() if kspview: @@ -176,7 +176,7 @@ def l2b(li): d_set = out_hdf5.get("num_dofs") d_set[r_lvl] = num_dofs d_set = out_hdf5.get("solve_time") - d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time[0] + d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time if xdmf: # Write solution to file u_h = Function(mpc.function_space) @@ -223,5 +223,5 @@ def l2b(li): log_info(f"Run {i} in progress") bench_elasticity_one(r_lvl=i, out_hdf5=h5f, xdmf=args.xdmf, boomeramg=args.boomeramg, kspview=args.kspview) if args.timings and i == N - 1: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) h5f.close() diff --git a/python/benchmarks/bench_elasticity_edge.py b/python/benchmarks/bench_elasticity_edge.py index 9f12ead..0be3043 100644 --- a/python/benchmarks/bench_elasticity_edge.py +++ b/python/benchmarks/bench_elasticity_edge.py @@ -16,7 +16,7 @@ import h5py import numpy as np from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import ( Constant, Function, @@ -190,7 +190,7 @@ def sigma(v): solver.solve(b, uh.x.petsc_vec) uh.x.scatter_forward() mpc.backsubstitution(uh) - solver_time = timer.elapsed() + solver_time = timer.elapsed().total_seconds() if kspview: solver.view() @@ -206,7 +206,7 @@ def sigma(v): d_set = out_hdf5.get("num_slaves") d_set[r_lvl, MPI.COMM_WORLD.rank] = mpc.num_local_slaves d_set = out_hdf5.get("solve_time") - d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time[0] + d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time if info: log_info(f"Lvl: {r_lvl}, Its: {it}, max Mem: {mem}, dim(V): {num_dofs}") @@ -278,5 +278,5 @@ def sigma(v): ) if args.timings and i == N - 1: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) h5f.close() diff --git a/python/benchmarks/bench_periodic.py b/python/benchmarks/bench_periodic.py index 4179f6c..fb4c455 100644 --- a/python/benchmarks/bench_periodic.py +++ b/python/benchmarks/bench_periodic.py @@ -21,7 +21,7 @@ import h5py import numpy as np from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import Function, dirichletbc, form, functionspace, locate_dofs_geometrical from dolfinx.fem.petsc import set_bc from dolfinx.io import XDMFFile @@ -148,7 +148,7 @@ def periodic_relation(x): uh.x.scatter_forward() mpc.backsubstitution(uh) - solver_time = timer.elapsed() + solver_time = timer.elapsed().total_seconds() if kspview: solver.view() @@ -163,7 +163,7 @@ def periodic_relation(x): d_set = out_hdf5.get("num_slaves") d_set[r_lvl, MPI.COMM_WORLD.rank] = mpc.num_local_slaves d_set = out_hdf5.get("solve_time") - d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time[0] + d_set[r_lvl, MPI.COMM_WORLD.rank] = solver_time if MPI.COMM_WORLD.rank == 0: print(f"Rlvl {r_lvl}, Iterations {it}") @@ -241,5 +241,5 @@ def periodic_relation(x): # List_timings if args.timings and i == N - 1: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) h5f.close() diff --git a/python/benchmarks/ref_elasticity.py b/python/benchmarks/ref_elasticity.py index b3e69b7..b31bf94 100644 --- a/python/benchmarks/ref_elasticity.py +++ b/python/benchmarks/ref_elasticity.py @@ -18,7 +18,7 @@ import h5py import numpy as np from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import ( Constant, Function, @@ -257,5 +257,5 @@ def sigma(v): degree=args.degree, ) if args.timings and i == N - 1: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) h5f.close() diff --git a/python/benchmarks/ref_periodic.py b/python/benchmarks/ref_periodic.py index 049d9a3..1b43286 100644 --- a/python/benchmarks/ref_periodic.py +++ b/python/benchmarks/ref_periodic.py @@ -27,7 +27,7 @@ import h5py import numpy as np from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import Function, dirichletbc, form, functionspace, locate_dofs_geometrical from dolfinx.fem.petsc import apply_lifting, assemble_matrix, assemble_vector, set_bc from dolfinx.io import XDMFFile @@ -219,5 +219,5 @@ def dirichletboundary(x): ) if args.timings and i == N - 1: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) h5f.close() diff --git a/python/demos/demo_contact_2D.py b/python/demos/demo_contact_2D.py index 38ef0a7..68b7948 100644 --- a/python/demos/demo_contact_2D.py +++ b/python/demos/demo_contact_2D.py @@ -23,7 +23,7 @@ import numpy as np import scipy.sparse.linalg from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.fem import Constant, dirichletbc, form, functionspace, locate_dofs_geometrical from dolfinx.fem.petsc import apply_lifting, assemble_matrix, assemble_vector, set_bc from dolfinx.io import XDMFFile @@ -263,4 +263,4 @@ def left_corner(x): outfile.close() if args.timing: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) diff --git a/python/demos/demo_contact_3D.py b/python/demos/demo_contact_3D.py index ee9d465..f53d8d4 100644 --- a/python/demos/demo_contact_3D.py +++ b/python/demos/demo_contact_3D.py @@ -19,7 +19,7 @@ import numpy as np import scipy.sparse.linalg from dolfinx import default_real_type, default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.io import XDMFFile from dolfinx.mesh import CellType from ufl import Identity, TestFunction, TrialFunction, dx, grad, inner, sym, tr @@ -232,7 +232,7 @@ def sigma(v): uh_numpy = K @ d assert np.allclose(uh_numpy, u_mpc) - list_timings(mesh.comm, [TimingType.wall]) + list_timings(mesh.comm) b.destroy() L_org.destroy() solver.destroy() @@ -298,4 +298,4 @@ def sigma(v): log_info("Simulation finished") if args.timing: - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) diff --git a/python/demos/demo_periodic3d_topological.py b/python/demos/demo_periodic3d_topological.py index 19d659d..696f537 100644 --- a/python/demos/demo_periodic3d_topological.py +++ b/python/demos/demo_periodic3d_topological.py @@ -25,7 +25,7 @@ import numpy as np import scipy.sparse.linalg from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.io import VTXWriter from dolfinx.mesh import CellType, create_unit_cube, locate_entities_boundary, meshtags from numpy.typing import NDArray @@ -185,4 +185,4 @@ def periodic_relation(x): if __name__ == "__main__": for celltype in [CellType.hexahedron, CellType.tetrahedron]: demo_periodic3D(celltype) - list_timings(MPI.COMM_WORLD, [TimingType.wall]) + list_timings(MPI.COMM_WORLD) diff --git a/python/demos/demo_periodic_geometrical.py b/python/demos/demo_periodic_geometrical.py index e721e1e..98ec55c 100644 --- a/python/demos/demo_periodic_geometrical.py +++ b/python/demos/demo_periodic_geometrical.py @@ -22,7 +22,7 @@ import numpy as np import scipy.sparse.linalg from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.io import XDMFFile from dolfinx.mesh import create_unit_square, locate_entities_boundary from ufl import ( @@ -185,5 +185,5 @@ def periodic_relation(x): # Back substitution to full solution vector uh_numpy = K.astype(scipy_dtype) @ d.astype(scipy_dtype) assert np.allclose(uh_numpy.astype(u_mpc.dtype), u_mpc, atol=float(tol)) -list_timings(MPI.COMM_WORLD, [TimingType.wall]) +list_timings(MPI.COMM_WORLD) L_org.destroy() diff --git a/python/demos/demo_stokes.py b/python/demos/demo_stokes.py index e46e140..e72e3c6 100644 --- a/python/demos/demo_stokes.py +++ b/python/demos/demo_stokes.py @@ -329,4 +329,4 @@ def T(u: Expr, p: Expr, mu: Expr): # ## Timings # Finally, we list the execution time of various operations used in the demo -common.list_timings(MPI.COMM_WORLD, [common.TimingType.wall]) +common.list_timings(MPI.COMM_WORLD) diff --git a/python/demos/demo_stokes_nest.py b/python/demos/demo_stokes_nest.py index 9295ed7..010950f 100644 --- a/python/demos/demo_stokes_nest.py +++ b/python/demos/demo_stokes_nest.py @@ -362,4 +362,4 @@ def T(u: Expr, p: Expr, mu: Expr): Uh.destroy() ksp.destroy() # -------------------- List timings -------------------------- -dolfinx.common.list_timings(MPI.COMM_WORLD, [dolfinx.common.TimingType.wall]) +dolfinx.common.list_timings(MPI.COMM_WORLD) diff --git a/python/tests/test_cube_contact.py b/python/tests/test_cube_contact.py index 7537ca1..80efb6c 100644 --- a/python/tests/test_cube_contact.py +++ b/python/tests/test_cube_contact.py @@ -19,7 +19,7 @@ import scipy.sparse.linalg import ufl from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.io import gmshio import dolfinx_mpc @@ -301,4 +301,4 @@ def sigma(v): b.destroy() solver.destroy() - list_timings(comm, [TimingType.wall]) + list_timings(comm) diff --git a/python/tests/test_integration_domains.py b/python/tests/test_integration_domains.py index f758229..bacbd61 100644 --- a/python/tests/test_integration_domains.py +++ b/python/tests/test_integration_domains.py @@ -14,7 +14,7 @@ import scipy.sparse.linalg import ufl from dolfinx import default_scalar_type, fem -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import compute_midpoints, create_unit_square, meshtags import dolfinx_mpc @@ -131,4 +131,4 @@ def l2b(li): pc.destroy() L_org.destroy() A_org.destroy() - list_timings(comm, [TimingType.wall]) + list_timings(comm) diff --git a/python/tests/test_lifting.py b/python/tests/test_lifting.py index cd7e9f6..55b2789 100644 --- a/python/tests/test_lifting.py +++ b/python/tests/test_lifting.py @@ -14,7 +14,7 @@ import scipy.sparse.linalg import ufl from dolfinx import fem -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import CellType, create_unit_square import dolfinx_mpc @@ -117,7 +117,7 @@ def l2b(li): uh_numpy = K @ (d) # + constants) nt.assert_allclose(uh_numpy, u_mpc, rtol=1e-5, atol=1e-8) - list_timings(comm, [TimingType.wall]) + list_timings(comm) L_org.destroy() b.destroy() solver.destroy() diff --git a/python/tests/test_matrix_assembly.py b/python/tests/test_matrix_assembly.py index 1dbb69f..5901533 100644 --- a/python/tests/test_matrix_assembly.py +++ b/python/tests/test_matrix_assembly.py @@ -11,7 +11,7 @@ import numpy as np import pytest import ufl -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import CellType, create_unit_square import dolfinx_mpc @@ -100,4 +100,4 @@ def test_slave_on_same_cell(master_point, degree, celltype, get_assemblers): # A_org.assemble() dolfinx_mpc.utils.compare_mpc_lhs(A_org, A_mpc, mpc) - list_timings(mesh.comm, [TimingType.wall]) + list_timings(mesh.comm) diff --git a/python/tests/test_mpc_pipeline.py b/python/tests/test_mpc_pipeline.py index fcc8188..c257297 100644 --- a/python/tests/test_mpc_pipeline.py +++ b/python/tests/test_mpc_pipeline.py @@ -14,7 +14,7 @@ import scipy.sparse.linalg import ufl from dolfinx import default_scalar_type, fem -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import create_unit_square import dolfinx_mpc @@ -110,7 +110,7 @@ def l2b(li): rtol=500 * np.finfo(default_scalar_type).resolution, ) - list_timings(comm, [TimingType.wall]) + list_timings(comm) @pytest.mark.parametrize("master_point", [[1, 1], [0, 1]]) @@ -179,4 +179,4 @@ def l2b(li): rtol=500 * np.finfo(default_scalar_type).resolution, ) - list_timings(comm, [TimingType.wall]) + list_timings(comm) diff --git a/python/tests/test_surface_integral.py b/python/tests/test_surface_integral.py index 23fafec..6aca946 100644 --- a/python/tests/test_surface_integral.py +++ b/python/tests/test_surface_integral.py @@ -15,7 +15,7 @@ import scipy.sparse.linalg import ufl from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import create_unit_square, locate_entities_boundary, meshtags import dolfinx_mpc @@ -142,7 +142,7 @@ def l2b(li): b.destroy() A_org.destroy() solver.destroy() - list_timings(comm, [TimingType.wall]) + list_timings(comm) @pytest.mark.parametrize("get_assemblers", ["C++", "numba"], indirect=True) @@ -217,4 +217,4 @@ def l2b(li): b.destroy() A_org.destroy() A.destroy() - list_timings(comm, [TimingType.wall]) + list_timings(comm) diff --git a/python/tests/test_vector_assembly.py b/python/tests/test_vector_assembly.py index c2f75b3..c1bb64f 100644 --- a/python/tests/test_vector_assembly.py +++ b/python/tests/test_vector_assembly.py @@ -12,7 +12,7 @@ import numpy as np import pytest import ufl -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import CellType, create_unit_square import dolfinx_mpc @@ -59,6 +59,6 @@ def l2b(li): with Timer("~TEST: Compare"): dolfinx_mpc.utils.compare_mpc_rhs(L_org, b, mpc, root=root) - list_timings(comm, [TimingType.wall]) + list_timings(comm) b.destroy() L_org.destroy() diff --git a/python/tests/test_vector_poisson.py b/python/tests/test_vector_poisson.py index 6efdce3..ea0750c 100644 --- a/python/tests/test_vector_poisson.py +++ b/python/tests/test_vector_poisson.py @@ -15,7 +15,7 @@ import scipy.sparse.linalg import ufl from dolfinx import default_scalar_type -from dolfinx.common import Timer, TimingType, list_timings +from dolfinx.common import Timer, list_timings from dolfinx.mesh import create_unit_square import dolfinx_mpc @@ -131,4 +131,4 @@ def l2b(li): b.destroy() L_org.destroy() solver.destroy() - list_timings(comm, [TimingType.wall]) + list_timings(comm)