PyOpenMagnetics 1.7.7__tar.gz → 1.7.9__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.7 → pyopenmagnetics-1.7.9}/CMakeLists.txt +1 -1
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/PKG-INFO +1 -1
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/pyproject.toml +1 -1
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/core.cpp +36 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/core.h +1 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/.github/workflows/ci.yml +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/.github/workflows/publish.yml +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/.gitignore +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/AGENTS.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/LICENSE +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/PyOpenMagnetics.pyi +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/README.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/_packaging/__init__.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/_packaging/_build_info.py.in +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/api/MAS.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/api/mas_db_reader.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/api/validation.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/clear_cibuildwheel_cache.sh +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/docs/compatibility.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/docs/errors.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/docs/performance.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/README.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/buck_inductor.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/complete_simulation_example.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/converter_design_example.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/debug_bobbin.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/debug_coil.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/debug_core.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/debug_plotting.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_220v_12v_1a.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_220v_12v_2a_complete.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_bh_curve.png +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_core.png +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_design.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_summary.png +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/flyback_waveforms.png +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/list_plot_funcs.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/plot_flyback_design.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/plot_flyback_pyom.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/test_field_calc.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/examples/test_field_plot.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/force_fresh_build.sh +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/llms.txt +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/notebooks/01_getting_started.ipynb +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/notebooks/02_buck_inductor.ipynb +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/notebooks/03_core_losses.ipynb +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/notebooks/README.md +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/requirements.txt +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/advisers.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/advisers.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/bobbin.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/bobbin.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/cmc.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/cmc.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/common.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/converter.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/converter.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/crossref.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/crossref.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/database.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/database.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/logging.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/logging.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/losses.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/losses.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/module.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/plotting.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/plotting.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/settings.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/settings.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/simulation.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/simulation.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/utils.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/utils.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/winding.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/winding.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/wire.cpp +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/src/wire.h +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/test.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/__init__.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/conftest.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_converter_endpoints.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_core.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_core_adviser.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_examples_integration.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_inputs.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_logging.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_magnetic_adviser.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_magnetics_catalogue_load.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_plotting.py +0 -0
- {pyopenmagnetics-1.7.7 → pyopenmagnetics-1.7.9}/tests/test_winding.py +0 -0
|
@@ -142,7 +142,7 @@ if(NOT LOCAL_MKF_MAS)
|
|
|
142
142
|
set(MKF_GIT_TAG "main"
|
|
143
143
|
CACHE STRING "MKF git ref for the vendored PyOM build")
|
|
144
144
|
# Force fresh clone by using a unique timestamp - update this when the pin changes
|
|
145
|
-
set(MKF_FORCE_REFRESH "2026-
|
|
145
|
+
set(MKF_FORCE_REFRESH "2026-09-05-mkf-4647f23b")
|
|
146
146
|
# Tell MKF to disable matplotplusplus and use SVG-based Painter instead
|
|
147
147
|
set(INCLUDE_PYMKF ON CACHE BOOL "Build Python interface" FORCE)
|
|
148
148
|
# GIT_SUBMODULES_RECURSE pulls in CAS/PEAS (added 2026-04 alongside the
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
#include "core.h"
|
|
2
|
+
#include "constructive_models/CorePiece.h"
|
|
2
3
|
#include "physical_models/ComplexPermeability.h"
|
|
3
4
|
#include <filesystem>
|
|
4
5
|
|
|
@@ -123,6 +124,22 @@ json calculate_core_geometrical_description(json coreDataJson) {
|
|
|
123
124
|
return result;
|
|
124
125
|
}
|
|
125
126
|
|
|
127
|
+
// ABT #1002: the IEC shape constants of a moulded body split per region (post, cover, base),
|
|
128
|
+
// so a material fit can attribute each region's reluctance to the powder pressed there.
|
|
129
|
+
json calculate_core_region_shape_constants(json coreDataJson) {
|
|
130
|
+
OpenMagnetics::Core core(coreDataJson, false, false, false);
|
|
131
|
+
auto corePiece = OpenMagnetics::CorePiece::factory(core.resolve_shape());
|
|
132
|
+
auto regions = corePiece->get_region_shape_constants();
|
|
133
|
+
if (!regions) {
|
|
134
|
+
throw std::invalid_argument("this shape family does not expose per-region shape constants");
|
|
135
|
+
}
|
|
136
|
+
json result = json::array();
|
|
137
|
+
for (auto& region : *regions) {
|
|
138
|
+
result.push_back({{"name", region.name}, {"c1", region.c1}, {"c2", region.c2}, {"minimumArea", region.minimumArea}});
|
|
139
|
+
}
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
142
|
+
|
|
126
143
|
json calculate_core_gapping(json coreDataJson) {
|
|
127
144
|
OpenMagnetics::Core core(coreDataJson, false, false, false);
|
|
128
145
|
core.process_gap_or_throw();
|
|
@@ -775,6 +792,25 @@ void register_core_bindings(py::module& m) {
|
|
|
775
792
|
py::arg("core_data_json"),
|
|
776
793
|
py::call_guard<py::gil_scoped_release>());
|
|
777
794
|
|
|
795
|
+
m.def("calculate_core_region_shape_constants", &calculate_core_region_shape_constants,
|
|
796
|
+
R"pbdoc(
|
|
797
|
+
Per-region IEC shape constants of a moulded body (ABT #1002).
|
|
798
|
+
|
|
799
|
+
A compression-moulded body can be pressed from up to three powders: the post the coil
|
|
800
|
+
sits on, the cover over the coil and the base plate under it. This returns the IEC 60205
|
|
801
|
+
section sums of each region, in the order functionalDescription.material lists the grades
|
|
802
|
+
([post, cover, base]), so a material fit can attribute each region's reluctance to the
|
|
803
|
+
powder pressed there: R_region = c1 / (mu0 * mu_region), Ae_region = c1 / c2.
|
|
804
|
+
|
|
805
|
+
Args:
|
|
806
|
+
core_data_json: JSON object with functionalDescription (shape family 'molded').
|
|
807
|
+
|
|
808
|
+
Returns:
|
|
809
|
+
JSON array of {name, c1, c2, minimumArea}. Raises for families without regions.
|
|
810
|
+
)pbdoc",
|
|
811
|
+
py::arg("core_data_json"),
|
|
812
|
+
py::call_guard<py::gil_scoped_release>());
|
|
813
|
+
|
|
778
814
|
m.def("calculate_core_geometrical_description", &calculate_core_geometrical_description,
|
|
779
815
|
R"pbdoc(
|
|
780
816
|
Calculate geometrical description for core visualization.
|
|
@@ -32,6 +32,7 @@ json get_available_cores();
|
|
|
32
32
|
json calculate_core_data(json coreDataJson, bool includeMaterialData);
|
|
33
33
|
json calculate_core_processed_description(json coreDataJson);
|
|
34
34
|
json calculate_core_geometrical_description(json coreDataJson);
|
|
35
|
+
json calculate_core_region_shape_constants(json coreDataJson);
|
|
35
36
|
json calculate_core_gapping(json coreDataJson);
|
|
36
37
|
json load_core_data(json coresJson);
|
|
37
38
|
json get_core_temperature_dependant_parameters(json coreData, double temperature);
|
|
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
|
|
File without changes
|
|
File without changes
|