PyOpenMagnetics 1.7.37__tar.gz → 1.7.39__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/CMakeLists.txt +5 -3
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/PKG-INFO +1 -1
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/pyproject.toml +1 -1
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/database.cpp +4 -2
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/.github/workflows/ci.yml +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/.github/workflows/publish.yml +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/.gitignore +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/AGENTS.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/LICENSE +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/PyOpenMagnetics.pyi +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/README.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/_packaging/__init__.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/_packaging/_build_info.py.in +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/api/MAS.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/api/mas_db_reader.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/api/validation.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/clear_cibuildwheel_cache.sh +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/docs/compatibility.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/docs/errors.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/docs/performance.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/README.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/buck_inductor.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/complete_simulation_example.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/converter_design_example.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/debug_bobbin.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/debug_coil.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/debug_core.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/debug_plotting.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_220v_12v_1a.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_220v_12v_2a_complete.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_bh_curve.png +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_core.png +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_design.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_summary.png +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/flyback_waveforms.png +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/list_plot_funcs.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/plot_flyback_design.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/plot_flyback_pyom.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/test_field_calc.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/examples/test_field_plot.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/force_fresh_build.sh +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/llms.txt +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/notebooks/01_getting_started.ipynb +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/notebooks/02_buck_inductor.ipynb +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/notebooks/03_core_losses.ipynb +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/notebooks/README.md +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/requirements.txt +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/advisers.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/advisers.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/bobbin.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/bobbin.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/cmc.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/cmc.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/common.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/converter.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/converter.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/core.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/core.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/crossref.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/crossref.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/database.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/logging.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/logging.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/losses.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/losses.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/module.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/plotting.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/plotting.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/settings.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/settings.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/simulation.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/simulation.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/utils.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/utils.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/winding.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/winding.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/wire.cpp +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/src/wire.h +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/test.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/__init__.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/conftest.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_converter_endpoints.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_core.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_core_adviser.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_datasheet_only_catalogue.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_examples_integration.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_inputs.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_logging.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_losses_not_evaluable_catalogue.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_magnetic_adviser.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_magnetics_catalogue_load.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_mas_schema_walk.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_material_validator.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_plotting.py +0 -0
- {pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_winding.py +0 -0
|
@@ -31,14 +31,16 @@ else ()
|
|
|
31
31
|
# Enable Link Time Optimization to reduce binary size
|
|
32
32
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION FALSE) # TEMP: disable LTO (OOM)
|
|
33
33
|
|
|
34
|
-
# Wheel/CI build: -
|
|
34
|
+
# Wheel/CI build: -O2 (Alf, 2026-10-28, ABT #2124: at -O1 the thermal network's elimination ran as a
|
|
35
|
+
# scalar loop and was 43% of a catalogue search). Still the baseline x86-64 target with no -march, so no
|
|
36
|
+
# FMA contraction: results are not expected to change from -O1. -g is
|
|
35
37
|
# intentionally dropped — full debug info on the large pybind11 + json
|
|
36
38
|
# translation units (converter.cpp is ~6k lines) balloons RAM during
|
|
37
39
|
# compile and OOM-kills CI runners (exit 143). Frame pointers are kept
|
|
38
40
|
# for usable backtraces. We REPLACE (not append) the flags so the -g in
|
|
39
41
|
# the default RelWithDebInfo flags is stripped too. For local debugging
|
|
40
42
|
# with symbols, re-add -g here.
|
|
41
|
-
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-
|
|
43
|
+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -DNDEBUG -fno-omit-frame-pointer")
|
|
42
44
|
endif()
|
|
43
45
|
|
|
44
46
|
SET(MAS_DIRECTORY "${CMAKE_BINARY_DIR}/MAS/")
|
|
@@ -142,7 +144,7 @@ if(NOT LOCAL_MKF_MAS)
|
|
|
142
144
|
set(MKF_GIT_TAG "main"
|
|
143
145
|
CACHE STRING "MKF git ref for the vendored PyOM build")
|
|
144
146
|
# Force fresh clone by using a unique timestamp - update this when the pin changes
|
|
145
|
-
set(MKF_FORCE_REFRESH "2026-10-28-mkf-
|
|
147
|
+
set(MKF_FORCE_REFRESH "2026-10-28-mkf-ff429ce0")
|
|
146
148
|
# Tell MKF to disable matplotplusplus and use SVG-based Painter instead
|
|
147
149
|
set(INCLUDE_PYMKF ON CACHE BOOL "Build Python interface" FORCE)
|
|
148
150
|
# GIT_SUBMODULES_RECURSE pulls in CAS/PEAS (added 2026-04 alongside the
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#include "database.h"
|
|
2
|
+
#include "support/FastJsonParse.h"
|
|
2
3
|
#include <sstream>
|
|
3
4
|
|
|
4
5
|
namespace PyMKF {
|
|
@@ -216,7 +217,8 @@ std::string magnetic_cache_key(const OpenMagnetics::Magnetic& magnetic) {
|
|
|
216
217
|
}
|
|
217
218
|
|
|
218
219
|
std::pair<std::string, OpenMagnetics::Magnetic> read_magnetic_line(const std::string& line, bool expand) {
|
|
219
|
-
|
|
220
|
+
// simdjson parses the catalogue line into the same nlohmann::json tree json::parse builds.
|
|
221
|
+
json recordJson = OpenMagnetics::parse_json_fast(line.data(), line.size());
|
|
220
222
|
OpenMagnetics::Magnetic magnetic(recordJson);
|
|
221
223
|
if (expand) {
|
|
222
224
|
magnetic = OpenMagnetics::magnetic_autocomplete(magnetic);
|
|
@@ -262,7 +264,7 @@ std::vector<std::pair<std::string, OpenMagnetics::Magnetic>> stage_magnetics(std
|
|
|
262
264
|
catch (const std::exception& e) {
|
|
263
265
|
std::string reference;
|
|
264
266
|
try {
|
|
265
|
-
reference = reference_hint(
|
|
267
|
+
reference = reference_hint(OpenMagnetics::parse_json_fast(line.data(), line.size()));
|
|
266
268
|
}
|
|
267
269
|
catch (const std::exception&) {
|
|
268
270
|
// The line is not even json; the location alone identifies it.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyopenmagnetics-1.7.37 → pyopenmagnetics-1.7.39}/tests/test_losses_not_evaluable_catalogue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|