diff --git a/MagnetiCalc-DefaultProject.ini b/MagnetiCalc-DefaultProject.ini
index 9d1f4f7..4409458 100644
--- a/MagnetiCalc-DefaultProject.ini
+++ b/MagnetiCalc-DefaultProject.ini
@@ -1,5 +1,5 @@
[DEFAULT]
-version = MagnetiCalc v1.12.0
+version = MagnetiCalc v1.12.1
backend_type = 1
auto_calculation = True
num_cores = 0
diff --git a/README.md b/README.md
index d104677..16a44d9 100644
--- a/README.md
+++ b/README.md
@@ -125,16 +125,14 @@ Installation will currently fail for Python 3.9+ due to missing dependencies.
On some systems, it may be necessary to install the latest [Microsoft Visual C++ Redistributable](https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170) first.
-#### macOS
+#### macOS with Apple Silicon (M1)
On Apple Silicon, make sure to enable [Open Using Rosetta](https://www.courier.com/blog/tips-and-tricks-to-setup-your-apple-m1-for-development/) for the Terminal app
before installing and starting MagnetiCalc.
-*Note:* Might be unstable.
-
### Option A: Automatic install via pip
This will install or upgrade MagnetiCalc (and its dependencies) to the user site-packages directory and start it from there.
-#### Linux & macOS
+#### Linux & macOS (Intel)
```shell
python3 -m pip install magneticalc --upgrade
python3 -m magneticalc
@@ -146,6 +144,13 @@ python -m pip install --upgrade magneticalc
python -m magneticalc
```
+#### macOS with Apple Silicon (M1)
+*Note:* On Apple Silicon, JIT must be disabled due to incomplete support, resulting in slow calculations.
+```shell
+python3 -m pip install magneticalc --upgrade
+export NUMBA_DISABLE_JIT=1 && python3 -m magneticalc
+```
+
#### Juptyer Notebook & Jupyter Lab
From within a [Jupyter](https://jupyter.org/) Notebook,
MagnetiCalc can be installed (upgraded) and run like this:
@@ -229,14 +234,24 @@ provides basic functions for importing/exporting data programmatically:
The data is wrapped in a [`MagnetiCalc_Data`](magneticalc/MagnetiCalc_Data.py) object
which provides convenience functions for accessing, transforming and reshaping the data:
+ * `.get_wire_list()` returns a list of all 3D points of the wire.
+ * `.get_wire()` returns the raveled wire points as three arrays.
+ * `.get_current()` returns the wire current.
* `.get_dimension()` returns the sampling volume dimension as a 3-tuple.
- * `.get_axes(reduce=True)` returns the axis ticks of the sampling volume.
* `.get_axes_list()` returns a list of all 3D points of the sampling volume.
+ * `.get_axes()` returns the raveled sampling volume coordinates as three arrays.
+ * `.get_axes(reduce=True)` returns the axis ticks of the sampling volume.
* `.get_a_field_list()` returns a list of all 3D vectors of the
- -Field.
+
-field.
+ * `.get_a_field()` returns the raveled
+
-field
+ coordinates as three arrays.
* `.get_a_field(as_3d=True)` returns a 3D field for each component of the
-
-Field,
+
-field,
indexed over the reduced axes.
+
+ Analogously, use the `.get_b_field_list()` and `.get_b_field()` functions
+ to get the
-field.
License
-------
@@ -295,11 +310,8 @@ ToDo
* Fix unnecessary shading of VisPy markers.
**Code Quality**
-* Add debug output where it is missing.
-* Add type hints where they are missing.
* Add unit tests.
* Use the [`@property` decorator](https://stackoverflow.com/a/36943813/2035671) for accessing data where applicable.
-* Merge sparse `*_Types.py` modules with higher-level classes if possible.
**Design**
* Replace plain `QMessageBox` dialogs with nice-looking custom dialogs where possible.
diff --git a/docs/Screenshot.png b/docs/Screenshot.png
deleted file mode 100644
index 68521d9..0000000
Binary files a/docs/Screenshot.png and /dev/null differ
diff --git a/docs/Video-Thumb.png b/docs/Video-Thumb.png
deleted file mode 100644
index 6c05590..0000000
Binary files a/docs/Video-Thumb.png and /dev/null differ
diff --git a/docs/classIndex.html b/docs/classIndex.html
index a2b89f0..5cd5120 100644
--- a/docs/classIndex.html
+++ b/docs/classIndex.html
@@ -27,7 +27,7 @@
collections.abc.MutableMapping
PyQt5.QtCore.QThread
PyQt5.QtWidgets.QDialog
PyQt5.QtWidgets.QFrame
PyQt5.QtWidgets.QGroupBox
PyQt5.QtWidgets.QHBoxLayout
PyQt5.QtWidgets.QLabel
PyQt5.QtWidgets.QMainWindow
PyQt5.QtWidgets.QMessageBox
PyQt5.QtWidgets.QScrollArea
PyQt5.QtWidgets.QSlider
PyQt5.QtWidgets.QSpinBox
PyQt5.QtWidgets.QTableWidget
PyQt5.QtWidgets.QTextBrowser
vispy.scene.SceneCanvas
collections.abc.MutableMapping
object
PyQt5.QtCore.QThread
PyQt5.QtWidgets.QDialog
PyQt5.QtWidgets.QFrame
PyQt5.QtWidgets.QGroupBox
PyQt5.QtWidgets.QHBoxLayout
PyQt5.QtWidgets.QLabel
PyQt5.QtWidgets.QMainWindow
PyQt5.QtWidgets.QMessageBox
PyQt5.QtWidgets.QScrollArea
PyQt5.QtWidgets.QSlider
PyQt5.QtWidgets.QSpinBox
PyQt5.QtWidgets.QTableWidget
PyQt5.QtWidgets.QTextBrowser
vispy.scene.SceneCanvas