gprMax

gprMax is open source software that simulates electromagnetic wave propagation using the Finite-Difference Time-Domain (FDTD) method for numerical modelling of Ground Penetrating Radar (GPR)

GPL-3.0 License

Downloads
171
Stars
566
Committers
28
gprMax - v.3.1.7 (Big Smoke) Latest Release

Published by craig-warren 10 months ago

This is the v.3.1.7, codenamed Big Smoke, release of gprMax.

Version 3.1.7 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.6:

  • Updated fractal behaviour: Fixed bug with fractal dimension being passed as int instead of float. Fractal dimension (D) is now used directly rather than using the (2D - 7) behaviour.
  • Added explicit gc.collect() to solve GPU (CUDA) memory leak with multiple models.
  • Fixed issue with repeated material names in Peplinski soils.
  • Fixed bug with setting poles property for builtin water and grass materials.
  • Fixed grid global object persisting through multiple Python API calls.
  • Fixed bug to propagate seed value to grass command.
  • Update to replace deprecated inspect.getargspec

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com/)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.6 (Big Smoke)

Published by craig-warren over 2 years ago

This is the v.3.1.6, codenamed Big Smoke, release of gprMax.

Version 3.1.6 contains general usability and performance improvements, as well as the specific enhancements and bug fixes since v.3.1.5 (see history for details).

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.5 (Big Smoke)

Published by craig-warren over 5 years ago

This is the v.3.1.5, codenamed Big Smoke, release of gprMax.

Version 3.1.5 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.5:

  • Changed rounding method (to ceil) used to calculate number of iterations. Now guarantees simulation will run beyond specified time window.
  • Open input files with utf-8 encoding to allow comments in Asian languages
  • Added an input file command #output_dir to specify the directory of output files other than the directory of the input files.
  • Improved memory reporting when using GPU-based solver
  • Modified detection and selection of GPUs: -gpu by itself uses a default device ID of 0, otherwise a list of GPU device IDs can be given, e.g. -gpu [0 1 2]
  • Cleaned up MPI task farm handling: default is to use MPI Spawn mechanism, but an alternate implementation can be specified to avoid this using --mpi-no-spawn flag
  • Corrected bug with snapshots on GPU when snapsgpu2cpu flag active.
  • Corrected path to custom pulse for optimised GSSI 1.5GHz antenna model.
  • Corrected handling of custom waveform less than length of time window.
  • Implemented new (optional) MRIPML formulation with both CPU and GPU-based solvers.
  • Corrected bug with PML on GPU-based solver when using different thicknesses of PML in a model.

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.4 (Big Smoke)

Published by craig-warren over 6 years ago

This is the v.3.1.4, codenamed Big Smoke, release of gprMax.

Version 3.1.4 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.4:

  • Overhaul of snapshot writing: it is now possible to use snapshots in the GPU-based solver mode; the performance of snapshot writing when using the CPU-based solver has been improved (pull request #161 )
    Speed up for writing geometry files (pull request #138 )
  • HDF5 output file attributes dx,dy,dz to dx_dy_dz and nx,ny,nz to nx_ny_nz
  • Added checks for correct source polarisation in 2D modes, & explicit setting of PEC boundaries for invariant direction in 2D modes.
  • Remove setting of magnetic properties for plates (faces). When cells edges or faces are specified only electric materials properties are used.
  • Moved (and updated) memory estimate function, now attached to Grid class.

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.3 (Big Smoke)

Published by craig-warren over 6 years ago

This is the v.3.1.3, codenamed Big Smoke, release of gprMax.

Version 3.1.3 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.2:

  • Speed up for writing geometry files (pull request #138 )
  • Tweaks to improve calculation of maximum frequency of interest used in dispersion analysis (this is used as a guidance for users)
  • Added extra error messages to check when rough surface trough/peaks do not correspond to dimensions of fractal box that they are associated with.
  • Clean/tidy of MPI task farming code - added an alternate MPI implementation that can be used in circumstances where MPI.Spawn method is not supported. This can be accessed via the command line flag -mpialt and requires gprMax to be run using the style mpiexec -np X where X is the number of model runs + 1 (for the master task)
  • Changed ID of material created for resistive voltage source - now uses voltage source position in ID rather than conductivity value which could be the same for multiple sources.
  • Fixed bug introduced with changes to interpolation of imported waveform (bug #139 )
  • Added code to speed up the building of cylinders that are aligned to a grid axis.

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.2 (Big Smoke)

Published by craig-warren almost 7 years ago

This is the v.3.1.2, codenamed Big Smoke, release of gprMax.

Version 3.1.2 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.1:

  • Added functionality to interpolate user-defined waveforms when importing using the #excitation_file command. For details see http://docs.gprmax.com/en/latest/input.html#excitation-file
  • Update to benchmarking mode to enable benchmarking with either CPU or GPU solver.
  • Corrected bug with case where cpu_count could return None on some machines.
  • Adjusted dispersion analysis to perform FFT of waveform over 4 * pulse width rather than entire time window.
  • Added warning to dispersion analysis for when waveform is likely being under-sampled.
  • Better handling of divide by zero when performing FFTs.
  • Added FFT function to utilities module for re-use in other modules.

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.1 (Big Smoke)

Published by craig-warren over 7 years ago

This is the v.3.1.1, codenamed Big Smoke, release of gprMax.

Version 3.1.1 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.1.0:

  • Added gaussianprime and gaussiandoubleprime waveforms which are direct 1st and 2nd derivatives of the gaussian waveform, i.e. they don't share the same centre frequency.
  • Correct bug with building grass roots - the index at the upper end of the range was one cell to large.

v.3.1 continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.1.0 (Big Smoke)

Published by craig-warren over 7 years ago

This is the v.3.1.0, codenamed Big Smoke, release of gprMax.

It continues our whisky-based naming, and is also a reference to the cities of Edinburgh (Scotland) and San Francisco (USA). Why? Because the development of v.3.1.0 was funded, through a research project, by Google.

The most significant feature of this release is the ability for simulations to utilise general-purpose computing using graphics processing units (GPGPU). We have used NVIDIA's Compute-Unified Device Architecture (CUDA). Our testing on both consumer and data centre NVIDIA GPU cards has shown dramatic performance increases over our parallelised CPU (OpenMP) implementation.

You can read about how to use the GPU functionality and find all the features of gprMax described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.20 (Bowmore)

Published by craig-warren over 7 years ago

This is the v.3.0.20, codenamed Bowmore, release of gprMax.

Version 3.0.20 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.0.19:

  • Corrected ambiguity with the centre frequency content of the gaussiandotdot and gaussiandotnorm waveforms. Prior to this update the centre frequency of these waveforms were derived from a base Gaussian waveform with the user given frequency (deriving the pulse width), i.e. this resulted in higher than expected centre frequencies for these waveforms. This has now been corrected so that the user specified centre frequency is what is used for these waveforms.
  • Tidied up terminology relating to waveform centre frequency.
  • Removed constraint that relaxation times for Debye materials must be greater than the time resolution of the model.
  • Fixed bug with geometry getting reused when running multiple models with the --geometry-only argument. The grid instance was not being cleared between models so it was assumed the --geometry-fixed argument had been specified.
  • Reduced threshold used in estimating numerical dispersion from -60dB to -40dB.
  • Added calculation of complex relative permittivity for Debye, Lorentz, and Drude materials. Real part is used in numerical dispersion analysis.
  • Fixed bug with checking of imported geometry spatial discretisation with model spatial discretisation (changed using int to round_value function).
  • Add explicit error to prevent materials with permittivity or permeability of less than 1.
  • Overhaul of MPI mode to spawn MPI workers from within gprMax, so doesn't need to be run with mpirun/mpiexec.
  • Improved robustness of detecting host machine information.

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.19 (Bowmore)

Published by craig-warren over 7 years ago

This is the v.3.0.19, codenamed Bowmore, release of gprMax.

Version 3.0.19 contains general usability and performance improvements, as well as the following specific enhancements and bug fixes since v.3.0.17:

  • The command line argument for the input file can now be either the file path or a file object.
  • Corrected bug that effected reading of #taguchi: command when checking for space after command name (fixes #92 ).
  • Improved detection of host information (manufacturer, model, CPU, RAM etc..) for all platforms.
  • Changed name of command line argument for job arrays from taskid to task.
  • Corrected printed units for magnetic loss from [S/m] to [Ohm/m]
  • Fractal weighting now scaled according to minimum of dimensions of fractal volume.
  • Corrected bug with not adding number of existing materials to ID array when using #geometry_objects_read command.
  • Overhauled benchmarking mode and plotting of benchmark. Include new mcells/sec performance metric.
  • Removed '+1' (extra cell) from waveform values, fractal volumes (to match removal from solid array), and bins for volumetric water fraction values.

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.17 (Bowmore)

Published by craig-warren over 7 years ago

This is the v.3.0.17, codenamed Bowmore, release of gprMax.

Version 3.0.17 contains the following specific enhancements and bug fixes since v.3.0.14:

  • Fixed missing argument in current function calls with snapshots. Occurred due to updating function arguments for calculating currents.
  • Fixed issue with importing user geometry due to solid array allocating more cells than necessary (fixes #92 ).
  • Fixed stability issue with #transmission_line when using larger impedances (fixes #89 ).

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.14 (Bowmore)

Published by craig-warren over 7 years ago

This is the v.3.0.14, codenamed Bowmore, release of gprMax.

Version 3.0.14 contains the following specific enhancements and bug fixes since v.3.0.12:

  • Improved dispersion analysis warning algorithm
    • Checks for non-physical wave propagation (fixes #84 ).
    • Improves method of finding maximum significant frequency in simulation.
  • Improved detection and reporting of information about the host machine that is running the simulation.
  • Added ability to move simple sources and receivers by negative increments (fixes #90 ).

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.12 (Bowmore)

Published by craig-warren almost 8 years ago

This is the v.3.0.12, codenamed Bowmore, release of gprMax.

Version 3.0.12 contains the following specific enhancements and bug fixes since v.3.0.9:

  • Fixed dispersion analysis for 2D simulations with non-cubic cells.
  • Added printing of detected CPU type/frequency.
  • Corrected bug with #geometry_objects_read command. It was over-writing an existing variable 'geometry'.
  • User library: Added ability to rotate antenna models 90 degrees CCW in the x-y plane.
  • Added check for space character between command name and parameters.
  • Changed default default for saving and plotting of receiver output components to only electric and magnetic fields, i.e. no longer current.
  • Added progress bars for building PMLs and writing geometry object files.
  • Added more informative messages (via analysis) on numerical dispersion.

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.9 (Bowmore)

Published by craig-warren about 8 years ago

This is the v.3.0.9, codenamed Bowmore, release of gprMax.

Version 3.0.9 contains the following specific enhancements and bug fixes since v.3.0.8:

  • Corrected bug with Peplinki mixing model where number of dispersive poles was not being set. Therefore, no dispersive behaviour was occurring.
  • Renamed #geometry_objects_file command to #geometry_objects_read
  • Created new #geometry_objects_write command to allow complex geometry to be saved to file(s) for re-use/importing into subsequent models (see http://docs.gprmax.com/en/latest/input.html#geometry-objects-write)
  • Added ability to turn dielectric smoothing on/off when reading geometry back from file (#geometry_objects_read).
  • Added dielectric smoothing option when using #fractal_box command.

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.8 (Bowmore)

Published by craig-warren about 8 years ago

This is the v.3.0.8, codenamed Bowmore, release of gprMax.

Version 3.0.8 contains the following performance or bug fixes since v.3.0.7:

  • Corrected out-of-bounds bug when using #add_rough_surface command.
  • Corrected performance bug with setting OMP_WAIT_POLICY.
  • Corrected bug with checking whether centre of circle was within domain for #cylindrical_sector command.
  • Corrected bugs with MPI task farm operation.

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.7 (Bowmore)

Published by craig-warren about 8 years ago

This is the v.3.0.7, codenamed Bowmore, release of gprMax.

Version 3.0.7 contains performance improvements since v.3.0.6:

  • Refactoring of standard field update functions
  • Refactoring of PML update functions
  • General code cleanups/improvements
  • Up to 14% speed increases seen with larger models (>3M cells) on certain machines

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.6 (Bowmore)

Published by craig-warren about 8 years ago

This is the v.3.0.6, codenamed Bowmore, release of gprMax.

Version 3.0.6 contains a number of minor bug fixes and usability/performance improvements since v.3.0.0:

  • #rx_box command renamed to #rx_array and can create 1D, 2D, and 3D arrays of #rx commands
  • Receiver outputs now stored in memory until end of simulation then written to output file. This provides a speed improvement.
  • Fixed bug with complex number in Lorenz material coefficients
  • Added options for 5th and 6th degree polynomial scaling for PML
  • Improved progress bars and a splash of colour
  • More informative messages printed to stdout
  • PEP8 code cleanups

All the features are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.0 (Bowmore)

Published by craig-warren over 8 years ago

This is the v.3.0.0, codenamed Bowmore, release of gprMax.

Version 3 of gprMax has many powerful and advanced features such as:

  • Anisotropic material modelling
  • Dispersive material modelling (with multi-pole Debye, Lorenz or Drude formulations)
  • Modelling of soils with realistic dielectric and geometric properties
  • Building of heterogeneous objects
  • Building of objects with rough surfaces
  • Built-in libraries of antenna models

All of these features and more are described in detail in the User Guide (http://docs.gprmax.com)

Please report any bugs with code via Issues on GitHub.

For general help and questions about using gprMax visit our Google Group forum (http://www.gprmax.com/forum.shtml)

gprMax - v.3.0.0b31 (Bowmore)

Published by craig-warren over 8 years ago

This is beta 31 of the v.3.0.0 release of gprMax.

Bug fixes:

  • Corrected bug in tools->plot_Bscan.py with rx component argument name.
gprMax - v.3.0.0b30 (Bowmore)

Published by craig-warren over 8 years ago

This is beta 30 of the v.3.0.0 release of gprMax.

Improvements:

  • gprMax can now be imported as a Python module, thanks to @jasminium
  • Added Jupyter Notebook model examples and more interactive plotting tools. See tools -> Jupyter notebooks
  • New installation procedure that unifies previous users and devs routes.
  • Beginnings of potential XDMF (XML/HDF5) usage for geometry files, thanks to @jasminium
  • Improved Python scripting of gprMax commands with example model, thanks to @obtitus
  • Various code cleanups

No more releases with pre-compiled binaries of Cython extensions modules. Users have to do this themselves as part of new install/update procedure.

Package Rankings
Top 17.36% on Pypi.org
Related Projects