diff --git a/.github/workflows/ubuntu.yml b/.github/workflows/ubuntu.yml index be6ae3dc32..e897f35cfa 100644 --- a/.github/workflows/ubuntu.yml +++ b/.github/workflows/ubuntu.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - name: [ "Build Bionic", "Build Focal", "Build Jammy" ] + name: [ "Build Bionic", "Build Focal", "Build Jammy", "Build Jammy OMP" ] include: - name: "Build Bionic" @@ -29,6 +29,9 @@ jobs: - name: "Build Jammy" release: jammy + - name: "Build Jammy OMP" + release: jammy-omp + steps: - name: Check Out Repo diff --git a/assemble/Advection_Diffusion_CG.F90 b/assemble/Advection_Diffusion_CG.F90 index d288f8fe04..89ee5a3e53 100644 --- a/assemble/Advection_Diffusion_CG.F90 +++ b/assemble/Advection_Diffusion_CG.F90 @@ -256,6 +256,11 @@ subroutine assemble_advection_diffusion_cg(t, matrix, rhs, state, dt, velocity_n integer :: clr, nnid, len, ele integer :: num_threads, thread_num +#ifdef _OPENMP + !! Did we successfully prepopulate the transform_to_physical_cache? + logical :: cache_valid +#endif + type(element_type), dimension(:), allocatable :: supg_element ewrite(1, *) "In assemble_advection_diffusion_cg" diff --git a/assemble/Advection_Diffusion_FV.F90 b/assemble/Advection_Diffusion_FV.F90 index 3aae469be2..3dd2d1e328 100644 --- a/assemble/Advection_Diffusion_FV.F90 +++ b/assemble/Advection_Diffusion_FV.F90 @@ -171,6 +171,11 @@ subroutine assemble_advection_diffusion_fv(t, matrix, rhs, state) integer :: clr, nnid, len, ele integer :: thread_num +#ifdef _OPENMP + !! Did we successfully prepopulate the transform_to_physical_cache? + logical :: cache_valid +#endif + ewrite(1,*) "In assemble_advection_diffusion_fv" coordinate => extract_vector_field(state, "Coordinate") diff --git a/docker/actions/Dockerfile.actions.jammy-omp b/docker/actions/Dockerfile.actions.jammy-omp new file mode 100644 index 0000000000..6a50b5e084 --- /dev/null +++ b/docker/actions/Dockerfile.actions.jammy-omp @@ -0,0 +1,27 @@ +FROM fluidity/baseimages:jammy + +USER root + +RUN apt-get -y update && \ + apt-get -y dist-upgrade && \ + apt-get -y install sudo && \ + rm -rf /var/cache/apt/archives && \ + rm -rf /var/lib/apt/lists + +RUN adduser fluidity sudo +RUN echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + +COPY . /home/fluidity +RUN chown -R fluidity /home/fluidity + +USER fluidity + +RUN ./configure --enable-2d-adaptivity --enable-omp +RUN make makefiles +RUN test -z "$(git status --porcelain */Makefile.dependencies)" +RUN make +RUN make fltools +RUN make manual + +# Python module 'assess' is required for some longtests +RUN python3 -m pip install assess diff --git a/femtools/Colouring.F90 b/femtools/Colouring.F90 index b4038034b9..14ee77e966 100644 --- a/femtools/Colouring.F90 +++ b/femtools/Colouring.F90 @@ -89,6 +89,13 @@ subroutine get_mesh_colouring(state, mesh, colouring_type, colouring) type(integer_set), dimension(:), pointer, intent(out) :: colouring type(mesh_type), pointer :: topology integer :: i +#ifdef _OPENMP + type(csr_sparsity), pointer :: sparsity + type(mesh_type) :: p0_mesh + integer :: ncolours + integer :: stat + type(scalar_field) :: element_colours +#endif topology => extract_mesh(state, topology_mesh_name)