radia 1.1.1__tar.gz → 1.2.0__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.
Files changed (170) hide show
  1. {radia-1.1.1/src/radia.egg-info → radia-1.2.0}/PKG-INFO +1 -1
  2. radia-1.2.0/docs/README.md +63 -0
  3. radia-1.2.0/examples/simple_problems/README.md +134 -0
  4. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_hmatrix_field.py +2 -1
  5. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_linear_material.py +2 -1
  6. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_matrix_construction.py +2 -1
  7. radia-1.2.0/examples/solver_benchmarks/benchmark_solver_methods.py +264 -0
  8. {radia-1.1.1 → radia-1.2.0}/pyproject.toml +1 -1
  9. radia-1.2.0/src/python/rad_ngsolve.pyd +0 -0
  10. {radia-1.1.1 → radia-1.2.0/src/radia.egg-info}/PKG-INFO +1 -1
  11. {radia-1.1.1 → radia-1.2.0}/src/radia.egg-info/SOURCES.txt +24 -13
  12. radia-1.2.0/tests/test_magpylib_comparison.py +255 -0
  13. radia-1.2.0/tests/test_update_hmatrix_magnetization.py +86 -0
  14. radia-1.1.1/docs/DIRECTORY_STRUCTURE.md +0 -86
  15. radia-1.1.1/docs/EXAMPLES_REVIEW.md +0 -423
  16. radia-1.1.1/docs/HMATRIX_MATVEC_OPTIMIZATION.md +0 -214
  17. radia-1.1.1/docs/HMATRIX_PERFORMANCE_IMPROVEMENT.md +0 -261
  18. radia-1.1.1/docs/NGSOLVE_DLL_ISSUE.md +0 -162
  19. radia-1.1.1/docs/NGSOLVE_PYTHON_SOLUTION.md +0 -303
  20. radia-1.1.1/docs/OPENMP_PERFORMANCE_REPORT.md +0 -186
  21. radia-1.1.1/docs/PHASE3_PERFORMANCE_ISSUE.md +0 -225
  22. radia-1.1.1/docs/PYPI_RELEASE_v1.0.10.md +0 -177
  23. radia-1.1.1/docs/RELEASE_NOTES_v1.0.10.md +0 -260
  24. radia-1.1.1/docs/TAB_CONVERSION_REPORT.md +0 -110
  25. radia-1.1.1/examples/NGSolve_Integration/debug_field_values.py +0 -94
  26. radia-1.1.1/examples/simple_problems/README.md +0 -130
  27. radia-1.1.1/examples/solver_benchmarks/benchmark_solver.py +0 -248
  28. radia-1.1.1/src/python/rad_ngsolve.pyd +0 -0
  29. {radia-1.1.1 → radia-1.2.0}/COPYRIGHT.txt +0 -0
  30. {radia-1.1.1 → radia-1.2.0}/LICENSE +0 -0
  31. {radia-1.1.1 → radia-1.2.0}/MANIFEST.in +0 -0
  32. {radia-1.1.1 → radia-1.2.0}/README.md +0 -0
  33. {radia-1.1.1 → radia-1.2.0}/README_BUILD.md +0 -0
  34. {radia-1.1.1 → radia-1.2.0}/docs/API_EXTENSIONS.md +0 -0
  35. {radia-1.1.1 → radia-1.2.0}/docs/API_REFERENCE.md +0 -0
  36. {radia-1.1.1 → radia-1.2.0}/docs/CF_BACKGROUND_FIELD_IMPLEMENTATION.md +0 -0
  37. {radia-1.1.1 → radia-1.2.0}/docs/HMATRIX_BENCHMARKS_RESULTS.md +0 -0
  38. {radia-1.1.1 → radia-1.2.0}/docs/HMATRIX_ENHANCEMENT_PROPOSAL_2025.md +0 -0
  39. {radia-1.1.1 → radia-1.2.0}/docs/HMATRIX_IMPLEMENTATION_HISTORY.md +0 -0
  40. {radia-1.1.1 → radia-1.2.0}/docs/HMATRIX_SERIALIZATION.md +0 -0
  41. {radia-1.1.1 → radia-1.2.0}/docs/HMATRIX_USER_GUIDE.md +0 -0
  42. {radia-1.1.1 → radia-1.2.0}/docs/MATERIAL_API_IMPLEMENTATION.md +0 -0
  43. {radia-1.1.1 → radia-1.2.0}/docs/ML_PARAMETER_TUNING.md +0 -0
  44. {radia-1.1.1 → radia-1.2.0}/docs/NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md +0 -0
  45. {radia-1.1.1 → radia-1.2.0}/docs/NGSOLVE_INTEGRATION.md +0 -0
  46. {radia-1.1.1 → radia-1.2.0}/docs/NGSOLVE_USAGE_GUIDE.md +0 -0
  47. {radia-1.1.1 → radia-1.2.0}/docs/hmatrix_field_design.md +0 -0
  48. {radia-1.1.1 → radia-1.2.0}/docs/scripts/README.md +0 -0
  49. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/HMATRIX_ANALYSIS.md +0 -0
  50. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/HMATRIX_FIELD_EVALUATION_ISSUE.md +0 -0
  51. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/H_MATRIX_PARALLEL_OPTIMIZATION.md +0 -0
  52. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/NGBEM_ANALYSIS.md +0 -0
  53. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/NGSOLVE_SET_VS_INTERPOLATE.md +0 -0
  54. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/PROPOSAL_VECTORIZED_API.md +0 -0
  55. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/README.md +0 -0
  56. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/SET_VS_INTERPOLATE_SIMPLE.md +0 -0
  57. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/SOLVER_OPTIMIZATION_PROPOSAL.md +0 -0
  58. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/benchmark_gridfunction_set.py +0 -0
  59. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/demo_field_types.py +0 -0
  60. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/export_radia_geometry.py +0 -0
  61. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/radia_field.pvsm +0 -0
  62. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/test_batch_evaluation.py +0 -0
  63. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/test_batch_fld.py +0 -0
  64. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/test_coordinate_transform.py +0 -0
  65. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/test_mesh_convergence.py +0 -0
  66. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/test_set_vs_interpolate.py +0 -0
  67. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/verify_curl_A_equals_B.py +0 -0
  68. {radia-1.1.1 → radia-1.2.0}/examples/NGSolve_Integration/visualize_field.py +0 -0
  69. {radia-1.1.1 → radia-1.2.0}/examples/README.md +0 -0
  70. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/Cubit2Nastran.py +0 -0
  71. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/README.md +0 -0
  72. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/permeability_comparison.py +0 -0
  73. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/quadrupole_analytical.py +0 -0
  74. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/sphere_in_quadrupole.py +0 -0
  75. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/sphere_nastran_analysis.py +0 -0
  76. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/sphere_nastran_field_mu.pvsm +0 -0
  77. {radia-1.1.1 → radia-1.2.0}/examples/background_fields/sphere_nastran_geometry.vtk +0 -0
  78. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/README.md +0 -0
  79. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/coil_geometry.vtk +0 -0
  80. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/coil_model.py +0 -0
  81. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/complex_coil.pvsm +0 -0
  82. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/field_map.py +0 -0
  83. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/field_map.vtk +0 -0
  84. {radia-1.1.1 → radia-1.2.0}/examples/complex_coil_geometry/visualize_coils.py +0 -0
  85. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/README.md +0 -0
  86. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/electromagnet.pvsm +0 -0
  87. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/electromagnet.vtk +0 -0
  88. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/field_distribution.vtk +0 -0
  89. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/magnet.py +0 -0
  90. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/racetrack_coil_model.py +0 -0
  91. {radia-1.1.1 → radia-1.2.0}/examples/electromagnet/yoke_model.py +0 -0
  92. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/CONVERSION_NOTES.md +0 -0
  93. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/arc_current_dual_magnets.py +0 -0
  94. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/arc_current_with_magnet.py +0 -0
  95. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/chamfered_pole_piece.py +0 -0
  96. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/compare_magpylib.py +0 -0
  97. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/cubic_polyhedron_magnet.py +0 -0
  98. {radia-1.1.1 → radia-1.2.0}/examples/simple_problems/hmatrix_update_magnetization.py +0 -0
  99. {radia-1.1.1 → radia-1.2.0}/examples/smco_magnet_array/README.md +0 -0
  100. {radia-1.1.1 → radia-1.2.0}/examples/smco_magnet_array/smbo.pvsm +0 -0
  101. {radia-1.1.1 → radia-1.2.0}/examples/smco_magnet_array/smco_array.py +0 -0
  102. {radia-1.1.1 → radia-1.2.0}/examples/smco_magnet_array/smco_array.vtk +0 -0
  103. {radia-1.1.1 → radia-1.2.0}/examples/smco_magnet_array/smco_field_distribution.vtk +0 -0
  104. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/BENCHMARK_RESULTS.md +0 -0
  105. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/HMATRIX_FIELD_DESIGN.md +0 -0
  106. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/HMATRIX_FIELD_DESIGN_SIMPLIFIED.md +0 -0
  107. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/PHASE2B_REEVALUATION.md +0 -0
  108. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/README.md +0 -0
  109. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/SCALING_RESULTS.md +0 -0
  110. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_field_evaluation.py +0 -0
  111. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_hmatrix_scaling_exact.py +0 -0
  112. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_large_scale_comparison.py +0 -0
  113. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_parallel_construction.py +0 -0
  114. {radia-1.1.1/examples/H-matrix → radia-1.2.0/examples/solver_benchmarks}/benchmark_solver.py +0 -0
  115. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_solver_comparison.py +0 -0
  116. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_solver_scaling.py +0 -0
  117. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/benchmark_solver_scaling_extended.py +0 -0
  118. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/plot_benchmark_results.py +0 -0
  119. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/run_all_benchmarks.py +0 -0
  120. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/run_all_hmatrix_benchmarks.py +0 -0
  121. {radia-1.1.1 → radia-1.2.0}/examples/solver_benchmarks/verify_field_accuracy.py +0 -0
  122. {radia-1.1.1 → radia-1.2.0}/setup.cfg +0 -0
  123. {radia-1.1.1 → radia-1.2.0}/setup.py +0 -0
  124. {radia-1.1.1 → radia-1.2.0}/src/python/__init__.py +0 -0
  125. {radia-1.1.1 → radia-1.2.0}/src/python/nastran_reader.py +0 -0
  126. {radia-1.1.1 → radia-1.2.0}/src/python/radia.pyd +0 -0
  127. {radia-1.1.1 → radia-1.2.0}/src/python/radia_coil_builder.py +0 -0
  128. {radia-1.1.1 → radia-1.2.0}/src/python/radia_ngsolve_field.py +0 -0
  129. {radia-1.1.1 → radia-1.2.0}/src/python/radia_pyvista_viewer.py +0 -0
  130. {radia-1.1.1 → radia-1.2.0}/src/python/radia_vtk_export.py +0 -0
  131. {radia-1.1.1 → radia-1.2.0}/src/radia.egg-info/dependency_links.txt +0 -0
  132. {radia-1.1.1 → radia-1.2.0}/src/radia.egg-info/not-zip-safe +0 -0
  133. {radia-1.1.1 → radia-1.2.0}/src/radia.egg-info/requires.txt +0 -0
  134. {radia-1.1.1 → radia-1.2.0}/src/radia.egg-info/top_level.txt +0 -0
  135. {radia-1.1.1 → radia-1.2.0}/tests/README.md +0 -0
  136. {radia-1.1.1 → radia-1.2.0}/tests/__init__.py +0 -0
  137. {radia-1.1.1 → radia-1.2.0}/tests/benchmark_hmatrix.py +0 -0
  138. {radia-1.1.1 → radia-1.2.0}/tests/benchmarks/benchmark_correct.py +0 -0
  139. {radia-1.1.1 → radia-1.2.0}/tests/benchmarks/benchmark_heavy.py +0 -0
  140. {radia-1.1.1 → radia-1.2.0}/tests/benchmarks/benchmark_openmp.py +0 -0
  141. {radia-1.1.1 → radia-1.2.0}/tests/benchmarks/benchmark_threads.py +0 -0
  142. {radia-1.1.1 → radia-1.2.0}/tests/conftest.py +0 -0
  143. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase2a_final.py +0 -0
  144. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase2a_hmatrix_reuse.py +0 -0
  145. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase2a_with_field.py +0 -0
  146. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase2b_geometry_detection.py +0 -0
  147. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase3_magnetization_update.py +0 -0
  148. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase3b_large_problem.py +0 -0
  149. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase3b_serialization.py +0 -0
  150. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_phase3b_solver_cache.py +0 -0
  151. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_serialize_step1_build.py +0 -0
  152. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_serialize_step2_load.py +0 -0
  153. {radia-1.1.1 → radia-1.2.0}/tests/hmatrix/test_verify_field_simple.py +0 -0
  154. {radia-1.1.1 → radia-1.2.0}/tests/test_advanced.py +0 -0
  155. {radia-1.1.1 → radia-1.2.0}/tests/test_group_operations.py +0 -0
  156. {radia-1.1.1 → radia-1.2.0}/tests/test_materials.py +0 -0
  157. {radia-1.1.1 → radia-1.2.0}/tests/test_new_material_api.py +0 -0
  158. {radia-1.1.1 → radia-1.2.0}/tests/test_objbckg_simple.py +0 -0
  159. {radia-1.1.1 → radia-1.2.0}/tests/test_objbckgcf_alone.py +0 -0
  160. {radia-1.1.1 → radia-1.2.0}/tests/test_parallel_performance.py +0 -0
  161. {radia-1.1.1 → radia-1.2.0}/tests/test_rad_ngsolve.py +0 -0
  162. {radia-1.1.1 → radia-1.2.0}/tests/test_radhmat.py +0 -0
  163. {radia-1.1.1 → radia-1.2.0}/tests/test_radia.py +0 -0
  164. {radia-1.1.1 → radia-1.2.0}/tests/test_serialization.py +0 -0
  165. {radia-1.1.1 → radia-1.2.0}/tests/test_simple.py +0 -0
  166. {radia-1.1.1 → radia-1.2.0}/tests/test_square_coil_analytical.py +0 -0
  167. {radia-1.1.1 → radia-1.2.0}/tests/test_transformations.py +0 -0
  168. {radia-1.1.1 → radia-1.2.0}/tests/test_type_cast.py +0 -0
  169. {radia-1.1.1 → radia-1.2.0}/tests/test_utils.py +0 -0
  170. {radia-1.1.1 → radia-1.2.0}/tests/test_vector_potential.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: radia
