diff --git a/MagnetiCalc.ini b/MagnetiCalc.ini index b288b31..c09988a 100644 --- a/MagnetiCalc.ini +++ b/MagnetiCalc.ini @@ -1,5 +1,5 @@ [DEFAULT] -version = MagnetiCalc v1.8.3.2 +version = MagnetiCalc v1.8.4 backend = 0 auto_calculation = True num_cores = 0 diff --git a/README.md b/README.md index 37f8f91..9cfe366 100755 --- a/README.md +++ b/README.md @@ -34,7 +34,9 @@ whenever I needed to solve a magnetostatic problem. The B-field calculation is implemented using the Biot-Savart law [1], employing multiprocessing techniques; -MagnetiCalc uses just-in-time compilation (JIT/Numba) to achieve high-performance calculations. +MagnetiCalc uses just-in-time compilation ([JIT](https://numba.pydata.org/)) +and, if available, GPU-acceleration ([CUDA](https://numba.pydata.org/numba-doc/dev/cuda/overview.html)) +to achieve high-performance calculations. Additionally, the use of easily constrainable "sampling volumes" allows for selective calculation over grids of arbitrary shape and arbitrary relative permeabilities µ_r(x) (experimental). @@ -146,6 +148,14 @@ python3 -m pip install . python3 -m pip uninstall magneticalc -y ``` +### Enabling CUDA Support + +Tested in Ubuntu 20.04, using the NVIDIA CUDA 10.1 driver and NVIDIA GeForce GTX 1650 GPU. + +Please refer to the +[Numba Installation Guide](https://numba.pydata.org/numba-doc/latest/user/installing.html) +which includes the steps necessary to get CUDA up and running. + License ------- Copyright © 2020, Paul Wilhelm, M. Sc. <[anfrage@paulwilhelm.de](mailto:anfrage@paulwilhelm.de)> @@ -172,7 +182,6 @@ If this software has been helpful to you in some way or another, please let me a ToDo ---- -* Add CUDA backend for Biot-Savart implementation. * Add installation instructions for Windows, ensure consistent PyQt5 look and feel. * Add support for modeling of core material saturation and hysteresis effects. * Add support for selective display over a portion of the metric range, in order to get a kind of iso-contour display. @@ -182,7 +191,7 @@ Video ----- A very short demo of MagnetiCalc in action: -[![Magnetic Field Calculation with Python (MagnetiCalc)](https://raw.githubusercontent.com/shredEngineer/MagnetiCalc/master/docs/Video-Thumb.png)](https://www.youtube.com/watch?v=B60dk3BZO0c) +[![Magnetic Field Calculation with Python (MagnetiCalc)](https://raw.githubusercontent.com/shredEngineer/MagnetiCalc/master/docs/Video-Thumb.png)](https://www.youtube.com/watch?v=d3QKdYfOuvQ) Links ----- diff --git a/docs/Video-Thumb.png b/docs/Video-Thumb.png index 394b089..6c05590 100644 Binary files a/docs/Video-Thumb.png and b/docs/Video-Thumb.png differ diff --git a/docs/classIndex.html b/docs/classIndex.html index 0a82342..99a2a24 100644 --- a/docs/classIndex.html +++ b/docs/classIndex.html @@ -27,7 +27,7 @@

Class Hierarchy

+
  • magneticalc.Assert_Dialog.Assert_Dialog - Assert_Dialog class.
  • magneticalc.BiotSavart_CUDA.BiotSavart_CUDA - Implements the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field).
  • magneticalc.BiotSavart_JIT.BiotSavart_JIT - Implements the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field).
  • magneticalc.Config.Config - Config class.
  • magneticalc.Constants.Constants - Constants class.
  • magneticalc.Constraint.Constraint - Constraint class.
  • magneticalc.Debug.Debug - Debug class.
  • magneticalc.Field.Field - Field class.
  • magneticalc.Menu.Menu - Menu class.
  • magneticalc.Metric.Metric - Provides different metrics, used for mapping some field vector properties to some color and alpha range.
  • magneticalc.Metric_Presets.Metric_Presets - Metric_Presets class.
  • magneticalc.Model.Model - Model class. The model maintains a strict hierarchy of dependencies: parameters > metric > field > sampling volume > wire When a lower module's data changed, all higher modules are invalidated (i.e. have their calculation results reset).
  • magneticalc.ModelAccess.ModelAccess - Model access class.
  • magneticalc.Parameters.Parameters - Parameters class.
  • magneticalc.Perspective_Presets.Perspective_Presets - Perspective_Presets class.
  • magneticalc.SamplingVolume.SamplingVolume - Sampling volume class.
  • magneticalc.Statusbar.Statusbar - Statusbar class.
  • magneticalc.Theme.Theme - Theme class.
  • magneticalc.Version.Version - Version class.
  • magneticalc.Wire.Wire - Wire class.
  • magneticalc.Wire_Presets.Wire_Presets - Wire_Presets class.
  • PyQt5.QtCore.QThread
  • PyQt5.QtWidgets.QDialog
  • PyQt5.QtWidgets.QFrame
  • PyQt5.QtWidgets.QGroupBox
  • PyQt5.QtWidgets.QMainWindow
  • PyQt5.QtWidgets.QScrollArea
  • PyQt5.QtWidgets.QSlider
  • PyQt5.QtWidgets.QTableWidget
  • PyQt5.QtWidgets.QWidget
  • vispy.scene.SceneCanvas
  • diff --git a/docs/index.html b/docs/index.html index e78cedb..732fd82 100644 --- a/docs/index.html +++ b/docs/index.html @@ -52,7 +52,7 @@

    This documentation was automatically generated by pydoctor - at 2020-11-14 08:36:11. + at 2020-11-17 02:29:47.

    diff --git a/docs/magneticalc.About_Dialog.About_Dialog.html b/docs/magneticalc.About_Dialog.About_Dialog.html index 1658e75..a4a7593 100644 --- a/docs/magneticalc.About_Dialog.About_Dialog.html +++ b/docs/magneticalc.About_Dialog.About_Dialog.html @@ -193,7 +193,7 @@

    magneticalc.About_Dialog.About_Dialog(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.About_Dialog.html b/docs/magneticalc.About_Dialog.html index b282485..89f70fd 100644 --- a/docs/magneticalc.About_Dialog.html +++ b/docs/magneticalc.About_Dialog.html @@ -66,7 +66,7 @@

    magneticalc.About_Dialog module documenta
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Assert_Dialog.Assert_Dialog.html b/docs/magneticalc.Assert_Dialog.Assert_Dialog.html index bcd97cf..09dc381 100644 --- a/docs/magneticalc.Assert_Dialog.Assert_Dialog.html +++ b/docs/magneticalc.Assert_Dialog.Assert_Dialog.html @@ -217,7 +217,7 @@

    magneticalc.Assert_Dialog.Assert_Dialog cl
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Assert_Dialog.html b/docs/magneticalc.Assert_Dialog.html index e4bf1cb..845e3b8 100644 --- a/docs/magneticalc.Assert_Dialog.html +++ b/docs/magneticalc.Assert_Dialog.html @@ -66,7 +66,7 @@

    magneticalc.Assert_Dialog module document
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.BiotSavart_CUDA.BiotSavart_CUDA.html b/docs/magneticalc.BiotSavart_CUDA.BiotSavart_CUDA.html new file mode 100644 index 0000000..c6ca1bf --- /dev/null +++ b/docs/magneticalc.BiotSavart_CUDA.BiotSavart_CUDA.html @@ -0,0 +1,333 @@ + + + + + magneticalc.BiotSavart_CUDA.BiotSavart_CUDA : API documentation + + + + + + + + + +
    + +
    + +
    + + + +
    + +
    + +
    +

    Implements the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field).

    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Method__init__Initializes the class attributes.
    Instance Variabletotal_limitedUndocumented
    Static MethodworkerApplies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) for all sampling volume points.
    Methodget_resultCalculates the field at every point of the sampling volume.
    Instance Variable_typeUndocumented
    Instance Variable_distance_limitUndocumented
    Instance Variable_length_scaleUndocumented
    Instance Variable_dcUndocumented
    Instance Variable_current_elementsUndocumented
    Instance Variable_sampling_volume_pointsUndocumented
    Instance Variable_sampling_volume_permeabilitiesUndocumented
    Instance Variable_progress_callbackUndocumented
    + + + +
    + +
    + +
    + + + + + + + +
    + + def + __init__(self, _type, distance_limit, length_scale, dc, current_elements, sampling_volume_points, sampling_volume_permeabilities, progress_callback): + +
    +
    + + +

    Initializes the class attributes.

    Parameters_typeField type (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)
    dcWire current (A)
    current_elementsOrdered list of current elements (tuples: (element center, element direction))
    sampling_volume_pointsOrdered list of sampling volume points
    sampling_volume_permeabilitiesOrdered list of sampling volume's relative permeabilities µ_r
    progress_callbackProgress callback
    +
    +
    + + + + + + + +
    + _type = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _distance_limit = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _length_scale = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _dc = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _current_elements = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _sampling_volume_points = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _sampling_volume_permeabilities = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + _progress_callback = + +
    +
    + +
    Undocumented
    +
    +
    + + + + + + + +
    + total_limited = + +
    +
    + +
    Undocumented
    (type: int) +
    +
    + + + + + + + +
    + @staticmethod
    @cuda.jit
    + def + worker(_type, distance_limit, length_scale, element_centers, element_directions, sampling_volume_points, sampling_volume_permeabilities, field_vectors, total_limited): + +
    +
    + + +

    Applies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) for all sampling volume points.

    Parameters_typeField type (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)
    element_centersOrdered list of current elements centers
    element_directionsOrdered list of current elements directions
    sampling_volume_pointsSampling volume points
    sampling_volume_permeabilitiesOrdered list of sampling volume's relative permeabilities µ_r
    field_vectorsField vectors (output array)
    total_limitedTotal number of limited points (output array with only one element)
    +
    +
    + + + + + + + +
    + + def + get_result(self): + +
    +
    + + +

    Calculates the field at every point of the sampling volume.

    Returns(Total number of limited points, field) (currently non-interruptable)
    +
    +
    + +
    +
    + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. +
    + +
    + + + + + \ No newline at end of file diff --git a/docs/magneticalc.BiotSavart_CUDA.html b/docs/magneticalc.BiotSavart_CUDA.html new file mode 100644 index 0000000..8576b12 --- /dev/null +++ b/docs/magneticalc.BiotSavart_CUDA.html @@ -0,0 +1,77 @@ + + + + + magneticalc.BiotSavart_CUDA : API documentation + + + + + + + + + +
    + +
    + +
    + + + +
    + +
    + +
    +

    BiotSavart_CUDA module.

    +
    + +
    + + + + + + + + +
    ClassBiotSavart_CUDAImplements the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field).
    + + + +
    + +
    + + + +
    +
    + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. +
    + +
    + + + + + \ No newline at end of file diff --git a/docs/magneticalc.BiotSavart_JIT.BiotSavart_JIT.html b/docs/magneticalc.BiotSavart_JIT.BiotSavart_JIT.html index 71c7c9e..be78d08 100644 --- a/docs/magneticalc.BiotSavart_JIT.BiotSavart_JIT.html +++ b/docs/magneticalc.BiotSavart_JIT.BiotSavart_JIT.html @@ -46,7 +46,7 @@

    magneticalc.BiotSavart_JIT.BiotSavart_JIT
    - +
    @@ -62,7 +62,7 @@

    magneticalc.BiotSavart_JIT.BiotSavart_JIT

    - + @@ -297,7 +297,7 @@

    magneticalc.BiotSavart_JIT.BiotSavart_JIT
    -

    Applies the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field) for a single sampling volume point.

    Static Method workerApplies the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field) for a single sampling volume point.Applies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) for a single sampling volume point.
    Method
    Parameters_typeField type (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)
    current_elementsOrdered list of current elements (tuples: (element center, element direction))
    sampling_volume_pointSampling volume point
    Returns(Total number of limited points, vector)
    +

    Applies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) for a single sampling volume point.

    Parameters_typeField type (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)
    current_elementsOrdered list of current elements (tuples: (element center, element direction))
    sampling_volume_pointSampling volume point
    Returns(Total number of limited points, vector)
    @@ -322,7 +322,7 @@

    magneticalc.BiotSavart_JIT.BiotSavart_JIT

    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.BiotSavart_JIT.html b/docs/magneticalc.BiotSavart_JIT.html index 3bb0e43..bde7a30 100644 --- a/docs/magneticalc.BiotSavart_JIT.html +++ b/docs/magneticalc.BiotSavart_JIT.html @@ -46,7 +46,7 @@

    magneticalc.BiotSavart_JIT module documen
    - +
    @@ -66,7 +66,7 @@

    magneticalc.BiotSavart_JIT module documen
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.CalculationThread.CalculationThread.html b/docs/magneticalc.CalculationThread.CalculationThread.html index f1862a3..8997089 100644 --- a/docs/magneticalc.CalculationThread.CalculationThread.html +++ b/docs/magneticalc.CalculationThread.CalculationThread.html @@ -46,7 +46,7 @@

    magneticalc.CalculationThread.CalculationThread(
    -

    +
    @@ -316,7 +316,7 @@

    magneticalc.CalculationThread.CalculationThread(
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.CalculationThread.html b/docs/magneticalc.CalculationThread.html index 8dbff01..46e6f1b 100644 --- a/docs/magneticalc.CalculationThread.html +++ b/docs/magneticalc.CalculationThread.html @@ -46,7 +46,7 @@

    magneticalc.CalculationThread module docu
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.CalculationThread module docu
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Config.Config.html b/docs/magneticalc.Config.Config.html index f918c26..dcf4ae7 100644 --- a/docs/magneticalc.Config.Config.html +++ b/docs/magneticalc.Config.Config.html @@ -46,7 +46,7 @@

    magneticalc.Config.Config class documentat
    -

    +
    @@ -1111,7 +1111,7 @@

    magneticalc.Config.Config class documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Config.html b/docs/magneticalc.Config.html index fad6a3a..a29cbc5 100644 --- a/docs/magneticalc.Config.html +++ b/docs/magneticalc.Config.html @@ -46,7 +46,7 @@

    magneticalc.Config module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Config module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constants.Constants.html b/docs/magneticalc.Constants.Constants.html index 13aedc6..0c0c2fb 100644 --- a/docs/magneticalc.Constants.Constants.html +++ b/docs/magneticalc.Constants.Constants.html @@ -46,7 +46,7 @@

    magneticalc.Constants.Constants class docu
    -

    +
    @@ -82,7 +82,7 @@

    magneticalc.Constants.Constants class docu
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constants.html b/docs/magneticalc.Constants.html index 1bbcbc7..8dc505d 100644 --- a/docs/magneticalc.Constants.html +++ b/docs/magneticalc.Constants.html @@ -46,7 +46,7 @@

    magneticalc.Constants module documentatio
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Constants module documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constraint.Constraint.html b/docs/magneticalc.Constraint.Constraint.html index ebebc2a..37b0a17 100644 --- a/docs/magneticalc.Constraint.Constraint.html +++ b/docs/magneticalc.Constraint.Constraint.html @@ -46,7 +46,7 @@

    magneticalc.Constraint.Constraint class do
    -

    +
    @@ -298,7 +298,7 @@

    magneticalc.Constraint.Constraint class do
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constraint.html b/docs/magneticalc.Constraint.html index e119320..b6f024d 100644 --- a/docs/magneticalc.Constraint.html +++ b/docs/magneticalc.Constraint.html @@ -46,7 +46,7 @@

    magneticalc.Constraint module documentati
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Constraint module documentati
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constraint_Editor.Constraint_Editor.html b/docs/magneticalc.Constraint_Editor.Constraint_Editor.html index 931d167..1f1422e 100644 --- a/docs/magneticalc.Constraint_Editor.Constraint_Editor.html +++ b/docs/magneticalc.Constraint_Editor.Constraint_Editor.html @@ -46,7 +46,7 @@

    magneticalc.Constraint_Editor.Constraint_Editor(
    -

    +
    @@ -424,7 +424,7 @@

    magneticalc.Constraint_Editor.Constraint_Editor(
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Constraint_Editor.html b/docs/magneticalc.Constraint_Editor.html index 742c333..26cd0d0 100644 --- a/docs/magneticalc.Constraint_Editor.html +++ b/docs/magneticalc.Constraint_Editor.html @@ -46,7 +46,7 @@

    magneticalc.Constraint_Editor module docu
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Constraint_Editor module docu
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Debug.Debug.html b/docs/magneticalc.Debug.Debug.html index ba3a824..7dc0e56 100644 --- a/docs/magneticalc.Debug.Debug.html +++ b/docs/magneticalc.Debug.Debug.html @@ -46,7 +46,7 @@

    magneticalc.Debug.Debug class documentatio
    -

    +
    @@ -106,7 +106,7 @@

    magneticalc.Debug.Debug class documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Debug.html b/docs/magneticalc.Debug.html index 5e42f01..76a9c4d 100644 --- a/docs/magneticalc.Debug.html +++ b/docs/magneticalc.Debug.html @@ -46,7 +46,7 @@

    magneticalc.Debug module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Debug module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Display_Widget.Display_Widget.html b/docs/magneticalc.Display_Widget.Display_Widget.html index b9157ca..fd2861f 100644 --- a/docs/magneticalc.Display_Widget.Display_Widget.html +++ b/docs/magneticalc.Display_Widget.Display_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Display_Widget.Display_Widget( -

    +
    @@ -159,7 +159,7 @@

    magneticalc.Display_Widget.Display_Widget( Inherited from Groupbox:

    -

    +
    @@ -556,7 +556,7 @@

    magneticalc.Display_Widget.Display_Widget(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Display_Widget.html b/docs/magneticalc.Display_Widget.html index b70bf82..8acd0af 100644 --- a/docs/magneticalc.Display_Widget.html +++ b/docs/magneticalc.Display_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Display_Widget module documen
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Display_Widget module documen
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Field.Field.html b/docs/magneticalc.Field.Field.html index 8c9a63b..c1795cb 100644 --- a/docs/magneticalc.Field.Field.html +++ b/docs/magneticalc.Field.Field.html @@ -46,7 +46,7 @@

    magneticalc.Field.Field class documentatio
    -

    +
    @@ -122,7 +122,7 @@

    magneticalc.Field.Field class documentatio

    - +
    Instance Variable _vectorsUndocumenteddef print_array(array): return "np.array([" + ",".join([f"[{point[0]},{point[1]},{point[2]}]" for point in array]) + "])"
    @@ -149,7 +149,7 @@

    magneticalc.Field.Field class documentatio
    -

    Initializes an empty field.

    ParametersbackendBackend index (0: JIT/Numba; 1: JIT/Numba + CUDA)
    _typeField type to display (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)
    +

    Initializes an empty field.

    ParametersbackendBackend index (0: JIT; 1: JIT + CUDA)
    _typeField type to display (0: A-field; 1: B-field)
    distance_limitDistance limit (mitigating divisions by zero)
    length_scaleLength scale (m)

    @@ -245,7 +245,7 @@

    magneticalc.Field.Field class documentatio

    -
    Undocumented
    +
    @@ -378,7 +378,7 @@

    magneticalc.Field.Field class documentatio
    -

    Recalculates field vectors.

    ParameterswireWire
    sampling_volumeSampling volume
    progress_callbackProgress callback
    num_coresNumber of cores to use for multiprocessing
    ReturnsTrue if successful, False if interrupted
    +

    Recalculates field vectors.

    ParameterswireWire
    sampling_volumeSampling volume
    progress_callbackProgress callback
    num_coresNumber of cores to use for multiprocessing
    ReturnsTrue if successful, False if interrupted (CUDA backend currently not interruptable)

    @@ -403,7 +403,7 @@

    magneticalc.Field.Field class documentatio

    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Field.html b/docs/magneticalc.Field.html index 463ec46..d48381e 100644 --- a/docs/magneticalc.Field.html +++ b/docs/magneticalc.Field.html @@ -46,7 +46,7 @@

    magneticalc.Field module documentation
    - +
    @@ -66,7 +66,7 @@

    magneticalc.Field module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Field_Widget.Field_Widget.html b/docs/magneticalc.Field_Widget.Field_Widget.html index e377055..bf17df9 100644 --- a/docs/magneticalc.Field_Widget.Field_Widget.html +++ b/docs/magneticalc.Field_Widget.Field_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Field_Widget.Field_Widget( -

    +
    @@ -114,7 +114,7 @@

    magneticalc.Field_Widget.Field_Widget( Inherited from Groupbox:

    -

    +
    @@ -361,7 +361,7 @@

    magneticalc.Field_Widget.Field_Widget(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Field_Widget.html b/docs/magneticalc.Field_Widget.html index 9793534..c5149c1 100644 --- a/docs/magneticalc.Field_Widget.html +++ b/docs/magneticalc.Field_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Field_Widget module documenta
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Field_Widget module documenta
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.GUI.GUI.html b/docs/magneticalc.GUI.GUI.html index adbe00e..09d5f84 100644 --- a/docs/magneticalc.GUI.GUI.html +++ b/docs/magneticalc.GUI.GUI.html @@ -46,7 +46,7 @@

    magneticalc.GUI.GUI( -

    +
    @@ -712,7 +712,7 @@

    magneticalc.GUI.GUI(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.GUI.html b/docs/magneticalc.GUI.html index 20c71ec..5636894 100644 --- a/docs/magneticalc.GUI.html +++ b/docs/magneticalc.GUI.html @@ -46,7 +46,7 @@

    magneticalc.GUI module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.GUI module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Groupbox.Groupbox.html b/docs/magneticalc.Groupbox.Groupbox.html index 51572d2..c924daf 100644 --- a/docs/magneticalc.Groupbox.Groupbox.html +++ b/docs/magneticalc.Groupbox.Groupbox.html @@ -46,7 +46,7 @@

    magneticalc.Groupbox.Groupbox( -

    +
    @@ -199,7 +199,7 @@

    magneticalc.Groupbox.Groupbox(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Groupbox.html b/docs/magneticalc.Groupbox.html index 0158e99..0bc4520 100644 --- a/docs/magneticalc.Groupbox.html +++ b/docs/magneticalc.Groupbox.html @@ -46,7 +46,7 @@

    magneticalc.Groupbox module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Groupbox module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.HLine.HLine.html b/docs/magneticalc.HLine.HLine.html index 9e2f229..a67184f 100644 --- a/docs/magneticalc.HLine.HLine.html +++ b/docs/magneticalc.HLine.HLine.html @@ -46,7 +46,7 @@

    magneticalc.HLine.HLine( -

    +
    @@ -106,7 +106,7 @@

    magneticalc.HLine.HLine(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.HLine.html b/docs/magneticalc.HLine.html index 7b8df06..5c5e811 100644 --- a/docs/magneticalc.HLine.html +++ b/docs/magneticalc.HLine.html @@ -46,7 +46,7 @@

    magneticalc.HLine module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.HLine module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.IconLabel.IconLabel.html b/docs/magneticalc.IconLabel.IconLabel.html index a3373dd..cd41cf3 100644 --- a/docs/magneticalc.IconLabel.IconLabel.html +++ b/docs/magneticalc.IconLabel.IconLabel.html @@ -46,7 +46,7 @@

    magneticalc.IconLabel.IconLabel( -

    +
    @@ -220,7 +220,7 @@

    magneticalc.IconLabel.IconLabel(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.IconLabel.html b/docs/magneticalc.IconLabel.html index 738f105..ac7c639 100644 --- a/docs/magneticalc.IconLabel.html +++ b/docs/magneticalc.IconLabel.html @@ -46,7 +46,7 @@

    magneticalc.IconLabel module documentatio
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.IconLabel module documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Menu.Menu.html b/docs/magneticalc.Menu.Menu.html index e162dc9..9bc111a 100644 --- a/docs/magneticalc.Menu.Menu.html +++ b/docs/magneticalc.Menu.Menu.html @@ -46,7 +46,7 @@

    magneticalc.Menu.Menu class documentation<
    -

    +
    @@ -126,7 +126,7 @@

    magneticalc.Menu.Menu class documentation<
    -
    Undocumented
    (type: List[str]) +
    Undocumented
    @@ -310,7 +310,7 @@

    magneticalc.Menu.Menu class documentation<

    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Menu.html b/docs/magneticalc.Menu.html index 86e0584..192ab64 100644 --- a/docs/magneticalc.Menu.html +++ b/docs/magneticalc.Menu.html @@ -46,7 +46,7 @@

    magneticalc.Menu module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Menu module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Metric.Metric.html b/docs/magneticalc.Metric.Metric.html index 02602d7..995ec24 100644 --- a/docs/magneticalc.Metric.Metric.html +++ b/docs/magneticalc.Metric.Metric.html @@ -46,7 +46,7 @@

    magneticalc.Metric.Metric class documentat
    -

    +
    @@ -451,7 +451,7 @@

    magneticalc.Metric.Metric class documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Metric.html b/docs/magneticalc.Metric.html index 9359b41..a2afc7d 100644 --- a/docs/magneticalc.Metric.html +++ b/docs/magneticalc.Metric.html @@ -46,7 +46,7 @@

    magneticalc.Metric module documentation
    -

    +
    @@ -138,7 +138,7 @@

    magneticalc.Metric module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Metric_Presets.Metric_Presets.html b/docs/magneticalc.Metric_Presets.Metric_Presets.html index f6f4a36..004ce94 100644 --- a/docs/magneticalc.Metric_Presets.Metric_Presets.html +++ b/docs/magneticalc.Metric_Presets.Metric_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Metric_Presets.Metric_Presets
    -

    +
    @@ -463,7 +463,7 @@

    magneticalc.Metric_Presets.Metric_Presets
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Metric_Presets.html b/docs/magneticalc.Metric_Presets.html index 06d77c1..fa0adda 100644 --- a/docs/magneticalc.Metric_Presets.html +++ b/docs/magneticalc.Metric_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Metric_Presets module documen
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Metric_Presets module documen
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Metric_Widget.Metric_Widget.html b/docs/magneticalc.Metric_Widget.Metric_Widget.html index 490ae8a..e44d4b8 100644 --- a/docs/magneticalc.Metric_Widget.Metric_Widget.html +++ b/docs/magneticalc.Metric_Widget.Metric_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Metric_Widget.Metric_Widget( -

    +
    @@ -144,7 +144,7 @@

    magneticalc.Metric_Widget.Metric_Widget( Inherited from Groupbox:

    -

    +
    @@ -484,7 +484,7 @@

    magneticalc.Metric_Widget.Metric_Widget(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Metric_Widget.html b/docs/magneticalc.Metric_Widget.html index 93d7045..90d65af 100644 --- a/docs/magneticalc.Metric_Widget.html +++ b/docs/magneticalc.Metric_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Metric_Widget module document
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Metric_Widget module document
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Model.Model.html b/docs/magneticalc.Model.Model.html index ed3b062..330307a 100644 --- a/docs/magneticalc.Model.Model.html +++ b/docs/magneticalc.Model.Model.html @@ -46,7 +46,7 @@

    magneticalc.Model.Model class documentatio
    -

    +
    @@ -763,7 +763,7 @@

    magneticalc.Model.Model class documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Model.html b/docs/magneticalc.Model.html index cf7d731..3d0e9c2 100644 --- a/docs/magneticalc.Model.html +++ b/docs/magneticalc.Model.html @@ -46,7 +46,7 @@

    magneticalc.Model module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Model module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.ModelAccess.ModelAccess.html b/docs/magneticalc.ModelAccess.ModelAccess.html index 945bc31..df5a7c2 100644 --- a/docs/magneticalc.ModelAccess.ModelAccess.html +++ b/docs/magneticalc.ModelAccess.ModelAccess.html @@ -46,7 +46,7 @@

    magneticalc.ModelAccess.ModelAccess class
    -

    +
    @@ -217,7 +217,7 @@

    magneticalc.ModelAccess.ModelAccess class
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.ModelAccess.html b/docs/magneticalc.ModelAccess.html index 8c2187a..04f7c6a 100644 --- a/docs/magneticalc.ModelAccess.html +++ b/docs/magneticalc.ModelAccess.html @@ -46,7 +46,7 @@

    magneticalc.ModelAccess module documentat
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.ModelAccess module documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Parameters.Parameters.html b/docs/magneticalc.Parameters.Parameters.html index 2722ef1..49abe24 100644 --- a/docs/magneticalc.Parameters.Parameters.html +++ b/docs/magneticalc.Parameters.Parameters.html @@ -46,7 +46,7 @@

    magneticalc.Parameters.Parameters class do
    -

    +
    @@ -388,7 +388,7 @@

    magneticalc.Parameters.Parameters class do
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Parameters.html b/docs/magneticalc.Parameters.html index 4f6b81e..fefc4ec 100644 --- a/docs/magneticalc.Parameters.html +++ b/docs/magneticalc.Parameters.html @@ -46,7 +46,7 @@

    magneticalc.Parameters module documentati
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Parameters module documentati
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Parameters_Widget.Parameters_Widget.html b/docs/magneticalc.Parameters_Widget.Parameters_Widget.html index 299d48e..e8f4a15 100644 --- a/docs/magneticalc.Parameters_Widget.Parameters_Widget.html +++ b/docs/magneticalc.Parameters_Widget.Parameters_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Parameters_Widget.Parameters_Widget(
    -

    +
    @@ -114,7 +114,7 @@

    magneticalc.Parameters_Widget.Parameters_Widget( Inherited from Groupbox:

    -

    +
    @@ -352,7 +352,7 @@

    magneticalc.Parameters_Widget.Parameters_Widget(
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Parameters_Widget.html b/docs/magneticalc.Parameters_Widget.html index c2a3b5f..856cf3d 100644 --- a/docs/magneticalc.Parameters_Widget.html +++ b/docs/magneticalc.Parameters_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Parameters_Widget module docu
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Parameters_Widget module docu
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Perspective_Presets.Perspective_Presets.html b/docs/magneticalc.Perspective_Presets.Perspective_Presets.html index 66cd1ed..f8f85d9 100644 --- a/docs/magneticalc.Perspective_Presets.Perspective_Presets.html +++ b/docs/magneticalc.Perspective_Presets.Perspective_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Perspective_Presets.Perspective_Presets
    -

    +
    @@ -190,7 +190,7 @@

    magneticalc.Perspective_Presets.Perspective_Presets
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Perspective_Presets.html b/docs/magneticalc.Perspective_Presets.html index 8cff2b1..e796a40 100644 --- a/docs/magneticalc.Perspective_Presets.html +++ b/docs/magneticalc.Perspective_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Perspective_Presets module do
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Perspective_Presets module do
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Perspective_Widget.Perspective_Widget.html b/docs/magneticalc.Perspective_Widget.Perspective_Widget.html index c1dae7c..1b5f71d 100644 --- a/docs/magneticalc.Perspective_Widget.Perspective_Widget.html +++ b/docs/magneticalc.Perspective_Widget.Perspective_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Perspective_Widget.Perspective_Widget(
    -

    +
    @@ -69,7 +69,7 @@

    magneticalc.Perspective_Widget.Perspective_Widget( Inherited from Groupbox:

    -

    +
    @@ -163,7 +163,7 @@

    magneticalc.Perspective_Widget.Perspective_Widget(
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Perspective_Widget.html b/docs/magneticalc.Perspective_Widget.html index 46a918c..94da360 100644 --- a/docs/magneticalc.Perspective_Widget.html +++ b/docs/magneticalc.Perspective_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Perspective_Widget module doc
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Perspective_Widget module doc
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SamplingVolume.SamplingVolume.html b/docs/magneticalc.SamplingVolume.SamplingVolume.html index 6e017cd..2586b11 100644 --- a/docs/magneticalc.SamplingVolume.SamplingVolume.html +++ b/docs/magneticalc.SamplingVolume.SamplingVolume.html @@ -46,7 +46,7 @@

    magneticalc.SamplingVolume.SamplingVolume
    -

    +
    @@ -517,7 +517,7 @@

    magneticalc.SamplingVolume.SamplingVolume
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SamplingVolume.html b/docs/magneticalc.SamplingVolume.html index 271f8e3..7f64a57 100644 --- a/docs/magneticalc.SamplingVolume.html +++ b/docs/magneticalc.SamplingVolume.html @@ -46,7 +46,7 @@

    magneticalc.SamplingVolume module documen
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.SamplingVolume module documen
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.html b/docs/magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.html index 6b4bd1d..67207ec 100644 --- a/docs/magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.html +++ b/docs/magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.html @@ -46,7 +46,7 @@

    magneticalc.SamplingVolume_Widget.SamplingVolume_Widget(
    -

    +
    @@ -149,7 +149,7 @@

    magneticalc.SamplingVolume_Widget.SamplingVolume_Widget(

    Inherited from Groupbox:

    -

    +
    @@ -517,7 +517,7 @@

    magneticalc.SamplingVolume_Widget.SamplingVolume_Widget(
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SamplingVolume_Widget.html b/docs/magneticalc.SamplingVolume_Widget.html index 3539105..85b68f3 100644 --- a/docs/magneticalc.SamplingVolume_Widget.html +++ b/docs/magneticalc.SamplingVolume_Widget.html @@ -46,7 +46,7 @@

    magneticalc.SamplingVolume_Widget module
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.SamplingVolume_Widget module
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SidebarLeft.SidebarLeft.html b/docs/magneticalc.SidebarLeft.SidebarLeft.html index 7433c93..0ce186d 100644 --- a/docs/magneticalc.SidebarLeft.SidebarLeft.html +++ b/docs/magneticalc.SidebarLeft.SidebarLeft.html @@ -46,7 +46,7 @@

    magneticalc.SidebarLeft.SidebarLeft( -

    +
    @@ -190,7 +190,7 @@

    magneticalc.SidebarLeft.SidebarLeft(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.SidebarLeft.html b/docs/magneticalc.SidebarLeft.html index bd034b2..5056ed4 100644 --- a/docs/magneticalc.SidebarLeft.html +++ b/docs/magneticalc.SidebarLeft.html @@ -46,7 +46,7 @@

    magneticalc.SidebarLeft module documentat
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.SidebarLeft module documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SidebarRight.SidebarRight.html b/docs/magneticalc.SidebarRight.SidebarRight.html index c0fd105..f5a1299 100644 --- a/docs/magneticalc.SidebarRight.SidebarRight.html +++ b/docs/magneticalc.SidebarRight.SidebarRight.html @@ -46,7 +46,7 @@

    magneticalc.SidebarRight.SidebarRight( -

    +
    @@ -253,7 +253,7 @@

    magneticalc.SidebarRight.SidebarRight(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.SidebarRight.html b/docs/magneticalc.SidebarRight.html index 5d25f88..9de9713 100644 --- a/docs/magneticalc.SidebarRight.html +++ b/docs/magneticalc.SidebarRight.html @@ -46,7 +46,7 @@

    magneticalc.SidebarRight module documenta
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.SidebarRight module documenta
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.SliderFloat.SliderFloat.html b/docs/magneticalc.SliderFloat.SliderFloat.html index 8f3a39f..830f044 100644 --- a/docs/magneticalc.SliderFloat.SliderFloat.html +++ b/docs/magneticalc.SliderFloat.SliderFloat.html @@ -46,7 +46,7 @@

    magneticalc.SliderFloat.SliderFloat( -

    +
    @@ -178,7 +178,7 @@

    magneticalc.SliderFloat.SliderFloat(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.SliderFloat.html b/docs/magneticalc.SliderFloat.html index b6f7a64..4018955 100644 --- a/docs/magneticalc.SliderFloat.html +++ b/docs/magneticalc.SliderFloat.html @@ -46,7 +46,7 @@

    magneticalc.SliderFloat module documentat
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.SliderFloat module documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Statusbar.Statusbar.html b/docs/magneticalc.Statusbar.Statusbar.html index 933fcda..0a258d6 100644 --- a/docs/magneticalc.Statusbar.Statusbar.html +++ b/docs/magneticalc.Statusbar.Statusbar.html @@ -46,7 +46,7 @@

    magneticalc.Statusbar.Statusbar class docu
    -

    +
    @@ -424,7 +424,7 @@

    magneticalc.Statusbar.Statusbar class docu
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Statusbar.html b/docs/magneticalc.Statusbar.html index 00adcb1..246f8e1 100644 --- a/docs/magneticalc.Statusbar.html +++ b/docs/magneticalc.Statusbar.html @@ -46,7 +46,7 @@

    magneticalc.Statusbar module documentatio
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Statusbar module documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Table.Table.html b/docs/magneticalc.Table.Table.html index 35b2fd5..49adb0b 100644 --- a/docs/magneticalc.Table.Table.html +++ b/docs/magneticalc.Table.Table.html @@ -46,7 +46,7 @@

    magneticalc.Table.Table( -

    +
    @@ -772,7 +772,7 @@

    magneticalc.Table.Table(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Table.html b/docs/magneticalc.Table.html index 7c57346..57d9c6c 100644 --- a/docs/magneticalc.Table.html +++ b/docs/magneticalc.Table.html @@ -46,7 +46,7 @@

    magneticalc.Table module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Table module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Theme.Theme.html b/docs/magneticalc.Theme.Theme.html index c301879..010217e 100644 --- a/docs/magneticalc.Theme.Theme.html +++ b/docs/magneticalc.Theme.Theme.html @@ -46,7 +46,7 @@

    magneticalc.Theme.Theme class documentatio
    -

    +
    @@ -145,7 +145,7 @@

    magneticalc.Theme.Theme class documentatio
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Theme.html b/docs/magneticalc.Theme.html index 3089c1c..a53cb09 100644 --- a/docs/magneticalc.Theme.html +++ b/docs/magneticalc.Theme.html @@ -46,7 +46,7 @@

    magneticalc.Theme module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Theme module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Usage_Dialog.Usage_Dialog.html b/docs/magneticalc.Usage_Dialog.Usage_Dialog.html index cf7c0ec..9f25ddc 100644 --- a/docs/magneticalc.Usage_Dialog.Usage_Dialog.html +++ b/docs/magneticalc.Usage_Dialog.Usage_Dialog.html @@ -46,7 +46,7 @@

    magneticalc.Usage_Dialog.Usage_Dialog( -

    +
    @@ -172,7 +172,7 @@

    magneticalc.Usage_Dialog.Usage_Dialog(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Usage_Dialog.html b/docs/magneticalc.Usage_Dialog.html index e403f7a..87d9470 100644 --- a/docs/magneticalc.Usage_Dialog.html +++ b/docs/magneticalc.Usage_Dialog.html @@ -46,7 +46,7 @@

    magneticalc.Usage_Dialog module documenta
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Usage_Dialog module documenta
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Version.Version.html b/docs/magneticalc.Version.Version.html index 902c23c..731727a 100644 --- a/docs/magneticalc.Version.Version.html +++ b/docs/magneticalc.Version.Version.html @@ -46,7 +46,7 @@

    magneticalc.Version.Version class document
    -

    +
    @@ -124,7 +124,7 @@

    magneticalc.Version.Version class document
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Version.html b/docs/magneticalc.Version.html index 8d0741b..35d92f4 100644 --- a/docs/magneticalc.Version.html +++ b/docs/magneticalc.Version.html @@ -46,7 +46,7 @@

    magneticalc.Version module documentation<
    -

    +
    @@ -87,7 +87,7 @@

    magneticalc.Version module documentation<
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.VispyCanvas.VispyCanvas.html b/docs/magneticalc.VispyCanvas.VispyCanvas.html index 1a6ee23..2476c3d 100644 --- a/docs/magneticalc.VispyCanvas.VispyCanvas.html +++ b/docs/magneticalc.VispyCanvas.VispyCanvas.html @@ -46,7 +46,7 @@

    magneticalc.VispyCanvas.VispyCanvas( -

    +
    @@ -1117,7 +1117,7 @@

    magneticalc.VispyCanvas.VispyCanvas(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.VispyCanvas.html b/docs/magneticalc.VispyCanvas.html index 8adecc0..b395de5 100644 --- a/docs/magneticalc.VispyCanvas.html +++ b/docs/magneticalc.VispyCanvas.html @@ -46,7 +46,7 @@

    magneticalc.VispyCanvas module documentat
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.VispyCanvas module documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Wire.Wire.html b/docs/magneticalc.Wire.Wire.html index 10bbc75..3c90b09 100644 --- a/docs/magneticalc.Wire.Wire.html +++ b/docs/magneticalc.Wire.Wire.html @@ -46,7 +46,7 @@

    magneticalc.Wire.Wire class documentation<
    -

    +
    @@ -499,7 +499,7 @@

    magneticalc.Wire.Wire class documentation<
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Wire.html b/docs/magneticalc.Wire.html index 5519c48..934e486 100644 --- a/docs/magneticalc.Wire.html +++ b/docs/magneticalc.Wire.html @@ -46,7 +46,7 @@

    magneticalc.Wire module documentation
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Wire module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Wire_Presets.Wire_Presets.html b/docs/magneticalc.Wire_Presets.Wire_Presets.html index 664012d..9163e8e 100644 --- a/docs/magneticalc.Wire_Presets.Wire_Presets.html +++ b/docs/magneticalc.Wire_Presets.Wire_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Wire_Presets.Wire_Presets clas
    -

    +
    @@ -316,7 +316,7 @@

    magneticalc.Wire_Presets.Wire_Presets clas
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Wire_Presets.html b/docs/magneticalc.Wire_Presets.html index 6726cc9..76d0374 100644 --- a/docs/magneticalc.Wire_Presets.html +++ b/docs/magneticalc.Wire_Presets.html @@ -46,7 +46,7 @@

    magneticalc.Wire_Presets module documenta
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Wire_Presets module documenta
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.Wire_Widget.Wire_Widget.html b/docs/magneticalc.Wire_Widget.Wire_Widget.html index a3479b3..44d5a4f 100644 --- a/docs/magneticalc.Wire_Widget.Wire_Widget.html +++ b/docs/magneticalc.Wire_Widget.Wire_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Wire_Widget.Wire_Widget( -

    +
    @@ -259,7 +259,7 @@

    magneticalc.Wire_Widget.Wire_Widget( Inherited from Groupbox:

    -

    +
    @@ -988,7 +988,7 @@

    magneticalc.Wire_Widget.Wire_Widget(API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47. diff --git a/docs/magneticalc.Wire_Widget.html b/docs/magneticalc.Wire_Widget.html index 60bcaca..c3d1cf2 100644 --- a/docs/magneticalc.Wire_Widget.html +++ b/docs/magneticalc.Wire_Widget.html @@ -46,7 +46,7 @@

    magneticalc.Wire_Widget module documentat
    -

    +
    @@ -66,7 +66,7 @@

    magneticalc.Wire_Widget module documentat
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.__init__.html b/docs/magneticalc.__init__.html index c11b1ed..65c9c6b 100644 --- a/docs/magneticalc.__init__.html +++ b/docs/magneticalc.__init__.html @@ -58,7 +58,7 @@

    magneticalc.__init__ module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.__main__.html b/docs/magneticalc.__main__.html index ff3fc77..9530e82 100644 --- a/docs/magneticalc.__main__.html +++ b/docs/magneticalc.__main__.html @@ -46,7 +46,7 @@

    magneticalc.__main__ module documentation
    -

    +
    @@ -85,7 +85,7 @@

    magneticalc.__main__ module documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/magneticalc.html b/docs/magneticalc.html index 1bf9fa2..2466f5b 100644 --- a/docs/magneticalc.html +++ b/docs/magneticalc.html @@ -60,6 +60,11 @@

    magneticalc package documentationAssert_Dialog module.

    + + + + + @@ -266,7 +271,7 @@

    magneticalc package documentation
    - API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-14 08:36:11. + API Documentation for MagnetiCalc, generated by pydoctor at 2020-11-17 02:29:47.
    diff --git a/docs/moduleIndex.html b/docs/moduleIndex.html index 8138a44..02f3e3b 100644 --- a/docs/moduleIndex.html +++ b/docs/moduleIndex.html @@ -26,7 +26,7 @@

    Module Index

    - + diff --git a/docs/nameIndex.html b/docs/nameIndex.html index a49874d..7ec2807 100644 --- a/docs/nameIndex.html +++ b/docs/nameIndex.html @@ -45,7 +45,7 @@

    A

    B

    @@ -90,7 +90,7 @@

    F

    G

    @@ -198,7 +198,7 @@

    S

    T

    @@ -225,7 +225,7 @@

    V

    W

    @@ -234,7 +234,7 @@

    W

    _

    diff --git a/docs/objects.inv b/docs/objects.inv index 3685221..e1ad5cb 100644 Binary files a/docs/objects.inv and b/docs/objects.inv differ diff --git a/docs/undoccedSummary.html b/docs/undoccedSummary.html index 4d95fa3..77492a7 100644 --- a/docs/undoccedSummary.html +++ b/docs/undoccedSummary.html @@ -27,7 +27,7 @@

    Summary of Undocumented Objects

    +
  • Class Variable - magneticalc.About_Dialog.About_Dialog.DonateURL
  • Class Variable - magneticalc.About_Dialog.About_Dialog.HTML
  • Class Variable - magneticalc.About_Dialog.About_Dialog.Height
  • Class Variable - magneticalc.About_Dialog.About_Dialog.Width
  • Class Variable - magneticalc.Assert_Dialog.Assert_Dialog.Width
  • Instance Variable - magneticalc.Assert_Dialog.Assert_Dialog.assertion
  • Instance Variable - magneticalc.Assert_Dialog.Assert_Dialog.dialog
  • Instance Variable - magneticalc.Assert_Dialog.Assert_Dialog.message
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._current_elements
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._dc
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._distance_limit
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._length_scale
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._progress_callback
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._sampling_volume_permeabilities
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._sampling_volume_points
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA._type
  • Instance Variable - magneticalc.BiotSavart_CUDA.BiotSavart_CUDA.total_limited
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._current_elements
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._dc
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._distance_limit
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._length_scale
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._progress_callback
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._sampling_volume_permeabilities
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._sampling_volume_points
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT._type
  • Instance Variable - magneticalc.BiotSavart_JIT.BiotSavart_JIT.total_limited
  • Instance Variable - magneticalc.CalculationThread.CalculationThread.gui
  • Instance Variable - magneticalc.CalculationThread.CalculationThread.progress_callback
  • Class Variable - magneticalc.CalculationThread.CalculationThread.progress_update
  • Class Variable - magneticalc.Config.Config.CoordinatePrecision
  • Class Variable - magneticalc.Config.Config.DebugGetters
  • Class Variable - magneticalc.Config.Config.Default
  • Class Variable - magneticalc.Config.Config.DefaultPerspectivePreset
  • Class Variable - magneticalc.Config.Config.DefaultWirePreset
  • Class Variable - magneticalc.Config.Config.FloatPrecision
  • Instance Variable - magneticalc.Config.Config._changed_callback
  • Instance Variable - magneticalc.Config.Config._config
  • Instance Variable - magneticalc.Config.Config._filename
  • Instance Variable - magneticalc.Config.Config._synced
  • Class Variable - magneticalc.Constants.Constants.mu_0
  • Class Variable - magneticalc.Constraint.Constraint.Comparison_ID_List
  • Class Variable - magneticalc.Constraint.Constraint.Norm_ID_List
  • Class Variable - magneticalc.Constraint.Constraint.Norm_ID_List_Degrees
  • Instance Variable - magneticalc.Constraint.Constraint._comparison_id
  • Instance Variable - magneticalc.Constraint.Constraint._is_angle
  • Instance Variable - magneticalc.Constraint.Constraint._max
  • Instance Variable - magneticalc.Constraint.Constraint._min
  • Instance Variable - magneticalc.Constraint.Constraint._norm_id
  • Instance Variable - magneticalc.Constraint.Constraint.permeability
  • Class Variable - magneticalc.Constraint_Editor.Constraint_Editor.Constraint_Options
  • Class Variable - magneticalc.Constraint_Editor.Constraint_Editor.Constraint_Types
  • Class Variable - magneticalc.Constraint_Editor.Constraint_Editor.DescriptionHeight
  • Class Variable - magneticalc.Constraint_Editor.Constraint_Editor.Width
  • Instance Variable - magneticalc.Constraint_Editor.Constraint_Editor._constraints
  • Instance Variable - magneticalc.Constraint_Editor.Constraint_Editor.gui
  • Instance Variable - magneticalc.Constraint_Editor.Constraint_Editor.table
  • Class Variable - magneticalc.Debug.Debug.Whitelist
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldArrowScaleMaximum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldArrowScaleMinimum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldArrowScaleStep
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldBoostMaximum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldBoostMinimum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldBoostStep
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldPointScaleMaximum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldPointScaleMinimum
  • Class Variable - magneticalc.Display_Widget.Display_Widget.FieldPointScaleStep
  • Instance Variable - magneticalc.Display_Widget.Display_Widget.display_magnitude_labels_checkbox
  • Instance Variable - magneticalc.Display_Widget.Display_Widget.field_arrow_scale_slider
  • Instance Variable - magneticalc.Display_Widget.Display_Widget.field_boost_slider
  • Instance Variable - magneticalc.Display_Widget.Display_Widget.field_point_scale_slider
  • Instance Variable - magneticalc.Display_Widget.Display_Widget.gui
  • Instance Variable - magneticalc.Field.Field._backend
  • Instance Variable - magneticalc.Field.Field._distance_limit
  • Instance Variable - magneticalc.Field.Field._length_scale
  • Instance Variable - magneticalc.Field.Field._total_limited
  • Instance Variable - magneticalc.Field.Field._type
  • Class Variable - magneticalc.Field_Widget.Field_Widget.DistanceLimitMaximum
  • Class Variable - magneticalc.Field_Widget.Field_Widget.DistanceLimitMinimum
  • Class Variable - magneticalc.Field_Widget.Field_Widget.DistanceLimitStep
  • Instance Variable - magneticalc.Field_Widget.Field_Widget.distance_limit_spinbox
  • Instance Variable - magneticalc.Field_Widget.Field_Widget.field_type_group
  • Instance Variable - magneticalc.Field_Widget.Field_Widget.gui
  • Instance Variable - magneticalc.Field_Widget.Field_Widget.total_limited_points_label
  • Class Variable - magneticalc.GUI.GUI.DefaultFilename
  • Class Variable - magneticalc.GUI.GUI.calculation_exited
  • Instance Variable - magneticalc.GUI.GUI.calculation_start_time
  • Class Variable - magneticalc.GUI.GUI.calculation_status
  • Instance Variable - magneticalc.GUI.GUI.calculation_thread
  • Instance Variable - magneticalc.GUI.GUI.config
  • Instance Variable - magneticalc.GUI.GUI.initializing
  • Instance Variable - magneticalc.GUI.GUI.locale
  • Instance Variable - magneticalc.GUI.GUI.menu
  • Instance Variable - magneticalc.GUI.GUI.model
  • Instance Variable - magneticalc.GUI.GUI.sidebar_left
  • Instance Variable - magneticalc.GUI.GUI.sidebar_right
  • Instance Variable - magneticalc.GUI.GUI.splitter
  • Instance Variable - magneticalc.GUI.GUI.statusbar
  • Instance Variable - magneticalc.GUI.GUI.vispy_canvas
  • Instance Variable - magneticalc.Groupbox.Groupbox.layout
  • Instance Variable - magneticalc.Groupbox.Groupbox.palette
  • Class Variable - magneticalc.HLine.HLine.VerticalSpacing
  • Class Variable - magneticalc.IconLabel.IconLabel.HorizontalSpacing
  • Class Variable - magneticalc.IconLabel.IconLabel.IconSize
  • Instance Variable - magneticalc.IconLabel.IconLabel.layout
  • Class Variable - magneticalc.Menu.Menu.Backends_List
  • Instance Variable - magneticalc.Menu.Menu.backend_actions
  • Instance Variable - magneticalc.Menu.Menu.config_bound_checkboxes
  • Instance Variable - magneticalc.Menu.Menu.gui
  • Instance Variable - magneticalc.Menu.Menu.options_backend_group
  • Class Variable - magneticalc.Metric.Metric.LengthScale
  • Class Variable - magneticalc.Metric.Metric.LogNormMinimum
  • Instance Variable - magneticalc.Metric.Metric._alpha_preset
  • Instance Variable - magneticalc.Metric.Metric._color_preset
  • Instance Variable - magneticalc.Metric.Metric._colors
  • Instance Variable - magneticalc.Metric.Metric._limits
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.AngleXY
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.AngleXZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.AngleYZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.List
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitude
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeX
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeXY
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeXZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeY
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeYZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.LogMagnitudeZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.Magnitude
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeX
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeXY
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeXZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeY
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeYZ
  • Class Variable - magneticalc.Metric_Presets.Metric_Presets.MagnitudeZ
  • Class Variable - magneticalc.Metric_Widget.Metric_Widget.Cool_Gradient_CSS
  • Class Variable - magneticalc.Metric_Widget.Metric_Widget.HSV_Gradient_CSS
  • Class Variable - magneticalc.Metric_Widget.Metric_Widget.ValuePrecision
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.alpha_metric_combobox
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.alpha_metric_limits_layout
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.alpha_metric_limits_widget
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.alpha_metric_max_label
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.alpha_metric_min_label
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.color_metric_combobox
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.color_metric_limits_layout
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.color_metric_limits_widget
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.color_metric_max_label
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.color_metric_min_label
  • Instance Variable - magneticalc.Metric_Widget.Metric_Widget.gui
  • Instance Variable - magneticalc.Model.Model.field
  • Instance Variable - magneticalc.Model.Model.gui
  • Instance Variable - magneticalc.Model.Model.metric
  • Instance Variable - magneticalc.Model.Model.parameters
  • Instance Variable - magneticalc.Model.Model.sampling_volume
  • Instance Variable - magneticalc.Model.Model.wire
  • Class Variable - magneticalc.ModelAccess.ModelAccess.DebugColor
  • Instance Variable - magneticalc.ModelAccess.ModelAccess.gui
  • Instance Variable - magneticalc.ModelAccess.ModelAccess.locked
  • Instance Variable - magneticalc.ModelAccess.ModelAccess.recalculate
  • Instance Variable - magneticalc.Parameters.Parameters._energy
  • Instance Variable - magneticalc.Parameters.Parameters._magnetic_dipole_moment
  • Instance Variable - magneticalc.Parameters.Parameters._self_inductance
  • Class Variable - magneticalc.Parameters_Widget.Parameters_Widget.ValuePrecision
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.energy_units_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.energy_value_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.gui
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.magnetic_dipole_moment_units_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.magnetic_dipole_moment_value_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.self_inductance_units_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.self_inductance_value_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.wire_length_units_label
  • Instance Variable - magneticalc.Parameters_Widget.Parameters_Widget.wire_length_value_label
  • Class Variable - magneticalc.Perspective_Presets.Perspective_Presets.Isometric
  • Class Variable - magneticalc.Perspective_Presets.Perspective_Presets.List
  • Class Variable - magneticalc.Perspective_Presets.Perspective_Presets.PlaneXY
  • Class Variable - magneticalc.Perspective_Presets.Perspective_Presets.PlaneXZ
  • Class Variable - magneticalc.Perspective_Presets.Perspective_Presets.PlaneYZ
  • Instance Variable - magneticalc.Perspective_Widget.Perspective_Widget.gui
  • Class Variable - magneticalc.SamplingVolume.SamplingVolume.Debug_Constraints
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._bounds_max
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._bounds_min
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._labeled_indices
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._permeabilities
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._points
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume._resolution
  • Instance Variable - magneticalc.SamplingVolume.SamplingVolume.constraints
  • Class Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.PaddingMax
  • Class Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.PaddingMin
  • Class Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.ResolutionMaximum
  • Class Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.ResolutionMinimum
  • Class Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.UnitsLabelWidth
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.constraint_editor
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.gui
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.padding_spinbox
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.resolution_spinbox
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.total_constraints_label
  • Instance Variable - magneticalc.SamplingVolume_Widget.SamplingVolume_Widget.total_points_label
  • Class Variable - magneticalc.SidebarLeft.SidebarLeft.MaximumWidth
  • Class Variable - magneticalc.SidebarLeft.SidebarLeft.VerticalSpacing
  • Instance Variable - magneticalc.SidebarLeft.SidebarLeft.gui
  • Instance Variable - magneticalc.SidebarLeft.SidebarLeft.sampling_volume_widget
  • Instance Variable - magneticalc.SidebarLeft.SidebarLeft.wire_widget
  • Class Variable - magneticalc.SidebarRight.SidebarRight.MaximumWidth
  • Class Variable - magneticalc.SidebarRight.SidebarRight.VerticalSpacing
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.display_widget
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.field_widget
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.gui
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.metric_widget
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.parameters_widget
  • Instance Variable - magneticalc.SidebarRight.SidebarRight.perspective_widget
  • Instance Variable - magneticalc.SliderFloat.SliderFloat._step
  • Instance Variable - magneticalc.Statusbar.Statusbar.auto_calculation_checkbox
  • Instance Variable - magneticalc.Statusbar.Statusbar.cancel_button
  • Instance Variable - magneticalc.Statusbar.Statusbar.cores_combobox
  • Instance Variable - magneticalc.Statusbar.Statusbar.gui
  • Instance Variable - magneticalc.Statusbar.Statusbar.label
  • Instance Variable - magneticalc.Statusbar.Statusbar.progressbar
  • Instance Variable - magneticalc.Statusbar.Statusbar.start_button
  • Class Variable - magneticalc.Table.Table.DebugColor
  • Class Variable - magneticalc.Table.Table.MinimumHeight
  • Instance Variable - magneticalc.Table.Table._cell_edited_callback
  • Instance Variable - magneticalc.Table.Table._enabled
  • Instance Variable - magneticalc.Table.Table._minimum_rows
  • Instance Variable - magneticalc.Table.Table._options
  • Instance Variable - magneticalc.Table.Table._prefix
  • Instance Variable - magneticalc.Table.Table._row_deleted_callback
  • Instance Variable - magneticalc.Table.Table._selection_changed_callback
  • Instance Variable - magneticalc.Table.Table._types
  • Instance Variable - magneticalc.Table.Table.gui
  • Class Variable - magneticalc.Theme.Theme.LightColor
  • Class Variable - magneticalc.Theme.Theme.PrimaryColor
  • Class Variable - magneticalc.Theme.Theme.SuccessColor
  • Class Variable - magneticalc.Theme.Theme.WarningColor
  • Class Variable - magneticalc.Usage_Dialog.Usage_Dialog.HTML
  • Class Variable - magneticalc.Usage_Dialog.Usage_Dialog.Height
  • Class Variable - magneticalc.Usage_Dialog.Usage_Dialog.Width
  • Class Variable - magneticalc.Version.Version.Copyright
  • Class Variable - magneticalc.Version.Version.License
  • Class Variable - magneticalc.Version.Version.String
  • Variable - magneticalc.Version.__VERSION__
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.ArrowHeadSize
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.Black
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.DebugVisuals
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.DefaultFontFace
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.DefaultFontSize
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.MagnitudeLimit
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.MagnitudePrecision
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.ScaleFactorMax
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.ScaleFactorMin
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.White
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.WirePointSelectedColor
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.WirePointSelectedSize
  • Class Variable - magneticalc.VispyCanvas.VispyCanvas.WirePointSize
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.background
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.bgcolor
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.font_manager
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.foreground
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.gui
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.initializing
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.super_perspective_changed
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.view_main
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.view_text
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_coordinate_system
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_field_arrow_heads
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_field_arrow_lines
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_field_labels
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_field_points
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_perspective_info
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_startup_info
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_wire_points_selected
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_wire_points_sliced
  • Instance Variable - magneticalc.VispyCanvas.VispyCanvas.visual_wire_segments
  • Instance Variable - magneticalc.Wire.Wire._dc
  • Instance Variable - magneticalc.Wire.Wire._length
  • Instance Variable - magneticalc.Wire.Wire._points_base
  • Instance Variable - magneticalc.Wire.Wire._points_sliced
  • Instance Variable - magneticalc.Wire.Wire._points_transformed
  • Instance Variable - magneticalc.Wire.Wire._slicer_limit
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.CompensatedDoubleSquareLoop_Centered
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.CompensatedDoubleSquareLoop_Offset
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.CompensatedSolenoidCircularLoops4
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.CompensatedSolenoidCircularLoops8
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.List
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.SingleCircularLoop_Offset
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.SingleSquareLoop_Centered
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.SingleSquareLoop_Offset
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.SolenoidCircularLoops4
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.SolenoidCircularLoops8
  • Class Variable - magneticalc.Wire_Presets.Wire_Presets.StraightLine
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.DcMaximum
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.DcMinimum
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.DcStep
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryCountMax
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryCountMin
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryOffsetMax
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryOffsetMin
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryOffsetStep
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryRadiusMax
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryRadiusMin
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.RotationalSymmetryRadiusStep
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.SlicerLimitMaximum
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.SlicerLimitMinimum
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.SlicerLimitStep
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.StretchMax
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.StretchMin
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.StretchStep
  • Class Variable - magneticalc.Wire_Widget.Wire_Widget.UnitsLabelWidth
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.dc_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.gui
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.rotational_symmetry_axis_combobox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.rotational_symmetry_count_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.rotational_symmetry_offset_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.rotational_symmetry_radius_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.sliced_total_label
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.slicer_limit_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.stretch_spinbox
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.table
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.table_total_label
  • Instance Variable - magneticalc.Wire_Widget.Wire_Widget.transformed_total_label
  • diff --git a/magneticalc/BiotSavart_CUDA.py b/magneticalc/BiotSavart_CUDA.py new file mode 100644 index 0000000..5ad6281 --- /dev/null +++ b/magneticalc/BiotSavart_CUDA.py @@ -0,0 +1,180 @@ +""" BiotSavart_CUDA module. """ + +# ISC License +# +# Copyright (c) 2020, Paul Wilhelm, M. Sc. +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +import math +import numpy as np +from numba import cuda +from magneticalc.Constants import Constants +from magneticalc.Debug import Debug +from magneticalc.Theme import Theme + + +class BiotSavart_CUDA: + """ + Implements the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field). + """ + + def __init__( + self, + _type: int, + distance_limit: float, + length_scale: float, + dc: float, + current_elements, + sampling_volume_points, + sampling_volume_permeabilities, + progress_callback + ): + """ + Initializes the class attributes. + + @param _type: Field type (0: A-field; 1: B-field) + @param distance_limit: Distance limit (mitigating divisions by zero) + @param length_scale: Length scale (m) + @param dc: Wire current (A) + @param current_elements: Ordered list of current elements (tuples: (element center, element direction)) + @param sampling_volume_points: Ordered list of sampling volume points + @param sampling_volume_permeabilities: Ordered list of sampling volume's relative permeabilities µ_r + @param progress_callback: Progress callback + """ + self._type = _type + self._distance_limit = distance_limit + self._length_scale = length_scale + self._dc = dc + self._current_elements = current_elements + self._sampling_volume_points = sampling_volume_points + self._sampling_volume_permeabilities = sampling_volume_permeabilities + self._progress_callback = progress_callback + + self.total_limited = 0 + + @staticmethod + @cuda.jit + def worker( + _type, + distance_limit, + length_scale, + element_centers, + element_directions, + sampling_volume_points, + sampling_volume_permeabilities, + field_vectors, + total_limited + ): + """ + Applies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) + for all sampling volume points. + + @param _type: Field type (0: A-field; 1: B-field) + @param distance_limit: Distance limit (mitigating divisions by zero) + @param length_scale: Length scale (m) + @param element_centers: Ordered list of current elements centers + @param element_directions: Ordered list of current elements directions + @param sampling_volume_points: Sampling volume points + @param sampling_volume_permeabilities: Ordered list of sampling volume's relative permeabilities µ_r + @param field_vectors: Field vectors (output array) + @param total_limited: Total number of limited points (output array with only one element) + """ + + # noinspection PyUnresolvedReferences + sampling_volume_index = cuda.blockIdx.x * cuda.blockDim.x + cuda.threadIdx.x + + if sampling_volume_index >= sampling_volume_points.shape[0]: + return + + vector_x = 0 + vector_y = 0 + vector_z = 0 + + for current_element_index in range(element_centers.shape[0]): + vector_distance_x = (sampling_volume_points[sampling_volume_index][0] - + element_centers[current_element_index][0]) * length_scale + vector_distance_y = (sampling_volume_points[sampling_volume_index][1] - + element_centers[current_element_index][1]) * length_scale + vector_distance_z = (sampling_volume_points[sampling_volume_index][2] - + element_centers[current_element_index][2]) * length_scale + + # Calculate distance (mitigating divisions by zero) + scalar_distance = math.sqrt(vector_distance_x ** 2 + vector_distance_y ** 2 + vector_distance_z ** 2) + if scalar_distance < distance_limit: + scalar_distance = distance_limit + total_limited[0] += 1 + + if _type == 0: + # Calculate A-field (vector potential) + vector_x += element_directions[current_element_index][0] * length_scale / scalar_distance + vector_y += element_directions[current_element_index][1] * length_scale / scalar_distance + vector_z += element_directions[current_element_index][2] * length_scale / scalar_distance + elif _type == 1: + # Calculate B-field (flux density) + a_1 = element_directions[current_element_index][0] * length_scale + a_2 = element_directions[current_element_index][1] * length_scale + a_3 = element_directions[current_element_index][2] * length_scale + vector_x += (a_2 * vector_distance_z - a_3 * vector_distance_y) / (scalar_distance ** 3) + vector_y += (a_3 * vector_distance_x - a_1 * vector_distance_z) / (scalar_distance ** 3) + vector_z += (a_1 * vector_distance_y - a_2 * vector_distance_x) / (scalar_distance ** 3) + + field_vectors[sampling_volume_index, 0] = vector_x * sampling_volume_permeabilities[sampling_volume_index] + field_vectors[sampling_volume_index, 1] = vector_y * sampling_volume_permeabilities[sampling_volume_index] + field_vectors[sampling_volume_index, 2] = vector_z * sampling_volume_permeabilities[sampling_volume_index] + + def get_result(self): + """ + Calculates the field at every point of the sampling volume. + + @return: (Total number of limited points, field) (currently non-interruptable) + """ + Debug(self, ".get_result()", color=Theme.PrimaryColor) + + element_centers = [element[0] for element in self._current_elements] + element_directions = [element[1] for element in self._current_elements] + + element_centers_global = cuda.to_device(element_centers) + element_directions_global = cuda.to_device(element_directions) + + sampling_volume_points_global = cuda.to_device(self._sampling_volume_points) + sampling_volume_permeabilities_global = cuda.to_device(self._sampling_volume_permeabilities) + + field_vectors_global = cuda.device_array((len(self._sampling_volume_points), 3)) + total_limited_global = cuda.device_array(1) + + TPB = 1024 # Maximum threads per block + BPG = 65536 # Maximum blocks per grid + + BiotSavart_CUDA.worker[BPG, TPB]( + self._type, + self._distance_limit, + self._length_scale, + element_centers_global, + element_directions_global, + sampling_volume_points_global, + sampling_volume_permeabilities_global, + field_vectors_global, + total_limited_global + ) + + field_vectors_local = field_vectors_global.copy_to_host() + total_limited_local = total_limited_global.copy_to_host() + + if self._type == 0 or self._type == 1: + # Field is A-field or B-field + field_vectors_local = field_vectors_local * self._dc * Constants.mu_0 / 4 / np.pi + + self._progress_callback(100) + + return int(total_limited_local[0]), field_vectors_local diff --git a/magneticalc/BiotSavart_JIT.py b/magneticalc/BiotSavart_JIT.py index 262e65a..3202489 100644 --- a/magneticalc/BiotSavart_JIT.py +++ b/magneticalc/BiotSavart_JIT.py @@ -73,7 +73,7 @@ def worker( sampling_volume_point ): """ - Applies the Biot-Savart law for calculating the magnetic flux density (B-field) and vector potential (A-field) + Applies the Biot-Savart law for calculating the magnetic flux density (B-field) or vector potential (A-field) for a single sampling volume point. @param _type: Field type (0: A-field; 1: B-field) @@ -150,22 +150,4 @@ def get_result(self): self._progress_callback(100) - # Prints the sampling volume points, current elements and field vectors; may be used for debugging: - """ - def print_array(array): - return "np.array([" + ",".join([f"[{point[0]},{point[1]},{point[2]}]" for point in array]) + "])" - - element_centers = [x[0] for x in self._current_elements] - element_directions = [x[1] for x in self._current_elements] - - import sys - import numpy - numpy.set_printoptions(threshold=sys.maxsize) - - print("sampling_volume_points =", print_array(self._sampling_volume_points)) - print("element_centers =", print_array(element_centers)) - print("element_directions =", print_array(element_directions)) - print("field_vectors =", print_array(vectors)) - """ - return total_limited, vectors diff --git a/magneticalc/Debug.py b/magneticalc/Debug.py index 8cbfb2a..94fb4da 100644 --- a/magneticalc/Debug.py +++ b/magneticalc/Debug.py @@ -20,7 +20,7 @@ from colorit import color_front, bold -# Enable to see JIT/Numba debug output +# Enable to see JIT debug output # import os # os.environ["NUMBA_PARALLEL_DIAGNOSTICS"] = "4" @@ -101,8 +101,8 @@ def __init__(self, obj, text: str, color=None, force: bool = False): # Format call hierarchy hierarchy = "" - for x in reversed(stack()[2:]): - func_str = str(x.function) + for f in reversed(stack()[2:]): + func_str = str(f.function) if func_str in ["", "_run_module_as_main", "_run_code"]: # Called from within the main module (don't display these elements) continue diff --git a/magneticalc/Field.py b/magneticalc/Field.py index 32ffb8c..780d48e 100644 --- a/magneticalc/Field.py +++ b/magneticalc/Field.py @@ -17,8 +17,9 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. import numpy as np -from numba import jit, prange, set_num_threads +from numba import jit, prange, set_num_threads, cuda from magneticalc.Assert_Dialog import Assert_Dialog +from magneticalc.BiotSavart_CUDA import BiotSavart_CUDA from magneticalc.BiotSavart_JIT import BiotSavart_JIT from magneticalc.Debug import Debug from magneticalc.Theme import Theme @@ -31,7 +32,7 @@ def __init__(self, backend: int, _type: int, distance_limit: float, length_scale """ Initializes an empty field. - @param backend: Backend index (0: JIT/Numba; 1: JIT/Numba + CUDA) + @param backend: Backend index (0: JIT; 1: JIT + CUDA) @param _type: Field type to display (0: A-field; 1: B-field) @param distance_limit: Distance limit (mitigating divisions by zero) @param length_scale: Length scale (m) @@ -114,7 +115,7 @@ def recalculate(self, wire, sampling_volume, progress_callback, num_cores: int) @param sampling_volume: Sampling volume @param progress_callback: Progress callback @param num_cores: Number of cores to use for multiprocessing - @return: True if successful, False if interrupted + @return: True if successful, False if interrupted (CUDA backend currently not interruptable) """ use_jit = self._backend == 0 @@ -140,13 +141,30 @@ def recalculate(self, wire, sampling_volume, progress_callback, num_cores: int) elif use_cuda: - Debug( - self, - f".recalculate(): Backend not yet supported: {self._backend}", - color=Theme.WarningColor, - force=True + if not cuda.is_available(): + Debug( + self, + f".recalculate(): CUDA backend not available", + color=Theme.WarningColor, + force=True + ) + return False + + # Initialize Biot-Savart CUDA backend + biot_savart = BiotSavart_CUDA( + self._type, + self._distance_limit, + self._length_scale, + wire.get_dc(), + wire.get_elements(), + sampling_volume.get_points(), + sampling_volume.get_permeabilities(), + progress_callback ) - return False + + # Fetch result using Biot-Savart JIT backend + set_num_threads(num_cores) + tup = biot_savart.get_result() else: @@ -160,6 +178,24 @@ def recalculate(self, wire, sampling_volume, progress_callback, num_cores: int) self._total_limited = tup[0] self._vectors = tup[1] + # Prints the sampling volume points, current elements and field vectors; may be used for debugging: + """ + def print_array(array): + return "np.array([" + ",".join([f"[{point[0]},{point[1]},{point[2]}]" for point in array]) + "])" + + element_centers = [element[0] for element in wire.get_elements()] + element_directions = [element[1] for element in wire.get_elements()] + + import sys + import numpy + numpy.set_printoptions(threshold=sys.maxsize) + + print("sampling_volume_points =", print_array(sampling_volume.get_points())) + print("element_centers =", print_array(element_centers)) + print("element_directions =", print_array(element_directions)) + print("field_vectors =", print_array(self._vectors)) + """ + return True # ------------------------------------------------------------------------------------------------------------------ diff --git a/magneticalc/Menu.py b/magneticalc/Menu.py index 3299a9d..52fcb22 100644 --- a/magneticalc/Menu.py +++ b/magneticalc/Menu.py @@ -16,6 +16,7 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +from numba import cuda import qtawesome as qta from functools import partial from PyQt5.QtCore import Qt @@ -31,10 +32,10 @@ class Menu: # List of available backends Backends_List = [ - "Backend: JIT/Numba", - # ToDo: Add CUDA backend for Biot-Savart implementation. - # "Backend: JIT/Numba + CUDA" - ] + "Backend: JIT" + ] + [ + "Backend: JIT + CUDA" + ] if cuda.is_available() else [] def __init__(self, gui): """ diff --git a/magneticalc/Usage_Dialog.py b/magneticalc/Usage_Dialog.py index bf50f7f..edbbe78 100644 --- a/magneticalc/Usage_Dialog.py +++ b/magneticalc/Usage_Dialog.py @@ -117,7 +117,8 @@ class Usage_Dialog(QDialog): The B-field calculation is implemented using the Biot-Savart law [1], employing multiprocessing techniques; - MagnetiCalc uses just-in-time compilation (JIT/Numba) to achieve high-performance calculations. + MagnetiCalc uses just-in-time compilation (JIT) and, if available, GPU-acceleration (CUDA) + to achieve high-performance calculations. Additionally, the use of easily constrainable "sampling volumes" allows for selective calculation over grids of arbitrary shape and arbitrary relative permeabilities (experimental).

    diff --git a/magneticalc/Version.py b/magneticalc/Version.py index 34dd164..47a7f09 100644 --- a/magneticalc/Version.py +++ b/magneticalc/Version.py @@ -17,7 +17,7 @@ # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -__VERSION__ = "v1.8.3.3" +__VERSION__ = "v1.8.4" class Version: diff --git a/magneticalc/Wire_Widget.py b/magneticalc/Wire_Widget.py index 23259f4..aa09bbb 100644 --- a/magneticalc/Wire_Widget.py +++ b/magneticalc/Wire_Widget.py @@ -49,7 +49,7 @@ class Wire_Widget(Groupbox): RotationalSymmetryOffsetMin = -360 RotationalSymmetryOffsetMax = 360 RotationalSymmetryOffsetStep = 1 - SlicerLimitMinimum = 0.01 + SlicerLimitMinimum = 0.001 SlicerLimitMaximum = 2.0 SlicerLimitStep = 0.01 DcMinimum = -999.0
    ModuleBiotSavart_CUDABiotSavart_CUDA module.
    Module BiotSavart_JIT BiotSavart_JIT module.