From baf0093b81d50f0399074e8c89057bc329d40de8 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 20 May 2025 14:28:31 +0100 Subject: [PATCH 01/11] Updated authors --- CREDITS | 4 ++-- gprMax/cython/plane_wave.pyx | 4 ++-- gprMax/grid/cuda_grid.py | 5 +++-- gprMax/grid/fdtd_grid.py | 5 +++-- gprMax/grid/mpi_grid.py | 5 +++-- gprMax/grid/opencl_grid.py | 5 +++-- gprMax/output_controllers/geometry_objects.py | 19 +++++++++++++++++++ .../output_controllers/geometry_view_lines.py | 5 +++-- .../geometry_view_voxels.py | 5 +++-- gprMax/output_controllers/geometry_views.py | 5 +++-- gprMax/output_controllers/grid_view.py | 19 +++++++++++++++++++ gprMax/taskfarm.py | 3 ++- gprMax/updates/cpu_updates.py | 5 +++-- gprMax/updates/cuda_updates.py | 5 +++-- gprMax/updates/mpi_updates.py | 5 +++-- gprMax/updates/opencl_updates.py | 5 +++-- gprMax/updates/updates.py | 5 +++-- gprMax/user_objects/cmds_multiuse.py | 5 +++-- gprMax/user_objects/cmds_output.py | 19 +++++++++++++++++++ gprMax/user_objects/cmds_singleuse.py | 6 ++++-- gprMax/user_objects/rotatable.py | 19 +++++++++++++++++++ gprMax/user_objects/user_objects.py | 19 +++++++++++++++++++ gprMax/vtkhdf_filehandlers/vtk_image_data.py | 19 +++++++++++++++++++ .../vtk_unstructured_grid.py | 19 +++++++++++++++++++ gprMax/vtkhdf_filehandlers/vtkhdf.py | 19 +++++++++++++++++++ .../benchmark_tests/reframe_benchmarks.py | 19 +++++++++++++++++++ .../configuration/archer2_settings.py | 19 +++++++++++++++++++ testing/analytical_solutions.py | 3 ++- testing/diff_output_files.py | 3 ++- testing/test_experimental.py | 3 ++- testing/test_models.py | 3 ++- 31 files changed, 247 insertions(+), 37 deletions(-) diff --git a/CREDITS b/CREDITS index bdf69641..5c632202 100644 --- a/CREDITS +++ b/CREDITS @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This is the official list of entities and people who have contributed to gprMax # @@ -15,6 +16,5 @@ gprMax is a contribution to COST Action TU1208 'Civil Engineering Applications o As well as the aforementioned authors, the following individuals have contributed to gprMax: Oystein Bjorndal -John Hartley Rajath Kumar Tobias Schruff diff --git a/gprMax/cython/plane_wave.pyx b/gprMax/cython/plane_wave.pyx index 408f59b6..cbc1ac8e 100644 --- a/gprMax/cython/plane_wave.pyx +++ b/gprMax/cython/plane_wave.pyx @@ -1,6 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, and -# Adittya Pal +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# Adittya Pal, and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/grid/cuda_grid.py b/gprMax/grid/cuda_grid.py index 7bd7efcf..b98cd6f3 100644 --- a/gprMax/grid/cuda_grid.py +++ b/gprMax/grid/cuda_grid.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/grid/fdtd_grid.py b/gprMax/grid/fdtd_grid.py index c1211357..071542db 100644 --- a/gprMax/grid/fdtd_grid.py +++ b/gprMax/grid/fdtd_grid.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/grid/mpi_grid.py b/gprMax/grid/mpi_grid.py index 188eaddf..390aebad 100644 --- a/gprMax/grid/mpi_grid.py +++ b/gprMax/grid/mpi_grid.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/grid/opencl_grid.py b/gprMax/grid/opencl_grid.py index 8e68d6c8..da9f4703 100644 --- a/gprMax/grid/opencl_grid.py +++ b/gprMax/grid/opencl_grid.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/output_controllers/geometry_objects.py b/gprMax/output_controllers/geometry_objects.py index c3c5c9c8..234357d2 100644 --- a/gprMax/output_controllers/geometry_objects.py +++ b/gprMax/output_controllers/geometry_objects.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + from io import TextIOWrapper from pathlib import Path from typing import Generic diff --git a/gprMax/output_controllers/geometry_view_lines.py b/gprMax/output_controllers/geometry_view_lines.py index e9b3bea7..5c7c0baf 100644 --- a/gprMax/output_controllers/geometry_view_lines.py +++ b/gprMax/output_controllers/geometry_view_lines.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/output_controllers/geometry_view_voxels.py b/gprMax/output_controllers/geometry_view_voxels.py index bbeb23f9..164767bf 100644 --- a/gprMax/output_controllers/geometry_view_voxels.py +++ b/gprMax/output_controllers/geometry_view_voxels.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/output_controllers/geometry_views.py b/gprMax/output_controllers/geometry_views.py index 20f2c6d0..4cad83bf 100644 --- a/gprMax/output_controllers/geometry_views.py +++ b/gprMax/output_controllers/geometry_views.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/output_controllers/grid_view.py b/gprMax/output_controllers/grid_view.py index 295a0f5d..176cdf88 100644 --- a/gprMax/output_controllers/grid_view.py +++ b/gprMax/output_controllers/grid_view.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + import logging from itertools import chain from typing import Generic, Tuple diff --git a/gprMax/taskfarm.py b/gprMax/taskfarm.py index 335a3ae1..8d1eca31 100644 --- a/gprMax/taskfarm.py +++ b/gprMax/taskfarm.py @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Tobias Schruff +# Authors: Craig Warren, Antonis Giannopoulos, Tobias Schruff, +# John Hartley, and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/updates/cpu_updates.py b/gprMax/updates/cpu_updates.py index 09d05ef2..577c0aa6 100644 --- a/gprMax/updates/cpu_updates.py +++ b/gprMax/updates/cpu_updates.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/updates/cuda_updates.py b/gprMax/updates/cuda_updates.py index 0e73cdc3..68cbcfca 100644 --- a/gprMax/updates/cuda_updates.py +++ b/gprMax/updates/cuda_updates.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/updates/mpi_updates.py b/gprMax/updates/mpi_updates.py index b369e6d9..199787d4 100644 --- a/gprMax/updates/mpi_updates.py +++ b/gprMax/updates/mpi_updates.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/updates/opencl_updates.py b/gprMax/updates/opencl_updates.py index bcacfcd8..eb18e637 100644 --- a/gprMax/updates/opencl_updates.py +++ b/gprMax/updates/opencl_updates.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/updates/updates.py b/gprMax/updates/updates.py index d1a2563f..ab14434c 100644 --- a/gprMax/updates/updates.py +++ b/gprMax/updates/updates.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/user_objects/cmds_multiuse.py b/gprMax/user_objects/cmds_multiuse.py index a4595258..5dc0a2a5 100644 --- a/gprMax/user_objects/cmds_multiuse.py +++ b/gprMax/user_objects/cmds_multiuse.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/gprMax/user_objects/cmds_output.py b/gprMax/user_objects/cmds_output.py index 5f9e305f..05eff03d 100644 --- a/gprMax/user_objects/cmds_output.py +++ b/gprMax/user_objects/cmds_output.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + import logging from typing import List, Optional, Tuple diff --git a/gprMax/user_objects/cmds_singleuse.py b/gprMax/user_objects/cmds_singleuse.py index 13b71a9d..3440c7d7 100644 --- a/gprMax/user_objects/cmds_singleuse.py +++ b/gprMax/user_objects/cmds_singleuse.py @@ -1,5 +1,6 @@ -# Copyright (C) 2015-2024: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # @@ -15,6 +16,7 @@ # # You should have received a copy of the GNU General Public License # along with gprMax. If not, see . + import logging from typing import Optional, Tuple, Union diff --git a/gprMax/user_objects/rotatable.py b/gprMax/user_objects/rotatable.py index 19f2492d..51188060 100644 --- a/gprMax/user_objects/rotatable.py +++ b/gprMax/user_objects/rotatable.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + from abc import ABC, abstractmethod from typing import Optional, Tuple diff --git a/gprMax/user_objects/user_objects.py b/gprMax/user_objects/user_objects.py index 5cbcc8bd..ed15883c 100644 --- a/gprMax/user_objects/user_objects.py +++ b/gprMax/user_objects/user_objects.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + from abc import ABC, abstractmethod from typing import List, Union diff --git a/gprMax/vtkhdf_filehandlers/vtk_image_data.py b/gprMax/vtkhdf_filehandlers/vtk_image_data.py index 0d2b3137..87447f08 100644 --- a/gprMax/vtkhdf_filehandlers/vtk_image_data.py +++ b/gprMax/vtkhdf_filehandlers/vtk_image_data.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + from os import PathLike from typing import Literal, Optional, Union diff --git a/gprMax/vtkhdf_filehandlers/vtk_unstructured_grid.py b/gprMax/vtkhdf_filehandlers/vtk_unstructured_grid.py index fa4a687e..8fbcc9a0 100644 --- a/gprMax/vtkhdf_filehandlers/vtk_unstructured_grid.py +++ b/gprMax/vtkhdf_filehandlers/vtk_unstructured_grid.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + import logging from os import PathLike from typing import Literal, Optional, Union diff --git a/gprMax/vtkhdf_filehandlers/vtkhdf.py b/gprMax/vtkhdf_filehandlers/vtkhdf.py index 234a8bdb..3fc4ed77 100644 --- a/gprMax/vtkhdf_filehandlers/vtkhdf.py +++ b/gprMax/vtkhdf_filehandlers/vtkhdf.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + import logging from abc import abstractmethod from contextlib import AbstractContextManager diff --git a/reframe_tests/benchmark_tests/reframe_benchmarks.py b/reframe_tests/benchmark_tests/reframe_benchmarks.py index f1b98acc..28826bb2 100644 --- a/reframe_tests/benchmark_tests/reframe_benchmarks.py +++ b/reframe_tests/benchmark_tests/reframe_benchmarks.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + import os from pathlib import Path diff --git a/reframe_tests/configuration/archer2_settings.py b/reframe_tests/configuration/archer2_settings.py index cf0d9fe1..a4608d4b 100644 --- a/reframe_tests/configuration/archer2_settings.py +++ b/reframe_tests/configuration/archer2_settings.py @@ -1,3 +1,22 @@ +# Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall +# +# This file is part of gprMax. +# +# gprMax is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# gprMax is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with gprMax. If not, see . + site_configuration = { "general": [ { diff --git a/testing/analytical_solutions.py b/testing/analytical_solutions.py index 94256f94..02c4109f 100644 --- a/testing/analytical_solutions.py +++ b/testing/analytical_solutions.py @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/testing/diff_output_files.py b/testing/diff_output_files.py index 46c2f1a7..872ce33e 100644 --- a/testing/diff_output_files.py +++ b/testing/diff_output_files.py @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/testing/test_experimental.py b/testing/test_experimental.py index b8b7921b..6e958053 100644 --- a/testing/test_experimental.py +++ b/testing/test_experimental.py @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # diff --git a/testing/test_models.py b/testing/test_models.py index 4afa8ae8..c5d4bb16 100644 --- a/testing/test_models.py +++ b/testing/test_models.py @@ -1,5 +1,6 @@ # Copyright (C) 2015-2025: The University of Edinburgh, United Kingdom -# Authors: Craig Warren, Antonis Giannopoulos, and John Hartley +# Authors: Craig Warren, Antonis Giannopoulos, John Hartley, +# and Nathan Mannall # # This file is part of gprMax. # From 190a3f36efb28370102f0e10df84c98831fe5930 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 27 May 2025 09:27:20 +0100 Subject: [PATCH 02/11] mpi4py must now be installed by default --- conda_env.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda_env.yml b/conda_env.yml index 10b9d63f..ab835c07 100644 --- a/conda_env.yml +++ b/conda_env.yml @@ -17,7 +17,7 @@ dependencies: - pip: - humanize -# - mpi4py + - mpi4py - numpy-stl # - pycuda # - pyopencl From 8a0f9928feef8550af116c0792ca25739b1aaba2 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Tue, 27 May 2025 10:03:34 +0100 Subject: [PATCH 03/11] Clarified property names for Lorentz and Drude materials --- gprMax/hash_cmds_multiuse.py | 22 +++++++++++----------- gprMax/user_objects/cmds_multiuse.py | 4 ++-- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/gprMax/hash_cmds_multiuse.py b/gprMax/hash_cmds_multiuse.py index 35ac78f2..2f4b2225 100644 --- a/gprMax/hash_cmds_multiuse.py +++ b/gprMax/hash_cmds_multiuse.py @@ -408,20 +408,20 @@ def process_multicmds(multicmds): poles = int(tmp[0]) material_ids = tmp[(3 * poles) + 1 : len(tmp)] er_delta = [] - tau = [] - alpha = [] + omega = [] + delta = [] for pole in range(1, 3 * poles, 3): er_delta.append(float(tmp[pole])) - tau.append(float(tmp[pole + 1])) - alpha.append(float(tmp[pole + 2])) + omega.append(float(tmp[pole + 1])) + delta.append(float(tmp[pole + 2])) lorentz_dispersion = AddLorentzDispersion( poles=poles, material_ids=material_ids, er_delta=er_delta, - tau=tau, - alpha=alpha, + omega=omega, + delta=delta, ) scene_objects.append(lorentz_dispersion) @@ -443,15 +443,15 @@ def process_multicmds(multicmds): poles = int(tmp[0]) material_ids = tmp[(3 * poles) + 1 : len(tmp)] - tau = [] - alpha = [] + omega = [] + gamma = [] for pole in range(1, 2 * poles, 2): - tau.append(float(tmp[pole])) - alpha.append(float(tmp[pole + 1])) + omega.append(float(tmp[pole])) + gamma.append(float(tmp[pole + 1])) drude_dispersion = AddDrudeDispersion( - poles=poles, material_ids=material_ids, tau=tau, alpha=alpha + poles=poles, material_ids=material_ids, omega=omega, gamma=gamma ) scene_objects.append(drude_dispersion) diff --git a/gprMax/user_objects/cmds_multiuse.py b/gprMax/user_objects/cmds_multiuse.py index 5dc0a2a5..fafb2706 100644 --- a/gprMax/user_objects/cmds_multiuse.py +++ b/gprMax/user_objects/cmds_multiuse.py @@ -1449,7 +1449,7 @@ class AddLorentzDispersion(GridUserObject): f"{self.grid_name(grid)}Lorentz disperion added to {disp_material.ID} " f"with delta_eps_r={', '.join(f'{deltaer:4.2f}' for deltaer in disp_material.deltaer)}, " f"omega={', '.join(f'{omega:4.3e}' for omega in disp_material.tau)} secs, " - f"and gamma={', '.join(f'{delta:4.3e}' for delta in disp_material.alpha)} created." + f"and delta={', '.join(f'{delta:4.3e}' for delta in disp_material.alpha)} created." ) @@ -1530,7 +1530,7 @@ class AddDrudeDispersion(GridUserObject): logger.info( f"{self.grid_name(grid)}Drude disperion added to {disp_material.ID} " f"with omega={', '.join(f'{omega:4.3e}' for omega in disp_material.tau)} secs, " - f"and gamma={', '.join(f'{alpha:4.3e}' for alpha in disp_material.alpha)} secs created." + f"and alpha={', '.join(f'{alpha:4.3e}' for alpha in disp_material.alpha)} secs created." ) From 29e2f15e0210e8b630ba4bf03705ee3a374d3f5f Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 11:35:01 +0100 Subject: [PATCH 04/11] Updated user_objects path for docs --- docs/source/input_api.rst | 84 +++++++++++++++++++-------------------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/docs/source/input_api.rst b/docs/source/input_api.rst index a64ba49a..dd967310 100644 --- a/docs/source/input_api.rst +++ b/docs/source/input_api.rst @@ -77,103 +77,103 @@ Creating a model scene Domain ------ -.. autoclass:: gprMax.cmds_singleuse.Domain +.. autoclass:: gprMax.user_objects.cmds_singleuse.Domain Discretisation -------------- -.. autoclass:: gprMax.cmds_singleuse.Discretisation +.. autoclass:: gprMax.user_objects.cmds_singleuse.Discretisation Time Window ----------- -.. autoclass:: gprMax.cmds_singleuse.TimeWindow +.. autoclass:: gprMax.user_objects.cmds_singleuse.TimeWindow General functions ================= Title ----- -.. autoclass:: gprMax.cmds_singleuse.Title +.. autoclass:: gprMax.user_objects.cmds_singleuse.Title Number of OpenMP threads ------------------------ -.. autoclass:: gprMax.cmds_singleuse.OMPThreads +.. autoclass:: gprMax.user_objects.cmds_singleuse.OMPThreads Time Step Stability Factor -------------------------- -.. autoclass:: gprMax.cmds_singleuse.TimeStepStabilityFactor +.. autoclass:: gprMax.user_objects.cmds_singleuse.TimeStepStabilityFactor Output Directory ---------------- -.. autoclass:: gprMax.cmds_singleuse.OutputDir +.. autoclass:: gprMax.user_objects.cmds_singleuse.OutputDir Material functions ================== Material -------- -.. autoclass:: gprMax.cmds_multiuse.Material +.. autoclass:: gprMax.user_objects.cmds_multiuse.Material Debye Dispersion ---------------- -.. autoclass:: gprMax.cmds_multiuse.AddDebyeDispersion +.. autoclass:: gprMax.user_objects.cmds_multiuse.AddDebyeDispersion Lorentz Dispersion ------------------ -.. autoclass:: gprMax.cmds_multiuse.AddLorentzDispersion +.. autoclass:: gprMax.user_objects.cmds_multiuse.AddLorentzDispersion Drude Dispersion ---------------- -.. autoclass:: gprMax.cmds_multiuse.AddDrudeDispersion +.. autoclass:: gprMax.user_objects.cmds_multiuse.AddDrudeDispersion Soil Peplinski -------------- -.. autoclass:: gprMax.cmds_multiuse.SoilPeplinski +.. autoclass:: gprMax.user_objects.cmds_multiuse.SoilPeplinski Object construction functions ============================= -Object construction commands are processed in the order they appear in the scene. Therefore space in the model allocated to a specific material using for example the :class:`gprMax.cmds_geometry.box.Box` command can be reallocated to another material using the same or any other object construction command. Space in the model can be regarded as a canvas in which objects are introduced and one can be overlaid on top of the other overwriting its properties in order to produce the desired geometry. The object construction commands can therefore be used to create complex shapes and configurations. +Object construction commands are processed in the order they appear in the scene. Therefore space in the model allocated to a specific material using for example the :class:`gprMax.user_objects.cmds_geometry.box.Box` command can be reallocated to another material using the same or any other object construction command. Space in the model can be regarded as a canvas in which objects are introduced and one can be overlaid on top of the other overwriting its properties in order to produce the desired geometry. The object construction commands can therefore be used to create complex shapes and configurations. Box --- -.. autoclass:: gprMax.cmds_geometry.box.Box +.. autoclass:: gprMax.user_objects.cmds_geometry.box.Box Cone ---- -.. autoclass:: gprMax.cmds_geometry.cone.Cone +.. autoclass:: gprMax.user_objects.cmds_geometry.cone.Cone Cylinder -------- -.. autoclass:: gprMax.cmds_geometry.cylinder.Cylinder +.. autoclass:: gprMax.user_objects.cmds_geometry.cylinder.Cylinder Cylindrical Sector ------------------ -.. autoclass:: gprMax.cmds_geometry.cylindrical_sector.CylindricalSector +.. autoclass:: gprMax.user_objects.cmds_geometry.cylindrical_sector.CylindricalSector Edge ---- -.. autoclass:: gprMax.cmds_geometry.edge.Edge +.. autoclass:: gprMax.user_objects.cmds_geometry.edge.Edge Ellipsoid --------- -.. autoclass:: gprMax.cmds_geometry.ellipsoid.Ellipsoid +.. autoclass:: gprMax.user_objects.cmds_geometry.ellipsoid.Ellipsoid Plate ----- -.. autoclass:: gprMax.cmds_geometry.plate.Plate +.. autoclass:: gprMax.user_objects.cmds_geometry.plate.Plate Sphere ------ -.. autoclass:: gprMax.cmds_geometry.sphere.Sphere +.. autoclass:: gprMax.user_objects.cmds_geometry.sphere.Sphere Triangle -------- -.. autoclass:: gprMax.cmds_geometry.triangle.Triangle +.. autoclass:: gprMax.user_objects.cmds_geometry.triangle.Triangle Fractal Box ----------- -.. autoclass:: gprMax.cmds_geometry.fractal_box.FractalBox +.. autoclass:: gprMax.user_objects.cmds_geometry.fractal_box.FractalBox .. note:: @@ -181,74 +181,74 @@ Fractal Box Add Grass --------- -.. autoclass:: gprMax.cmds_geometry.add_grass.AddGrass +.. autoclass:: gprMax.user_objects.cmds_geometry.add_grass.AddGrass Add Surface Roughness --------------------- -.. autoclass:: gprMax.cmds_geometry.add_surface_roughness.AddSurfaceRoughness +.. autoclass:: gprMax.user_objects.cmds_geometry.add_surface_roughness.AddSurfaceRoughness Add Surface Water ----------------- -.. autoclass:: gprMax.cmds_geometry.add_surface_water.AddSurfaceWater +.. autoclass:: gprMax.user_objects.cmds_geometry.add_surface_water.AddSurfaceWater Geometry View ------------- -.. autoclass:: gprMax.cmds_multiuse.GeometryView +.. autoclass:: gprMax.user_objects.cmds_multiuse.GeometryView Geometry Objects Write ---------------------- -.. autoclass:: gprMax.cmds_multiuse.GeometryObjectsWrite +.. autoclass:: gprMax.user_objects.cmds_multiuse.GeometryObjectsWrite Source and output functions =========================== Waveform -------- -.. autoclass:: gprMax.cmds_multiuse.Waveform +.. autoclass:: gprMax.user_objects.cmds_multiuse.Waveform Voltage Source -------------- -.. autoclass:: gprMax.cmds_multiuse.VoltageSource +.. autoclass:: gprMax.user_objects.cmds_multiuse.VoltageSource Hertzian Dipole Source ---------------------- -.. autoclass:: gprMax.cmds_multiuse.HertzianDipole +.. autoclass:: gprMax.user_objects.cmds_multiuse.HertzianDipole Magnetic Dipole Source ---------------------- -.. autoclass:: gprMax.cmds_multiuse.MagneticDipole +.. autoclass:: gprMax.user_objects.cmds_multiuse.MagneticDipole Transmission Line ----------------- -.. autoclass:: gprMax.cmds_multiuse.TransmissionLine +.. autoclass:: gprMax.user_objects.cmds_multiuse.TransmissionLine Discrete Plane Wave ------------------- -.. autoclass:: gprMax.cmds_multiuse.DiscretePlaneWave +.. autoclass:: gprMax.user_objects.cmds_multiuse.DiscretePlaneWave Excitation File --------------- -.. autoclass:: gprMax.cmds_multiuse.ExcitationFile +.. autoclass:: gprMax.user_objects.cmds_multiuse.ExcitationFile Receiver -------- -.. autoclass:: gprMax.cmds_multiuse.Rx +.. autoclass:: gprMax.user_objects.cmds_multiuse.Rx Receiver Array -------------- -.. autoclass:: gprMax.cmds_multiuse.RxArray +.. autoclass:: gprMax.user_objects.cmds_multiuse.RxArray Source Steps ------------ -.. autoclass:: gprMax.cmds_singleuse.SrcSteps +.. autoclass:: gprMax.user_objects.cmds_singleuse.SrcSteps Receiver Steps -------------- -.. autoclass:: gprMax.cmds_singleuse.RxSteps +.. autoclass:: gprMax.user_objects.cmds_singleuse.RxSteps Snapshot -------- -.. autoclass:: gprMax.cmds_multiuse.Snapshot +.. autoclass:: gprMax.user_objects.cmds_multiuse.Snapshot Subgrid ------- @@ -264,13 +264,13 @@ The default behaviour for the absorbing boundary conditions (ABC) is first order PML properties -------------- -.. autoclass:: gprMax.cmds_singleuse.PMLProps +.. autoclass:: gprMax.user_objects.cmds_singleuse.PMLProps PML CFS ------- Allows you control of the specific parameters that are used to build each order of the PML. Up to a second order PML can currently be specified, i.e. by using two ``PMLCFS`` commands. -.. autoclass:: gprMax.cmds_multiuse.PMLCFS +.. autoclass:: gprMax.user_objects.cmds_multiuse.PMLCFS The CFS values (which are internally specified) used for the default standard first order PML are: * ``alphascalingprofile = 'constant'`` From b898db8176982d2a0f6da37c7a5e3042485a4b5a Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 12:45:42 +0100 Subject: [PATCH 05/11] Remove MPPI for readthedocs builds --- .readthedocs.yaml | 2 +- conda_env_no_mpi.yml | 26 ++++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 conda_env_no_mpi.yml diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 2d55c0fa..40c6bf80 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -14,7 +14,7 @@ build: - python -m pip install sphinx_rtd_theme conda: - environment: conda_env.yml + environment: conda_env_no_mpi.yml python: install: diff --git a/conda_env_no_mpi.yml b/conda_env_no_mpi.yml new file mode 100644 index 00000000..10b9d63f --- /dev/null +++ b/conda_env_no_mpi.yml @@ -0,0 +1,26 @@ +# This file may be used to create a conda environment using: +# $ conda env create -f + +name: gprMax-devel +dependencies: +- python>3.7 +- colorama +- cython +- h5py +- jinja2 +- jupyter +- matplotlib +- numpy +- pip +- psutil +- scipy + +- pip: + - humanize +# - mpi4py + - numpy-stl +# - pycuda +# - pyopencl + - terminaltables + - tqdm + - git+https://github.com/craig-warren/PyEVTK.git From 5d4042e9db3b82efec6f30d0ccf498058cd69c82 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 13:09:13 +0100 Subject: [PATCH 06/11] Testing mpi4py with RTD --- .readthedocs.yaml | 2 +- conda_env_no_mpi.yml | 26 -------------------------- requirements.txt | 2 +- 3 files changed, 2 insertions(+), 28 deletions(-) delete mode 100644 conda_env_no_mpi.yml diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 40c6bf80..2d55c0fa 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -14,7 +14,7 @@ build: - python -m pip install sphinx_rtd_theme conda: - environment: conda_env_no_mpi.yml + environment: conda_env.yml python: install: diff --git a/conda_env_no_mpi.yml b/conda_env_no_mpi.yml deleted file mode 100644 index 10b9d63f..00000000 --- a/conda_env_no_mpi.yml +++ /dev/null @@ -1,26 +0,0 @@ -# This file may be used to create a conda environment using: -# $ conda env create -f - -name: gprMax-devel -dependencies: -- python>3.7 -- colorama -- cython -- h5py -- jinja2 -- jupyter -- matplotlib -- numpy -- pip -- psutil -- scipy - -- pip: - - humanize -# - mpi4py - - numpy-stl -# - pycuda -# - pyopencl - - terminaltables - - tqdm - - git+https://github.com/craig-warren/PyEVTK.git diff --git a/requirements.txt b/requirements.txt index a2300d99..87502321 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ humanize jinja2 jupyter matplotlib -# mpi4py +mpi4py numpy<2 numpy-stl pandas From f307b3c69c2d2898d3c73212d695f06c94f6c782 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 13:11:07 +0100 Subject: [PATCH 07/11] Formatting update --- README.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rst b/README.rst index f90f6718..e81db5ad 100644 --- a/README.rst +++ b/README.rst @@ -74,7 +74,7 @@ The following steps provide guidance on how to install gprMax: 3. Build and install gprMax 1. Install Python, the required Python packages, and get the gprMax source ------------------------------------------------------------------- +-------------------------------------------------------------------------- We recommend using Miniconda to install Python and the required Python packages for gprMax in a self-contained Python environment. Miniconda is a mini version of Anaconda which is a completely free Python distribution (including for commercial use and redistribution). It includes more than 300 of the most popular Python packages for science, math, engineering, and data analysis. From 67cdbb8d38d80de01be422ba21e76e283ee993df Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 13:51:30 +0100 Subject: [PATCH 08/11] Added openmpi to RTD build --- .readthedocs.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 2d55c0fa..eb035a80 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -7,6 +7,8 @@ version: 2 build: os: ubuntu-22.04 + apt_packages: + - openmpi tools: python: "mambaforge-22.9" jobs: From c187c124723b82419c9222732bd09f827d839a7b Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 21:14:58 +0100 Subject: [PATCH 09/11] Try different MPI for RTD --- .readthedocs.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index eb035a80..6cdc8bcd 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,7 @@ version: 2 build: os: ubuntu-22.04 apt_packages: - - openmpi + - mpi-default-bin tools: python: "mambaforge-22.9" jobs: From 1d301b7509ee804ed0858076184f8ab23112a34d Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 21:22:58 +0100 Subject: [PATCH 10/11] Try other MPI for RTD --- .readthedocs.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 6cdc8bcd..f2abe0ad 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,7 +8,9 @@ version: 2 build: os: ubuntu-22.04 apt_packages: - - mpi-default-bin + - openmpi-bin + - openmpi-dev + - openmpi-common tools: python: "mambaforge-22.9" jobs: From e986fdb09357b36333e31b7c1d200b543f435a35 Mon Sep 17 00:00:00 2001 From: Craig Warren Date: Fri, 30 May 2025 21:28:10 +0100 Subject: [PATCH 11/11] MPI RTD --- .readthedocs.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index f2abe0ad..4db4877d 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -8,9 +8,7 @@ version: 2 build: os: ubuntu-22.04 apt_packages: - - openmpi-bin - - openmpi-dev - - openmpi-common + - mpich tools: python: "mambaforge-22.9" jobs: