diff --git a/docs/source/app_source.rst b/docs/source/app_source.rst deleted file mode 100644 index fba7535f..00000000 --- a/docs/source/app_source.rst +++ /dev/null @@ -1,202 +0,0 @@ -*********************** -Overview of source code -*********************** - -This section provides an overview of the source code modules and describes each of the classes and methods used in the gprMax package. The following licensing information applies to all source files unless otherwise stated:: - - Copyright (C) 2015, The University of Edinburgh. - - Authors: Craig Warren and Antonis Giannopoulos - - 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 . - - -constants.py -============ - -Defines constants: - -* Speed of light in vacuum :math:`c=2.9979245 \times 10^8` m/s -* Permittivity of free space :math:`\epsilon_0=8.854187 \times 10^{-12}` F/m -* Permeability of free space :math:`\mu_0=1.256637 \times 10^{-6}` H/m -* Impedance of free space :math:`z_0=376.7303134` Ohms - -Defines data types: - -* Solid and ID arrays use 32-bit integers (0 to 4294967295) -* Rigid arrays use 8-bit integers (the smallest available numpy type to store booleans - true/false) -* Fractal and dispersive coefficient arrays use complex numbers (:code:`complextype`) which are represented as two :code:`floattype` -* Main field arrays use floats (:code:`floattype`) and complex numbers (:code:`complextype`) -* :code:`floattype` and :code:`complextype` are set to use 32-bit floats but can be changed to use 64-bit double precision if required. - -.. automodule:: gprMax.constants - - -exceptions.py -============= - -.. automodule:: gprMax.exceptions - - -fields_update.pyx -================= - -.. automodule:: gprMax.fields_update - - -fractals.py -=========== - -.. automodule:: gprMax.fractals - - -geometry_primitives.pyx -======================= - -.. automodule:: gprMax.geometry_primitives - - -geometry_views.py -================= - -.. automodule:: gprMax.geometry_views - - -gprMax.py -=========== - -.. automodule:: gprMax.gprMax - -grid.py -======= - -.. automodule:: gprMax.grid - - -input_cmds_file.py -================== - -.. automodule:: gprMax.input_cmds_file - - -input_cmds_geometry.py -====================== - -.. automodule:: gprMax.input_cmds_geometry - - -input_cmds_multiuse.py -====================== - -.. automodule:: gprMax.input_cmds_multiuse - - -input_cmds_singleuse.py -======================= - -.. automodule:: gprMax.input_cmds_singleuse - - -materials.py -============ - -.. automodule:: gprMax.materials - - -output.py -========= - -.. automodule:: gprMax.output - - -pml_1order_update.pyx -===================== - -.. automodule:: gprMax.pml_1order_update - - -pml_2order_update.pyx -===================== - -.. automodule:: gprMax.pml_2order_update - - -pml_call_updates.py -=================== - -.. automodule:: gprMax.pml_call_updates - - -pml.py -====== - -.. automodule:: gprMax.pml - - -receivers.py -============ - -.. automodule:: gprMax.receivers - - -snapshots.py -============ - -.. automodule:: gprMax.snapshots - - -sources.py -========== - -.. automodule:: gprMax.sources - - -user_libs.antennas.py -===================== - -This module is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License:: - - Copyright (C) 2015, Craig Warren - - This module is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. - To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/. - - Please use the attribution at http://dx.doi.org/10.1190/1.3548506 - -.. automodule:: user_libs.antennas - - -utilities.py -============ - -.. automodule:: gprMax.utilities - - -waveforms.py -============ - -.. automodule:: gprMax.waveforms - - -yee_cell_build.pyx -================== - -.. automodule:: gprMax.yee_cell_build - - -yee_cell_setget_rigid.pyx -========================= - -.. automodule:: gprMax.yee_cell_setget_rigid - diff --git a/docs/source/features.rst b/docs/source/features.rst index 04c08529..c1214991 100644 --- a/docs/source/features.rst +++ b/docs/source/features.rst @@ -131,7 +131,7 @@ This latter option is often referred to as dielectric smoothing and has been sho Perfectly Matched Layer (PML) boundary conditions ------------------------------------------------- -With increased research into quantitative information from GPR, it has become necessary for models to be able to have more efficient and better-performing Perfectly Matched Layer (PML) absorbing boundary conditions. Since 2005 gprMax has featured PML absorbing boundary conditions based on the uniaxial PML (UPML) [GED1998]_ formulation. A PML based on a recursive integration approach to the complex frequency shifted (CFS) PML [GIA2012]_ has been adopted in the new version of gprMax. A general formulation of this RIPML, which can be used to develop any order of PML, has been used to implement first and second order CFS stretching functions. One of the attractions of the RIPML is that it is easily applied as a correction to the field quantities after the complete FDTD grid has been updated using the standard FDTD update equations. gprMax now offers the ability (for advanced users) to customise the parameters of the PML which allows its performance to be better optimised for specific applications. Additionally, since the RIPML is media agnostic it can be used without change to problems involving dispersive and anisotropic materials. For further details see the :ref:`PML commands section `. +With increased research into quantitative information from GPR, it has become necessary for models to be able to have more efficient and better-performing Perfectly Matched Layer (PML) absorbing boundary conditions. Since 2005 gprMax has featured PML absorbing boundary conditions based on the uniaxial PML (UPML) [GED1998]_ formulation. A PML based on a recursive integration approach to the complex frequency shifted (CFS) PML [GIA2012]_ has been adopted in the new version of gprMax. A general formulation of this RIPML, which can be used to develop any order of PML, has been used to implement first and second order CFS stretching functions. One of the attractions of the RIPML is that it is easily applied as a correction to the field quantities after the complete FDTD grid has been updated using the standard FDTD update equations. gprMax now offers the ability (for advanced users) to customise the parameters of the PML which allows its performance to be better optimised for specific applications. Additionally, since the RIPML is media agnostic it can be used without change to problems involving dispersive and anisotropic materials. For further details see the :ref:`PML commands section `. Open source, robust, file formats --------------------------------- diff --git a/docs/source/gprmodelling.rst b/docs/source/gprmodelling.rst index 8a5bfa8a..c8ff8449 100644 --- a/docs/source/gprmodelling.rst +++ b/docs/source/gprmodelling.rst @@ -107,6 +107,6 @@ The absorbing boundary conditions (ABCs) employed in gprMax will, in general, pe The cells of the RIPML, which have a user adjustable thickness, very efficiently absorb most waves that propagate in them. Although, source and output points can be specified inside these cells **it is wrong to do so** from the point of view of correct modelling. The fields inside these cells are not of interest to GPR modelling. Placing sources inside these cells could have effects that have not been studied and will certainly provide erroneous results from a GPR modeller's point of view. The requirement to keep sources and targets at least 15 cells away for the PML has to be taken into account when deciding the size of the model domain. Additionally, free space (i.e. air) should be always included above a source for at least 15-20 cells in GPR models. Obviously, the more cells there are between observation points, sources, targets and the absorbing boundaries, the better the results will be. -gprMax now offers the ability (for advanced users) to customise the parameters of the PML which allows its performance to be better optimised for specific applications. For further details see the :ref:`PML commands section `. +gprMax now offers the ability (for advanced users) to customise the parameters of the PML which allows its performance to be better optimised for specific applications. For further details see the :ref:`PML commands section `. This user guide, cannot serve as an in-depth tutorial and review of the FDTD method. However some useful hints and tips are given in order to cover the most fundamental aspects of using a FDTD based solver and to avoid the most common errors. diff --git a/docs/source/index.rst b/docs/source/index.rst index 4ab27988..702a4dc0 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -16,7 +16,6 @@ gprMax User Guide :caption: Using gprMax input - geometry_snapshots output .. toctree:: diff --git a/docs/source/input.rst b/docs/source/input.rst index ad3007b5..67bbc979 100644 --- a/docs/source/input.rst +++ b/docs/source/input.rst @@ -828,7 +828,7 @@ For example to save a snapshot of the electromagnetic fields in the model at a s #end_python: -.. _pml: +.. _pml-commands: PML commands ============