你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 15:10:13 +08:00
Updated PML info
这个提交包含在:
@@ -72,6 +72,14 @@ Most of the commands are optional but there are some essential commands which ar
|
||||
|
||||
The essential commands are:
|
||||
|
||||
Running model(s)
|
||||
----------------
|
||||
.. autofunction:: gprMax.gprMax.run
|
||||
|
||||
Creating a model scene
|
||||
----------------------
|
||||
.. autoclass:: gprMax.scene.Scene
|
||||
|
||||
Domain
|
||||
------
|
||||
.. autoclass:: gprMax.cmds_singleuse.Domain
|
||||
@@ -91,8 +99,8 @@ Title
|
||||
-----
|
||||
.. autoclass:: gprMax.cmds_singleuse.Title
|
||||
|
||||
Number of Threads
|
||||
-----------------
|
||||
Number of OpenMP threads
|
||||
------------------------
|
||||
.. autoclass:: gprMax.cmds_singleuse.OMPThreads
|
||||
|
||||
Time Step Stability Factor
|
||||
@@ -239,61 +247,35 @@ Subgrid
|
||||
PML
|
||||
===
|
||||
|
||||
The default behaviour for the absorbing boundary conditions (ABC) is first order Complex Frequency Shifted (CFS) Perfectly Matched Layers (PML), with thicknesses of 10 cells on each of the six sides of the model domain. This can be altered by using the following command.
|
||||
The default behaviour for the absorbing boundary conditions (ABC) is first order Complex Frequency Shifted (CFS) Perfectly Matched Layers (PML), with thicknesses of 10 cells on each of the six sides of the model domain. The PML can be customised using the following commands:
|
||||
|
||||
PML Props
|
||||
---------
|
||||
PML properties
|
||||
--------------
|
||||
.. autoclass:: gprMax.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.
|
||||
|
||||
#pml_formulation:
|
||||
-----------------
|
||||
.. autoclass:: gprMax.cmds_multiuse.PMLCFS
|
||||
|
||||
Allows you to alter the formulation used for the PML. The current options are to use the Higher Order RIPML (HORIPML) - https://doi.org/10.1109/TAP.2011.2180344, or Multipole RIPML (MRIPML) - https://doi.org/10.1109/TAP.2018.2823864. The syntax of the command is:
|
||||
* The CFS values (which are internally specified) used for the default standard first order PML are:
|
||||
|
||||
* ``alphascalingprofile = 'constant'``
|
||||
* ``alphascalingdirection = 'forward'``
|
||||
* ``alphamin = 0``
|
||||
* ``alphamax = 0``
|
||||
* ``kappascalingprofile = 'constant'``
|
||||
* ``kappascalingdirection = 'forward'``
|
||||
* ``kappamin = 1``
|
||||
* ``kappamax = 1``
|
||||
* ``sigmascalingprofile = 'quartic'``
|
||||
* ``sigmascalingdirection = 'forward``
|
||||
* ``sigmamin = 0``
|
||||
* ``sigmamax = None``
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#pml_formulation: str
|
||||
|
||||
* ``str`` can be either 'HORIPML' or 'MRIPML'
|
||||
|
||||
For example to use the Multipole RIPML:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#pml_formulation: MRIPML
|
||||
|
||||
#pml_cfs:
|
||||
---------
|
||||
|
||||
Allows you (advanced) control of the 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 ``#pml_cfs`` commands. The syntax of the command is:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#pml_cfs: str1 str2 f1 f2 str3 str4 f3 f4 str5 str6 f5 f6
|
||||
|
||||
* ``str1`` is the type of scaling to use for the CFS :math:`\alpha` parameter. It can be ``constant``, ``linear``, ``quadratic``, ``cubic``, ``quartic``, ``quintic`` and ``sextic``.
|
||||
* ``str2`` is the direction of the scaling to use for the CFS :math:`\alpha` parameter. It can be ``forward`` or ``reverse``.
|
||||
* ``f1 f2`` are the minimum and maximum values for the CFS :math:`\alpha` parameter.
|
||||
* ``str3`` is the type of scaling to use for the CFS :math:`\kappa` parameter. It can be ``constant``, ``linear``, ``quadratic``, ``cubic``, ``quartic``, ``quintic`` and ``sextic``.
|
||||
* ``str4`` is the direction of the scaling to use for the CFS :math:`\kappa` parameter. It can be ``forward`` or ``reverse``.
|
||||
* ``f3 f4`` are the minimum and maximum values for the CFS :math:`\kappa` parameter. The minimum value for the CFS :math:`\kappa` parameter is one.
|
||||
* ``str5`` is the type of scaling to use for the CFS :math:`\sigma` parameter. It can be ``constant``, ``linear``, ``quadratic``, ``cubic``, ``quartic``, ``quintic`` and ``sextic``.
|
||||
* ``str6`` is the direction of the scaling to use for the CFS :math:`\sigma` parameter. It can be ``forward`` or ``reverse``.
|
||||
* ``f5 f6`` are the minimum and maximum values for the CFS :math:`\sigma` parameter.
|
||||
|
||||
The CFS values (which are internally specified) used for the default standard first order PML are: ``#pml_cfs: constant forward 0 0 constant forward 1 1 quartic forward 0 None``. Specifying 'None' for the maximum value of :math:`\sigma` forces gprMax to calculate it internally based on the relative permittivity and permeability of the underlying materials in the model.
|
||||
|
||||
The parameters will be applied to all slabs of the PML that are switched on.
|
||||
|
||||
.. tip::
|
||||
``forward`` direction implies minimum parameter value at the inner boundary of the PML and maximum parameter value at the edge of computational domain, ``reverse`` is the opposite.
|
||||
|
||||
|
||||
Additional API objects
|
||||
======================
|
||||
|
||||
Function to run the simulation
|
||||
------------------------------
|
||||
.. autofunction:: gprMax.gprMax.run
|
||||
.. autoclass:: gprMax.scene.Scene
|
||||
.. notes::
|
||||
|
||||
* The parameters will be applied to all slabs of the PML that are switched on.
|
||||
* Using ``None`` for the maximum value of :math:`\sigma` forces gprMax to calculate it internally based on the relative permittivity and permeability of the underlying materials in the model.
|
||||
* ``forward`` direction implies minimum parameter value at the inner boundary of the PML and maximum parameter value at the edge of computational domain, ``reverse`` is the opposite.
|
||||
|
@@ -155,16 +155,16 @@ Allows you to control the directory where output file(s) will be stored. The sy
|
||||
where ``str1`` can be either the absolute path to the directory for the output file(s) or a path relative to the directory of the input files. The default value is the same as the directory of the input files.
|
||||
|
||||
|
||||
#cpu_threads:
|
||||
#omp_threads:
|
||||
-------------
|
||||
|
||||
Allows you to control how many OpenMP threads (usually the number of physical CPU cores available) are used when running the model. The most computationally intensive parts of gprMax, which are the FDTD solver loops, have been parallelised using `OpenMP <http://openmp.org>`_ which supports multi-platform shared memory multiprocessing. The syntax of the command is:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
#cpu_threads: i1
|
||||
#omp_threads: i1
|
||||
|
||||
where ``i1`` is the number of OpenMP threads to use. If ``#cpu_threads`` is not specified gprMax will firstly look to see if the environment variable ``OMP_NUM_THREADS`` exists, and if not will detect and use all available physical CPU cores on the machine.
|
||||
where ``i1`` is the number of OpenMP threads to use. If ``#omp_threads`` is not specified gprMax will firstly look to see if the environment variable ``OMP_NUM_THREADS`` exists, and if not will detect and use all available physical CPU cores on the machine.
|
||||
|
||||
|
||||
.. _materials:
|
||||
|
在新工单中引用
屏蔽一个用户