3
- Version: 1.1.1
3
+ Version: 1.2.0
4
4
  Summary: Radia 3D Magnetostatics with NGSolve Integration and OpenMP Parallelization
5
5
  Home-page: https://github.com/ksugahar/Radia_NGSolve
6
6
  Author: Pascal Elleaume
@@ -0,0 +1,63 @@
1
+ # Radia Documentation
2
+
3
+ This folder contains the official documentation for Radia.
4
+
5
+ ## Documentation Organization
6
+
7
+ ### User Documentation (Essential Reading)
8
+
9
+ #### API Documentation
10
+ - [API_REFERENCE.md](API_REFERENCE.md) - Complete Python API reference
11
+ - [API_EXTENSIONS.md](API_EXTENSIONS.md) - Extended features and new APIs
12
+
13
+ #### H-Matrix Acceleration
14
+ - [HMATRIX_USER_GUIDE.md](HMATRIX_USER_GUIDE.md) - User guide for H-matrix acceleration
15
+ - [HMATRIX_BENCHMARKS_RESULTS.md](HMATRIX_BENCHMARKS_RESULTS.md) - Performance benchmarks
16
+ - [HMATRIX_SERIALIZATION.md](HMATRIX_SERIALIZATION.md) - Disk cache feature
17
+
18
+ #### NGSolve Integration
19
+ - [NGSOLVE_USAGE_GUIDE.md](NGSOLVE_USAGE_GUIDE.md) - How to use Radia with NGSolve
20
+ - [NGSOLVE_INTEGRATION.md](NGSOLVE_INTEGRATION.md) - Integration overview
21
+
22
+ ### Developer Documentation (Implementation Details)
23
+
24
+ #### H-Matrix Implementation
25
+ - [HMATRIX_IMPLEMENTATION_HISTORY.md](HMATRIX_IMPLEMENTATION_HISTORY.md) - Development history
26
+ - [HMATRIX_ENHANCEMENT_PROPOSAL_2025.md](HMATRIX_ENHANCEMENT_PROPOSAL_2025.md) - Future enhancements
27
+ - [hmatrix_field_design.md](hmatrix_field_design.md) - Field evaluation design
28
+ - [ML_PARAMETER_TUNING.md](ML_PARAMETER_TUNING.md) - Machine learning parameter optimization
29
+
30
+ #### Material and Field APIs
31
+ - [MATERIAL_API_IMPLEMENTATION.md](MATERIAL_API_IMPLEMENTATION.md) - Material property implementation
32
+ - [CF_BACKGROUND_FIELD_IMPLEMENTATION.md](CF_BACKGROUND_FIELD_IMPLEMENTATION.md) - Background field implementation
33
+ - [NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md](NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md) - NGSolve CoefficientFunction design
34
+
35
+ ## Additional Resources
36
+
37
+ ### Development Notes
38
+ Implementation notes, performance analysis, and troubleshooting are in [../dev/notes/](../dev/notes/):
39
+ - Implementation details (directory structure, conversion reports)
40
+ - Performance analysis (OpenMP, H-matrix optimizations)
41
+ - Issue resolutions (DLL issues, integration problems)
42
+
43
+ ### Release History
44
+ Release notes and version history are in [../dev/notes/releases/](../dev/notes/releases/).
45
+
46
+ ### Examples
47
+ Working code examples are in [../examples/](../examples/):
48
+ - [simple_problems/](../examples/simple_problems/) - Basic examples
49
+ - [solver_benchmarks/](../examples/solver_benchmarks/) - Performance benchmarks
50
+ - [ngsolve_integration/](../examples/ngsolve_integration/) - NGSolve integration examples
51
+
52
+ ## Quick Start
53
+
54
+ 1. **New users**: Start with [API_REFERENCE.md](API_REFERENCE.md) and [examples/simple_problems/](../examples/simple_problems/)
55
+ 2. **Performance optimization**: Read [HMATRIX_USER_GUIDE.md](HMATRIX_USER_GUIDE.md)
56
+ 3. **NGSolve users**: Read [NGSOLVE_USAGE_GUIDE.md](NGSOLVE_USAGE_GUIDE.md)
57
+ 4. **Contributors**: Review [HMATRIX_IMPLEMENTATION_HISTORY.md](HMATRIX_IMPLEMENTATION_HISTORY.md)
58
+
59
+ ## See Also
60
+
61
+ - [Main README](../README.md) - Project overview and installation
62
+ - [Build Instructions](../README_BUILD.md) - How to build from source
63
+ - [CHANGELOG](../CHANGELOG.md) - Version history
@@ -0,0 +1,134 @@
1
+ # Radia Simple Examples
2
+
3
+ This folder contains basic Radia examples demonstrating fundamental features.
4
+
5
+ ## Example Files
6
+
7
+ - [arc_current_with_magnet.py](arc_current_with_magnet.py) - Arc current with rectangular magnet
8
+ - [arc_current_dual_magnets.py](arc_current_dual_magnets.py) - Arc current with two magnets
9
+ - [chamfered_pole_piece.py](chamfered_pole_piece.py) - Multiple extrusion with chamfer
10
+ - [cubic_polyhedron_magnet.py](cubic_polyhedron_magnet.py) - Polyhedron (cube) magnet
11
+ - [compare_magpylib.py](compare_magpylib.py) - Comparison with magpylib library
12
+ - [hmatrix_update_magnetization.py](hmatrix_update_magnetization.py) - H-matrix magnetization update
13
+
14
+ ## How to Run
15
+
16
+ Each Python file can be run independently:
17
+
18
+ ```bash
19
+ cd examples/simple_problems
20
+ python arc_current_with_magnet.py
21
+ python arc_current_dual_magnets.py
22
+ python chamfered_pole_piece.py
23
+ python cubic_polyhedron_magnet.py
24
+ ```
25
+
26
+ ## Example Descriptions
27
+
28
+ ### arc_current_with_magnet.py
29
+ - Creates arc current element and rectangular magnet
30
+ - Applies linear material properties
31
+ - Calculates magnetic field at origin
32
+
33
+ **Key Functions:**
34
+ - `rad.ObjArcCur()` - Create arc current element
35
+ - `rad.ObjRecMag()` - Create rectangular magnet
36
+ - `rad.MatLin([ksi_par, ksi_perp], [mx,my,mz])` - Define anisotropic linear material
37
+ - `rad.MatApl(obj, mat)` - Apply material to object
38
+ - `rad.Fld(obj, 'b', [x,y,z])` - Calculate magnetic field
39
+
40
+ ### arc_current_dual_magnets.py
41
+ - Arc current with two magnets at different positions
42
+ - Manages multiple objects with container
43
+ - Applies linear material properties
44
+
45
+ **Key Functions:**
46
+ - `rad.ObjCnt([obj1, obj2, ...])` - Create object container
47
+
48
+ ### chamfered_pole_piece.py
49
+ - Complex extrusion shape with chamfer
50
+ - Defines multiple cross-sections and extrudes
51
+ - Element subdivision
52
+
53
+ **Key Functions:**
54
+ - `rad.ObjMltExtRtg()` - Create multiple extrusion rectangle
55
+ - `rad.ObjDivMag()` - Subdivide magnet
56
+
57
+ ### cubic_polyhedron_magnet.py
58
+ - Creates polyhedron from vertices and faces
59
+ - Cube example
60
+
61
+ **Key Functions:**
62
+ - `rad.ObjPolyhdr()` - Create polyhedron
63
+
64
+ ## Radia Python API Basics
65
+
66
+ 1. **Import module**
67
+ ```python
68
+ import radia as rad
69
+ ```
70
+
71
+ 2. **Create objects**
72
+ ```python
73
+ # Rectangular magnet: position, dimensions, magnetization
74
+ mag = rad.ObjRecMag([0,0,0], [10,10,10], [0,0,1.0])
75
+
76
+ # Arc current: center, [rmin,rmax], [phimin,phimax], height, segments, current
77
+ arc = rad.ObjArcCur([0,0,0], [100,150], [0, 6.28], 20, 20, 10)
78
+ ```
79
+
80
+ 3. **Material properties**
81
+ ```python
82
+ # Anisotropic linear material: [ksi_parallel, ksi_perpendicular], magnetization vector
83
+ mat = rad.MatLin([0.06, 0.17], [0,0,1])
84
+ rad.MatApl(obj, mat)
85
+ ```
86
+
87
+ 4. **Field calculation**
88
+ ```python
89
+ # Magnetic flux density [T]
90
+ B = rad.Fld(obj, 'b', [x, y, z])
91
+
92
+ # Magnetic field strength [A/m]
93
+ H = rad.Fld(obj, 'h', [x, y, z])
94
+ ```
95
+
96
+ 5. **3D Visualization**
97
+ ```python
98
+ # Export to VTK for ParaView visualization
99
+ from radia_vtk_export import exportGeometryToVTK
100
+ exportGeometryToVTK(obj, 'output.vtk')
101
+ ```
102
+
103
+ ## Requirements
104
+
105
+ - Python 3.12+
106
+ - Radia module (installed via pip or built from source)
107
+ - NumPy
108
+
109
+ ## Troubleshooting
110
+
111
+ ### ModuleNotFoundError: No module named 'radia'
112
+
113
+ Install Radia:
114
+ ```bash
115
+ pip install radia
116
+ ```
117
+
118
+ Or build from source and install locally:
119
+ ```bash
120
+ cd ../..
121
+ python -m pip install .
122
+ ```
123
+
124
+ ### Field calculation returns zero
125
+
126
+ - Check that magnetization is set on the object
127
+ - Verify material properties are correctly applied
128
+ - Ensure object ID is valid
129
+
130
+ ## See Also
131
+
132
+ - [Radia Official Documentation](https://www.esrf.fr/Accelerators/Groups/InsertionDevices/Software/Radia)
133
+ - [API Reference](../../docs/API_REFERENCE.md)
134
+ - [H-Matrix User Guide](../../docs/HMATRIX_USER_GUIDE.md)
@@ -9,7 +9,8 @@ This test demonstrates proper H-matrix usage as specified in CLAUDE.md:
9
9
  """
10
10
 
11
11
  import sys
12
- sys.path.insert(0, r"S:\Radia\01_GitHub\build\Release")
12
+ import os
13
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../build/Release'))
13
14
 
14
15
  import radia as rad
15
16
  import numpy as np
@@ -5,9 +5,10 @@ Linear materials converge in 0-1 iterations, so only matrix construction is rele
5
5
  """
6
6
 
7
7
  import sys
8
+ import os
8
9
  import numpy as np
9
10
  from time import perf_counter
10
- sys.path.insert(0, r"S:\Radia\01_GitHub\build\Release")
11
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../build/Release'))
11
12
 
12
13
  import radia as rad
13
14
 
@@ -5,9 +5,10 @@ Verify O(N^2) scaling
5
5
  """
6
6
 
7
7
  import sys
8
+ import os
8
9
  import numpy as np
9
10
  from time import perf_counter
10
- sys.path.insert(0, r"S:\Radia\01_GitHub\build\Release")
11
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../build/Release'))
11
12
 
12
13
  import radia as rad
13
14
 
@@ -0,0 +1,264 @@
1
+ #!/usr/bin/env python
2
+ """
3
+ Solver Methods Benchmark: Direct vs Relaxation vs Relaxation+H-matrix
4
+
5
+ Compares three solver methods for magnetic field problems:
6
+ 1. Direct calculation (no solver, uses initial magnetization)
7
+ 2. Standard relaxation solver
8
+ 3. H-matrix accelerated relaxation solver
9
+
10
+ Problem: Nonlinear magnetic material with applied background field
11
+
12
+ Performance metrics:
13
+ - Computation time
14
+ - Field accuracy (comparing all methods)
15
+ """
16
+
17
+ import sys
18
+ import os
19
+ import time
20
+ sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../build/Release'))
21
+
22
+ import radia as rad
23
+ import numpy as np
24
+
25
+ print("=" * 80)
26
+ print("Solver Methods Benchmark")
27
+ print("Direct / Relaxation / Relaxation+H-matrix Comparison")
28
+ print("=" * 80)
29
+
30
+ # Test configurations
31
+ test_cases = [
32
+ {"n": 3, "desc": "Small (N=27)"},
33
+ {"n": 5, "desc": "Medium (N=125)"},
34
+ {"n": 7, "desc": "Large (N=343)"},
35
+ ]
36
+
37
+ # Solver parameters
38
+ precision = 0.0001
39
+ max_iter = 1000
40
+
41
+ # Background field (uniform field applied to material)
42
+ # Note: In Radia, ObjBckg() uses Tesla, and field values are in Radia's internal units
43
+ # where H and B are numerically equal. Use value ~1.0 for moderate field.
44
+ H_bg = [1.0, 0, 0] # 1.0 T background field in X direction
45
+
46
+ # Observation point
47
+ obs_point = [0, 0, 50] # 50mm above center
48
+
49
+ print("\nProblem Setup:")
50
+ print(" Material: Nonlinear (Steel37)")
51
+ print(" Background field: [{}, {}, {}] T".format(*H_bg))
52
+ print(" Observation point: [{}, {}, {}] mm".format(*obs_point))
53
+ print(" Solver precision: {}".format(precision))
54
+ print(" Max iterations: {}".format(max_iter))
55
+
56
+ results = []
57
+
58
+ for test in test_cases:
59
+ n = test["n"]
60
+ desc = test["desc"]
61
+
62
+ print("\n" + "=" * 80)
63
+ print("Test Case: {}".format(desc))
64
+ print("=" * 80)
65
+
66
+ size = 20.0 # mm (total cube size)
67
+ elem_size = size / n
68
+
69
+ # ========================================
70
+ # Method 1: Direct Calculation
71
+ # ========================================
72
+ print("\n[Method 1] Direct Calculation (no solver)")
73
+ print("-" * 80)
74
+ rad.UtiDelAll()
75
+
76
+ # Create material
77
+ mat = rad.MatSatIsoFrm([1596.3, 1.1488], [133.11, 0.4268], [18.713, 0.4759])
78
+
79
+ # Create geometry with initial magnetization
80
+ elements = []
81
+ for i in range(n):
82
+ for j in range(n):
83
+ for k in range(n):
84
+ x = -size/2 + (i + 0.5) * elem_size
85
+ y = -size/2 + (j + 0.5) * elem_size
86
+ z = -size/2 + (k + 0.5) * elem_size
87
+ # No initial magnetization (material will respond to background field)
88
+ elem = rad.ObjRecMag([x, y, z], [elem_size, elem_size, elem_size])
89
+ rad.MatApl(elem, mat)
90
+ elements.append(elem)
91
+
92
+ # Add background field source to container
93
+ bg_field = rad.ObjBckg(H_bg)
94
+ container = rad.ObjCnt(elements + [bg_field])
95
+
96
+ print(" Elements: {} ({}×{}×{})".format(len(elements), n, n, n))
97
+
98
+ # Direct field calculation (using initial magnetization only)
99
+ t0 = time.perf_counter()
100
+ H_direct = rad.Fld(container, 'h', obs_point)
101
+ t_direct = time.perf_counter() - t0
102
+
103
+ print(" Time: {:.6f} s".format(t_direct))
104
+ print(" H: [{:.6e}, {:.6e}, {:.6e}] A/m".format(*H_direct))
105
+ H_mag_direct = np.linalg.norm(H_direct)
106
+ print(" |H|: {:.6e} A/m".format(H_mag_direct))
107
+
108
+ # ========================================
109
+ # Method 2: Standard Relaxation
110
+ # ========================================
111
+ print("\n[Method 2] Standard Relaxation (no H-matrix)")
112
+ print("-" * 80)
113
+ rad.UtiDelAll()
114
+
115
+ # Recreate geometry
116
+ mat = rad.MatSatIsoFrm([1596.3, 1.1488], [133.11, 0.4268], [18.713, 0.4759])
117
+
118
+ elements = []
119
+ for i in range(n):
120
+ for j in range(n):
121
+ for k in range(n):
122
+ x = -size/2 + (i + 0.5) * elem_size
123
+ y = -size/2 + (j + 0.5) * elem_size
124
+ z = -size/2 + (k + 0.5) * elem_size
125
+ # No initial magnetization - pure soft magnetic material
126
+ elem = rad.ObjRecMag([x, y, z], [elem_size, elem_size, elem_size])
127
+ rad.MatApl(elem, mat)
128
+ elements.append(elem)
129
+
130
+ # Add background field source to container
131
+ bg_field = rad.ObjBckg(H_bg)
132
+ container = rad.ObjCnt(elements + [bg_field])
133
+
134
+ # Disable H-matrix for standard relaxation
135
+ rad.SolverHMatrixDisable()
136
+
137
+ # Run relaxation solver
138
+ t0 = time.perf_counter()
139
+ result_relax = rad.Solve(container, precision, max_iter)
140
+ t_relax = time.perf_counter() - t0
141
+
142
+ H_relax = rad.Fld(container, 'h', obs_point)
143
+
144
+ print(" Time: {:.6f} s".format(t_relax))
145
+ print(" H: [{:.6e}, {:.6e}, {:.6e}] A/m".format(*H_relax))
146
+ H_mag_relax = np.linalg.norm(H_relax)
147
+ print(" |H|: {:.6e} A/m".format(H_mag_relax))
148
+ print(" Convergence: {}".format(result_relax))
149
+
150
+ # ========================================
151
+ # Method 3: H-matrix Relaxation
152
+ # ========================================
153
+ print("\n[Method 3] H-matrix Accelerated Relaxation")
154
+ print("-" * 80)
155
+ rad.UtiDelAll()
156
+
157
+ # Recreate geometry
158
+ mat = rad.MatSatIsoFrm([1596.3, 1.1488], [133.11, 0.4268], [18.713, 0.4759])
159
+
160
+ elements = []
161
+ for i in range(n):
162
+ for j in range(n):
163
+ for k in range(n):
164
+ x = -size/2 + (i + 0.5) * elem_size
165
+ y = -size/2 + (j + 0.5) * elem_size
166
+ z = -size/2 + (k + 0.5) * elem_size
167
+ # No initial magnetization - pure soft magnetic material
168
+ elem = rad.ObjRecMag([x, y, z], [elem_size, elem_size, elem_size])
169
+ rad.MatApl(elem, mat)
170
+ elements.append(elem)
171
+
172
+ # Add background field source to container
173
+ bg_field = rad.ObjBckg(H_bg)
174
+ container = rad.ObjCnt(elements + [bg_field])
175
+
176
+ # Enable H-matrix for relaxation
177
+ rad.SolverHMatrixEnable()
178
+
179
+ # Run relaxation solver with H-matrix
180
+ t0 = time.perf_counter()
181
+ result_hmat = rad.Solve(container, precision, max_iter)
182
+ t_hmat = time.perf_counter() - t0
183
+
184
+ H_hmat = rad.Fld(container, 'h', obs_point)
185
+
186
+ # Get H-matrix stats
187
+ stats = rad.GetHMatrixStats()
188
+
189
+ print(" Time: {:.6f} s".format(t_hmat))
190
+ print(" H: [{:.6e}, {:.6e}, {:.6e}] A/m".format(*H_hmat))
191
+ H_mag_hmat = np.linalg.norm(H_hmat)
192
+ print(" |H|: {:.6e} A/m".format(H_mag_hmat))
193
+ print(" Convergence: {}".format(result_hmat))
194
+ print(" H-matrix memory: {:.3f} MB".format(stats[2]))
195
+
196
+ # ========================================
197
+ # Comparison
198
+ # ========================================
199
+ print("\n[Comparison]")
200
+ print("-" * 80)
201
+
202
+ # Use standard relaxation as reference
203
+ H_ref = np.array(H_relax)
204
+ H_ref_mag = np.linalg.norm(H_ref)
205
+
206
+ # Direct vs Relaxation error
207
+ diff_direct = np.array(H_direct) - H_ref
208
+ err_direct = np.linalg.norm(diff_direct) / (H_ref_mag + 1e-15) * 100
209
+
210
+ # H-matrix vs Relaxation error
211
+ diff_hmat = np.array(H_hmat) - H_ref
212
+ err_hmat = np.linalg.norm(diff_hmat) / (H_ref_mag + 1e-15) * 100
213
+
214
+ print(" Reference: Standard Relaxation |H| = {:.6e} A/m".format(H_ref_mag))
215
+ print("")
216
+ print(" Method Time (s) |H| (A/m) Error (%) Speedup")
217
+ print(" " + "-" * 72)
218
+ print(" Direct {:9.6f} {:14.6e} {:11.4f} -".format(
219
+ t_direct, H_mag_direct, err_direct))
220
+ print(" Relaxation {:9.6f} {:14.6e} {:11.4f} 1.00x".format(
221
+ t_relax, H_mag_relax, 0.0))
222
+ print(" H-matrix {:9.6f} {:14.6e} {:11.4f} {:7.2f}x".format(
223
+ t_hmat, H_mag_hmat, err_hmat, t_relax/t_hmat if t_hmat > 0 else 0))
224
+
225
+ results.append({
226
+ "n": n,
227
+ "n_elem": n**3,
228
+ "t_direct": t_direct,
229
+ "t_relax": t_relax,
230
+ "t_hmat": t_hmat,
231
+ "err_direct": err_direct,
232
+ "err_hmat": err_hmat,
233
+ "speedup": t_relax/t_hmat if t_hmat > 0 else 0
234
+ })
235
+
236
+ # ========================================
237
+ # Summary
238
+ # ========================================
239
+ print("\n" + "=" * 80)
240
+ print("SUMMARY")
241
+ print("=" * 80)
242
+ print("\n{:>6s} {:>8s} {:>12s} {:>12s} {:>12s} {:>10s} {:>10s} {:>10s}".format(
243
+ "N", "Elements",
244
+ "Direct (s)", "Relax (s)", "H-mat (s)",
245
+ "Dir Err(%)", "H-mat Err(%)",
246
+ "Speedup"))
247
+ print("-" * 80)
248
+
249
+ for r in results:
250
+ print("{:>6d} {:>8d} {:>12.6f} {:>12.6f} {:>12.6f} {:>10.4f} {:>10.4f} {:>10.2f}x".format(
251
+ r["n"], r["n_elem"],
252
+ r["t_direct"], r["t_relax"], r["t_hmat"],
253
+ r["err_direct"], r["err_hmat"],
254
+ r["speedup"]))
255
+
256
+ print("=" * 80)
257
+ print("\nNotes:")
258
+ print(" - Direct: Uses initial magnetization only (no iterations)")
259
+ print(" - Relaxation: Standard solver (reference for accuracy)")
260
+ print(" - H-matrix: Accelerated solver (best for large problems N > 100)")
261
+ print(" - Error: Relative difference from Relaxation method")
262
+ print("=" * 80)
263
+
264
+ rad.UtiDelAll()
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "radia"
7
- version = "1.1.1"
7
+ version = "1.2.0"
8
8
  description = "Radia 3D Magnetostatics with NGSolve Integration and OpenMP Parallelization"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: radia
3
- Version: 1.1.1
3
+ Version: 1.2.0
4
4
  Summary: Radia 3D Magnetostatics with NGSolve Integration and OpenMP Parallelization
5
5
  Home-page: https://github.com/ksugahar/Radia_NGSolve
6
6
  Author: Pascal Elleaume
@@ -8,31 +8,20 @@ setup.py
8
8
  docs/API_EXTENSIONS.md
9
9
  docs/API_REFERENCE.md
10
10
  docs/CF_BACKGROUND_FIELD_IMPLEMENTATION.md
11
- docs/DIRECTORY_STRUCTURE.md
12
- docs/EXAMPLES_REVIEW.md
13
11
  docs/HMATRIX_BENCHMARKS_RESULTS.md
14
12
  docs/HMATRIX_ENHANCEMENT_PROPOSAL_2025.md
15
13
  docs/HMATRIX_IMPLEMENTATION_HISTORY.md
16
- docs/HMATRIX_MATVEC_OPTIMIZATION.md
17
- docs/HMATRIX_PERFORMANCE_IMPROVEMENT.md
18
14
  docs/HMATRIX_SERIALIZATION.md
19
15
  docs/HMATRIX_USER_GUIDE.md
20
16
  docs/MATERIAL_API_IMPLEMENTATION.md
21
17
  docs/ML_PARAMETER_TUNING.md
22
18
  docs/NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md
23
- docs/NGSOLVE_DLL_ISSUE.md
24
19
  docs/NGSOLVE_INTEGRATION.md
25
- docs/NGSOLVE_PYTHON_SOLUTION.md
26
20
  docs/NGSOLVE_USAGE_GUIDE.md
27
- docs/OPENMP_PERFORMANCE_REPORT.md
28
- docs/PHASE3_PERFORMANCE_ISSUE.md
29
- docs/PYPI_RELEASE_v1.0.10.md
30
- docs/RELEASE_NOTES_v1.0.10.md
31
- docs/TAB_CONVERSION_REPORT.md
21
+ docs/README.md
32
22
  docs/hmatrix_field_design.md
33
23
  docs/scripts/README.md
34
24
  examples/README.md
35
- examples/H-matrix/benchmark_solver.py
36
25
  examples/NGSolve_Integration/HMATRIX_ANALYSIS.md
37
26
  examples/NGSolve_Integration/HMATRIX_FIELD_EVALUATION_ISSUE.md
38
27
  examples/NGSolve_Integration/H_MATRIX_PARALLEL_OPTIMIZATION.md
@@ -43,7 +32,6 @@ examples/NGSolve_Integration/README.md
43
32
  examples/NGSolve_Integration/SET_VS_INTERPOLATE_SIMPLE.md
44
33
  examples/NGSolve_Integration/SOLVER_OPTIMIZATION_PROPOSAL.md
45
34
  examples/NGSolve_Integration/benchmark_gridfunction_set.py
46
- examples/NGSolve_Integration/debug_field_values.py
47
35
  examples/NGSolve_Integration/demo_field_types.py
48
36
  examples/NGSolve_Integration/export_radia_geometry.py
49
37
  examples/NGSolve_Integration/radia_field.pvsm
@@ -76,6 +64,26 @@ examples/electromagnet/field_distribution.vtk
76
64
  examples/electromagnet/magnet.py
77
65
  examples/electromagnet/racetrack_coil_model.py
78
66
  examples/electromagnet/yoke_model.py
67
+ examples/ngsolve_integration/HMATRIX_ANALYSIS.md
68
+ examples/ngsolve_integration/HMATRIX_FIELD_EVALUATION_ISSUE.md
69
+ examples/ngsolve_integration/H_MATRIX_PARALLEL_OPTIMIZATION.md
70
+ examples/ngsolve_integration/NGBEM_ANALYSIS.md
71
+ examples/ngsolve_integration/NGSOLVE_SET_VS_INTERPOLATE.md
72
+ examples/ngsolve_integration/PROPOSAL_VECTORIZED_API.md
73
+ examples/ngsolve_integration/README.md
74
+ examples/ngsolve_integration/SET_VS_INTERPOLATE_SIMPLE.md
75
+ examples/ngsolve_integration/SOLVER_OPTIMIZATION_PROPOSAL.md
76
+ examples/ngsolve_integration/benchmark_gridfunction_set.py
77
+ examples/ngsolve_integration/demo_field_types.py
78
+ examples/ngsolve_integration/export_radia_geometry.py
79
+ examples/ngsolve_integration/radia_field.pvsm
80
+ examples/ngsolve_integration/test_batch_evaluation.py
81
+ examples/ngsolve_integration/test_batch_fld.py
82
+ examples/ngsolve_integration/test_coordinate_transform.py
83
+ examples/ngsolve_integration/test_mesh_convergence.py
84
+ examples/ngsolve_integration/test_set_vs_interpolate.py
85
+ examples/ngsolve_integration/verify_curl_A_equals_B.py
86
+ examples/ngsolve_integration/visualize_field.py
79
87
  examples/simple_problems/CONVERSION_NOTES.md
80
88
  examples/simple_problems/README.md
81
89
  examples/simple_problems/arc_current_dual_magnets.py
@@ -104,6 +112,7 @@ examples/solver_benchmarks/benchmark_matrix_construction.py
104
112
  examples/solver_benchmarks/benchmark_parallel_construction.py
105
113
  examples/solver_benchmarks/benchmark_solver.py
106
114
  examples/solver_benchmarks/benchmark_solver_comparison.py
115
+ examples/solver_benchmarks/benchmark_solver_methods.py
107
116
  examples/solver_benchmarks/benchmark_solver_scaling.py
108
117
  examples/solver_benchmarks/benchmark_solver_scaling_extended.py
109
118
  examples/solver_benchmarks/plot_benchmark_results.py
@@ -130,6 +139,7 @@ tests/benchmark_hmatrix.py
130
139
  tests/conftest.py
131
140
  tests/test_advanced.py
132
141
  tests/test_group_operations.py
142
+ tests/test_magpylib_comparison.py
133
143
  tests/test_materials.py
134
144
  tests/test_new_material_api.py
135
145
  tests/test_objbckg_simple.py
@@ -143,6 +153,7 @@ tests/test_simple.py
143
153
  tests/test_square_coil_analytical.py
144
154
  tests/test_transformations.py
145
155
  tests/test_type_cast.py
156
+ tests/test_update_hmatrix_magnetization.py
146
157
  tests/test_utils.py
147
158
  tests/test_vector_potential.py
148
159
  tests/benchmarks/benchmark_correct.py