radia 1.3.10__tar.gz → 1.3.13__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 (214) hide show
  1. {radia-1.3.10/src/radia.egg-info → radia-1.3.13}/PKG-INFO +1 -1
  2. {radia-1.3.10 → radia-1.3.13}/docs/MESH_MSC_API_DESIGN.md +8 -6
  3. {radia-1.3.10 → radia-1.3.13}/docs/MMM_MSC_IMPLEMENTATION.md +2 -2
  4. {radia-1.3.10 → radia-1.3.13}/pyproject.toml +1 -1
  5. {radia-1.3.10 → radia-1.3.13}/src/radia/__init__.py +1 -1
  6. radia-1.3.13/src/radia/radia.pyd +0 -0
  7. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_ngsolve.pyd +0 -0
  8. {radia-1.3.10 → radia-1.3.13/src/radia.egg-info}/PKG-INFO +1 -1
  9. {radia-1.3.10 → radia-1.3.13}/src/radia.egg-info/SOURCES.txt +0 -1
  10. radia-1.3.10/examples/cube_uniform_field/nonlinear/test_lu_vs_bicgstab.py +0 -82
  11. radia-1.3.10/src/radia/radia.pyd +0 -0
  12. {radia-1.3.10 → radia-1.3.13}/COPYRIGHT.txt +0 -0
  13. {radia-1.3.10 → radia-1.3.13}/LICENSE +0 -0
  14. {radia-1.3.10 → radia-1.3.13}/MANIFEST.in +0 -0
  15. {radia-1.3.10 → radia-1.3.13}/README.md +0 -0
  16. {radia-1.3.10 → radia-1.3.13}/docs/API_EXTENSIONS.md +0 -0
  17. {radia-1.3.10 → radia-1.3.13}/docs/API_REFERENCE.md +0 -0
  18. {radia-1.3.10 → radia-1.3.13}/docs/CF_BACKGROUND_FIELD_IMPLEMENTATION.md +0 -0
  19. {radia-1.3.10 → radia-1.3.13}/docs/HMATRIX_EVALUATION.md +0 -0
  20. {radia-1.3.10 → radia-1.3.13}/docs/HMATRIX_SERIALIZATION.md +0 -0
  21. {radia-1.3.10 → radia-1.3.13}/docs/HMATRIX_USER_GUIDE.md +0 -0
  22. {radia-1.3.10 → radia-1.3.13}/docs/HYBRID_DOF_SOLVER_DESIGN.md +0 -0
  23. {radia-1.3.10 → radia-1.3.13}/docs/MATERIAL_API_IMPLEMENTATION.md +0 -0
  24. {radia-1.3.10 → radia-1.3.13}/docs/ML_PARAMETER_TUNING.md +0 -0
  25. {radia-1.3.10 → radia-1.3.13}/docs/NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md +0 -0
  26. {radia-1.3.10 → radia-1.3.13}/docs/NGSOLVE_INTEGRATION.md +0 -0
  27. {radia-1.3.10 → radia-1.3.13}/docs/NGSOLVE_USAGE_GUIDE.md +0 -0
  28. {radia-1.3.10 → radia-1.3.13}/docs/README.md +0 -0
  29. {radia-1.3.10 → radia-1.3.13}/docs/SOLVER_METHODS.md +0 -0
  30. {radia-1.3.10 → radia-1.3.13}/docs/scripts/README.md +0 -0
  31. {radia-1.3.10 → radia-1.3.13}/examples/README.md +0 -0
  32. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/README.md +0 -0
  33. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/cubit_to_nastran.py +0 -0
  34. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/permeability_comparison.py +0 -0
  35. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/quadrupole_analytical.py +0 -0
  36. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/quadrupole_analytical.vtk.vtk +0 -0
  37. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/sphere_in_quadrupole.py +0 -0
  38. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/sphere_nastran_analysis.py +0 -0
  39. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/sphere_nastran_field_mu.pvsm +0 -0
  40. {radia-1.3.10 → radia-1.3.13}/examples/background_fields/sphere_nastran_geometry.vtk +0 -0
  41. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/README.md +0 -0
  42. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/coil_geometry.vtk +0 -0
  43. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/coil_model.py +0 -0
  44. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/complex_coil.pvsm +0 -0
  45. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/field_map.py +0 -0
  46. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/field_map.vtk +0 -0
  47. {radia-1.3.10 → radia-1.3.13}/examples/complex_coil_geometry/visualize_coils.py +0 -0
  48. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/README.md +0 -0
  49. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/README.md +0 -0
  50. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/README_CUBE_BENCHMARK.md +0 -0
  51. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_bicgstab_dense.py +0 -0
  52. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_external_field.py +0 -0
  53. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_high_mu.py +0 -0
  54. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_mesh_convergence.py +0 -0
  55. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_solver_methods.py +0 -0
  56. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_tetra_vs_hex.py +0 -0
  57. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/benchmark_tetra_vs_ngsolve.py +0 -0
  58. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/compare_external_field.py +0 -0
  59. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/cube_benchmark_external_field.py +0 -0
  60. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/cube_benchmark_radia.vtk +0 -0
  61. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/evaluate_perturbation_field.py +0 -0
  62. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/precision_evaluation.py +0 -0
  63. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/test_method9_fine_mesh.py +0 -0
  64. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/linear/test_method9_high_mu.py +0 -0
  65. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/README.md +0 -0
  66. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_bicgstab_hex.py +0 -0
  67. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_conditions.py +0 -0
  68. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_element_types.py +0 -0
  69. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_hexa_unified.py +0 -0
  70. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_hexahedron_msc.py +0 -0
  71. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_nonlinear_tetra_vs_hex.py +0 -0
  72. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_solver_methods.py +0 -0
  73. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_tetra_netgen.py +0 -0
  74. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/benchmark_tetra_unified.py +0 -0
  75. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/compare_radia_elfmagic_field.py +0 -0
  76. {radia-1.3.10 → radia-1.3.13}/examples/cube_uniform_field/nonlinear/compare_tetra_methods.py +0 -0
  77. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/README.md +0 -0
  78. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/Radia_model.vtk +0 -0
  79. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/York.vtk +0 -0
  80. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/field_distribution.vtk +0 -0
  81. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/main_simulation_workflow.py +0 -0
  82. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/visualize_paraview.py +0 -0
  83. {radia-1.3.10 → radia-1.3.13}/examples/electromagnet/york_cubit_mesh.py +0 -0
  84. {radia-1.3.10 → radia-1.3.13}/examples/magpylib_integration/README.md +0 -0
  85. {radia-1.3.10 → radia-1.3.13}/examples/magpylib_integration/cylinder_magnet_examples.py +0 -0
  86. {radia-1.3.10 → radia-1.3.13}/examples/magpylib_integration/demo_magpylib_integration.py +0 -0
  87. {radia-1.3.10 → radia-1.3.13}/examples/magpylib_integration/sphere_in_halbach_cylinder.py +0 -0
  88. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/README.md +0 -0
  89. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/benchmark_gridfunction_set.py +0 -0
  90. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/demo_basic_field.py +0 -0
  91. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/demo_batch_evaluation.py +0 -0
  92. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/demo_coordinate_transform.py +0 -0
  93. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/demo_field_types.py +0 -0
  94. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/demo_hdiv_projection.py +0 -0
  95. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/RADIA_TETRA_ROOT_CAUSE.md +0 -0
  96. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/README.md +0 -0
  97. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/compare_radia_ngsolve_cube.py +0 -0
  98. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/cube_hex.vtk +0 -0
  99. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/demo_tetrahedral_methods_comparison.py +0 -0
  100. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_cube_graded_mesh.vtk +0 -0
  101. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_cube_uniform_field.py +0 -0
  102. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_tet_mesh.vtk +0 -0
  103. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/mesh_magnetization_import/sphere_domain_graded_mesh.vtk +0 -0
  104. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/test_batch_evaluation.py +0 -0
  105. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/test_unit_conversion.py +0 -0
  106. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/verify_curl_A_equals_B.py +0 -0
  107. {radia-1.3.10 → radia-1.3.13}/examples/ngsolve_integration/visualize_field.py +0 -0
  108. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/CONVERSION_NOTES.md +0 -0
  109. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/README.md +0 -0
  110. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/arc_current_dual_magnets.py +0 -0
  111. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/arc_current_with_magnet.py +0 -0
  112. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/chamfered_pole_piece.py +0 -0
  113. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/compare_magpylib.py +0 -0
  114. {radia-1.3.10 → radia-1.3.13}/examples/simple_problems/cubic_polyhedron_magnet.py +0 -0
  115. {radia-1.3.10 → radia-1.3.13}/examples/smco_magnet_array/README.md +0 -0
  116. {radia-1.3.10 → radia-1.3.13}/examples/smco_magnet_array/smbo.pvsm +0 -0
  117. {radia-1.3.10 → radia-1.3.13}/examples/smco_magnet_array/smco_array.py +0 -0
  118. {radia-1.3.10 → radia-1.3.13}/examples/smco_magnet_array/smco_array.vtk +0 -0
  119. {radia-1.3.10 → radia-1.3.13}/examples/smco_magnet_array/smco_field_distribution.vtk +0 -0
  120. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/BENCHMARK_RESULTS.md +0 -0
  121. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/README.md +0 -0
  122. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_field_evaluation.py +0 -0
  123. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_large_scale_comparison.py +0 -0
  124. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_linear_material.py +0 -0
  125. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_lu_vs_hmatrix.py +0 -0
  126. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_matrix_construction.py +0 -0
  127. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_parallel_construction.py +0 -0
  128. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_solver.py +0 -0
  129. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_solver_comparison.py +0 -0
  130. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_solver_methods.py +0 -0
  131. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_solver_scaling.py +0 -0
  132. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/benchmark_solver_scaling_extended.py +0 -0
  133. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/plot_benchmark_results.py +0 -0
  134. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/run_all_benchmarks.py +0 -0
  135. {radia-1.3.10 → radia-1.3.13}/examples/solver_benchmarks/verify_field_accuracy.py +0 -0
  136. {radia-1.3.10 → radia-1.3.13}/setup.cfg +0 -0
  137. {radia-1.3.10 → radia-1.3.13}/setup.py +0 -0
  138. {radia-1.3.10 → radia-1.3.13}/src/radia/nastran_mesh_import.py +0 -0
  139. {radia-1.3.10 → radia-1.3.13}/src/radia/netgen_mesh_import.py +0 -0
  140. {radia-1.3.10 → radia-1.3.13}/src/radia/rad_ngsolve_fast.py +0 -0
  141. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_coil_builder.py +0 -0
  142. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_field_cached.py +0 -0
  143. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_ngsolve_field.py +0 -0
  144. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_ngsolve_utils.py +0 -0
  145. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_pyvista_viewer.py +0 -0
  146. {radia-1.3.10 → radia-1.3.13}/src/radia/radia_vtk_export.py +0 -0
  147. {radia-1.3.10 → radia-1.3.13}/src/radia.egg-info/dependency_links.txt +0 -0
  148. {radia-1.3.10 → radia-1.3.13}/src/radia.egg-info/not-zip-safe +0 -0
  149. {radia-1.3.10 → radia-1.3.13}/src/radia.egg-info/requires.txt +0 -0
  150. {radia-1.3.10 → radia-1.3.13}/src/radia.egg-info/top_level.txt +0 -0
  151. {radia-1.3.10 → radia-1.3.13}/tests/README.md +0 -0
  152. {radia-1.3.10 → radia-1.3.13}/tests/__init__.py +0 -0
  153. {radia-1.3.10 → radia-1.3.13}/tests/benchmarks/benchmark_correct.py +0 -0
  154. {radia-1.3.10 → radia-1.3.13}/tests/benchmarks/benchmark_heavy.py +0 -0
  155. {radia-1.3.10 → radia-1.3.13}/tests/benchmarks/benchmark_openmp.py +0 -0
  156. {radia-1.3.10 → radia-1.3.13}/tests/benchmarks/benchmark_threads.py +0 -0
  157. {radia-1.3.10 → radia-1.3.13}/tests/conftest.py +0 -0
  158. {radia-1.3.10 → radia-1.3.13}/tests/profile_batch_performance.py +0 -0
  159. {radia-1.3.10 → radia-1.3.13}/tests/test_advanced.py +0 -0
  160. {radia-1.3.10 → radia-1.3.13}/tests/test_all_spaces.py +0 -0
  161. {radia-1.3.10 → radia-1.3.13}/tests/test_background_field_debug.py +0 -0
  162. {radia-1.3.10 → radia-1.3.13}/tests/test_batch_evaluation.py +0 -0
  163. {radia-1.3.10 → radia-1.3.13}/tests/test_cf_direct.py +0 -0
  164. {radia-1.3.10 → radia-1.3.13}/tests/test_convergence_hdiv.py +0 -0
  165. {radia-1.3.10 → radia-1.3.13}/tests/test_curlA_equals_B.py +0 -0
  166. {radia-1.3.10 → radia-1.3.13}/tests/test_curl_A_detailed.py +0 -0
  167. {radia-1.3.10 → radia-1.3.13}/tests/test_far_field_accuracy.py +0 -0
  168. {radia-1.3.10 → radia-1.3.13}/tests/test_fast_preparecache.py +0 -0
  169. {radia-1.3.10 → radia-1.3.13}/tests/test_fast_simple.py +0 -0
  170. {radia-1.3.10 → radia-1.3.13}/tests/test_group_operations.py +0 -0
  171. {radia-1.3.10 → radia-1.3.13}/tests/test_hcurl_vs_hdiv.py +0 -0
  172. {radia-1.3.10 → radia-1.3.13}/tests/test_l2_norm_debug.py +0 -0
  173. {radia-1.3.10 → radia-1.3.13}/tests/test_magpylib_comparison.py +0 -0
  174. {radia-1.3.10 → radia-1.3.13}/tests/test_materials.py +0 -0
  175. {radia-1.3.10 → radia-1.3.13}/tests/test_memory_allocation_tracking.py +0 -0
  176. {radia-1.3.10 → radia-1.3.13}/tests/test_mesh_import.py +0 -0
  177. {radia-1.3.10 → radia-1.3.13}/tests/test_minimal_cached.py +0 -0
  178. {radia-1.3.10 → radia-1.3.13}/tests/test_moving_magnet_memory.py +0 -0
  179. {radia-1.3.10 → radia-1.3.13}/tests/test_moving_magnet_memory_diagnosis.py +0 -0
  180. {radia-1.3.10 → radia-1.3.13}/tests/test_new_material_api.py +0 -0
  181. {radia-1.3.10 → radia-1.3.13}/tests/test_ngsolve_integration.py +0 -0
  182. {radia-1.3.10 → radia-1.3.13}/tests/test_objbckg_simple.py +0 -0
  183. {radia-1.3.10 → radia-1.3.13}/tests/test_objbckgcf_alone.py +0 -0
  184. {radia-1.3.10 → radia-1.3.13}/tests/test_order1.py +0 -0
  185. {radia-1.3.10 → radia-1.3.13}/tests/test_parallel_performance.py +0 -0
  186. {radia-1.3.10 → radia-1.3.13}/tests/test_preparecache_performance.py +0 -0
  187. {radia-1.3.10 → radia-1.3.13}/tests/test_process_memory.py +0 -0
  188. {radia-1.3.10 → radia-1.3.13}/tests/test_python_cached_field.py +0 -0
  189. {radia-1.3.10 → radia-1.3.13}/tests/test_python_cached_simple.py +0 -0
  190. {radia-1.3.10 → radia-1.3.13}/tests/test_rad_ngsolve.py +0 -0
  191. {radia-1.3.10 → radia-1.3.13}/tests/test_rad_ngsolve_diagnostic.py +0 -0
  192. {radia-1.3.10 → radia-1.3.13}/tests/test_rad_ngsolve_function.py +0 -0
  193. {radia-1.3.10 → radia-1.3.13}/tests/test_radhmat.py +0 -0
  194. {radia-1.3.10 → radia-1.3.13}/tests/test_radia.py +0 -0
  195. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_core_memory.py +0 -0
  196. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_field_computation_memory.py +0 -0
  197. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_ngsolve_longrun.py +0 -0
  198. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_ngsolve_memory_leak.py +0 -0
  199. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_ngsolve_with_cache.py +0 -0
  200. {radia-1.3.10 → radia-1.3.13}/tests/test_radia_only_memory.py +0 -0
  201. {radia-1.3.10 → radia-1.3.13}/tests/test_serialization.py +0 -0
  202. {radia-1.3.10 → radia-1.3.13}/tests/test_set_vs_interpolate.py +0 -0
  203. {radia-1.3.10 → radia-1.3.13}/tests/test_simple.py +0 -0
  204. {radia-1.3.10 → radia-1.3.13}/tests/test_simple_fld_leak.py +0 -0
  205. {radia-1.3.10 → radia-1.3.13}/tests/test_square_coil_analytical.py +0 -0
  206. {radia-1.3.10 → radia-1.3.13}/tests/test_tetrahedral_solver.py +0 -0
  207. {radia-1.3.10 → radia-1.3.13}/tests/test_transformations.py +0 -0
  208. {radia-1.3.10 → radia-1.3.13}/tests/test_type_cast.py +0 -0
  209. {radia-1.3.10 → radia-1.3.13}/tests/test_unit_conversion_verify.py +0 -0
  210. {radia-1.3.10 → radia-1.3.13}/tests/test_utils.py +0 -0
  211. {radia-1.3.10 → radia-1.3.13}/tests/test_vector_potential.py +0 -0
  212. {radia-1.3.10 → radia-1.3.13}/tests/test_without_B_projection.py +0 -0
  213. {radia-1.3.10 → radia-1.3.13}/tests/test_without_gridfunction.py +0 -0
  214. {radia-1.3.10 → radia-1.3.13}/tests/verify_curl_A_equals_B.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: radia
3
- Version: 1.3.10
3
+ Version: 1.3.13
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
@@ -27,16 +27,17 @@ Understanding the differences is critical for choosing the right approach.
27
27
 
28
28
  ### Method Comparison Table
29
29
 
30
- | Property | ObjRecMag (Analytical) | ObjPolyhdr Hex (MSC) | ObjPolyhdr Tet (MSC) |
31
- |----------|----------------------|---------------------|---------------------|
32
- | **Element Type** | Axis-aligned rectangular | General hexahedron | Tetrahedron |
33
- | **Implementation** | 8-vertex atan formula | 6-face surface integral | 4-face surface integral |
30
+ | Property | ObjRecMag (Analytical) | ObjPolyhdr Hex (6-face MSC) | ObjPolyhdr Tet (4-face MSC) |
31
+ |----------|----------------------|------------------------------|------------------------------|
32
+ | **Element Type** | Axis-aligned rectangular | General hexahedron (6 quad faces) | Tetrahedron (4 triangular faces) |
33
+ | **Implementation** | 8-vertex atan formula | 6-quad -> 12-tri surface integral | 4-face surface integral |
34
34
  | **Source File** | rad_rectangular_block.cpp | rad_polyhedron.cpp | rad_polyhedron.cpp |
35
35
  | **Geometry Constraint** | Axis-aligned only | Any convex hexahedron | Any tetrahedron |
36
36
  | **Speed** | Fastest | Medium | Medium |
37
- | **Accuracy** | Exact (analytical) | High (numerical) | High (numerical) |
38
- | **Mesh Import** | ObjDivMag only | External mesh | External mesh |
37
+ | **Accuracy** | Exact (analytical) | High (MSC matching ELF_MAGIC) | High (MSC matching ELF_MAGIC) |
38
+ | **Mesh Import** | ObjDivMag only | External mesh (6-face format) | External mesh (4-face format) |
39
39
  | **DOF per Element** | 3 (Mx, My, Mz) | 3 (Mx, My, Mz) | 3 (Mx, My, Mz) |
40
+ | **Radia Face Format** | N/A | 1-indexed quad faces | 1-indexed triangular faces |
40
41
 
41
42
  ### Detailed Method Descriptions
42
43
 
@@ -657,5 +658,6 @@ The NGSolve integration benefits especially from:
657
658
  ---
658
659
 
659
660
  **Created**: 2025-12-05
661
+ **Updated**: 2025-12-11 (6-face hexahedral MSC implementation)
660
662
  **Author**: Claude Code
661
663
  **Project**: Radia Magnetic Field Computation
@@ -109,7 +109,7 @@ void radTPolygon::B_comp(radTField* FieldPtr)
109
109
  | **Method** | MMM with MSC | MMM with MSC |
110
110
  | **Rectangular elements** | Analytical formula (8-vertex atan) | MSC (6 quad faces -> 12 triangles) |
111
111
  | **Tetrahedral elements** | MSC (4 triangular faces) | MSC (4 triangular faces) |
112
- | **Hexahedral elements** | Analytical formula (radTRecMag) | MSC (6 quad faces) |
112
+ | **Hexahedral elements** | Analytical (radTRecMag) or MSC (radTPolyhedron) | MSC (6 quad faces) |
113
113
  | **General polyhedra** | MSC (N polygon faces) | Not directly supported |
114
114
  | **Polygon field formula** | log + atan (same as ELF_MAGIC) | log + atan |
115
115
  | **Self-demagnetization** | Correct (N=1/3 for cube) | Correct (N=1/3 for cube) |
@@ -170,6 +170,6 @@ The performance difference comes from:
170
170
 
171
171
  ---
172
172
 
173
- **Last Updated**: 2025-12-05
173
+ **Last Updated**: 2025-12-11 (6-face hexahedral MSC added)
174
174
  **Author**: Claude Code
175
175
  **Project**: Radia Magnetic Field Computation
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "radia"
7
- version = "1.3.10"
7
+ version = "1.3.13"
8
8
  description = "Radia 3D Magnetostatics with NGSolve Integration and OpenMP Parallelization"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.12"
@@ -2,7 +2,7 @@
2
2
  # This module re-exports all symbols from the C++ extension module (radia.pyd)
3
3
  # so that 'import radia' works correctly when installed via pip
4
4
 
5
- __version__ = "1.3.10"
5
+ __version__ = "1.3.13"
6
6
 
7
7
  # Import all symbols from the C++ extension module
8
8
  try:
Binary file
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: radia
3
- Version: 1.3.10
3
+ Version: 1.3.13
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
@@ -67,7 +67,6 @@ examples/cube_uniform_field/nonlinear/benchmark_tetra_netgen.py
67
67
  examples/cube_uniform_field/nonlinear/benchmark_tetra_unified.py
68
68
  examples/cube_uniform_field/nonlinear/compare_radia_elfmagic_field.py
69
69
  examples/cube_uniform_field/nonlinear/compare_tetra_methods.py
70
- examples/cube_uniform_field/nonlinear/test_lu_vs_bicgstab.py
71
70
  examples/electromagnet/README.md
72
71
  examples/electromagnet/Radia_model.vtk
73
72
  examples/electromagnet/York.vtk
@@ -1,82 +0,0 @@
1
- """
2
- Compare LU vs BiCGSTAB solvers on same tetrahedral mesh.
3
- The results should match if both converged correctly.
4
- """
5
- import sys
6
- import os
7
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../../build/Release'))
8
- sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../../src/radia'))
9
- import radia as rad
10
- import numpy as np
11
-
12
- from ngsolve import Mesh
13
- from netgen.csg import CSGeometry, OrthoBrick, Pnt
14
- from netgen_mesh_import import netgen_mesh_to_radia
15
-
16
- MU_0 = 4 * np.pi * 1e-7
17
- H_EXT = 50000.0
18
-
19
- # B-H curve
20
- BH_DATA = [
21
- [0.0, 0.0], [100.0, 0.1], [200.0, 0.3], [500.0, 0.8], [1000.0, 1.2],
22
- [2000.0, 1.5], [5000.0, 1.7], [10000.0, 1.8], [50000.0, 2.0], [100000.0, 2.1],
23
- ]
24
- HM_DATA = [[h, b/MU_0 - h] for h, b in BH_DATA]
25
-
26
- def run_comparison(maxh):
27
- print(f'\n{"="*60}')
28
- print(f'maxh = {maxh}m')
29
- print("="*60)
30
-
31
- # Create mesh ONCE
32
- geo = CSGeometry()
33
- box = OrthoBrick(Pnt(-0.5, -0.5, -0.5), Pnt(0.5, 0.5, 0.5))
34
- geo.Add(box)
35
- ngmesh = geo.GenerateMesh(maxh=maxh)
36
- mesh = Mesh(ngmesh)
37
-
38
- n_elem = mesh.ne
39
- print(f'Elements: {n_elem}')
40
-
41
- results = {}
42
- for method, name in [(0, 'LU'), (1, 'BiCGSTAB')]:
43
- rad.FldUnits('m')
44
- rad.UtiDelAll()
45
-
46
- # Import SAME mesh
47
- mag_obj = netgen_mesh_to_radia(mesh, material={'magnetization': [0, 0, 0]}, units='m')
48
-
49
- # Apply material
50
- mat = rad.MatSatIsoTab(HM_DATA)
51
- rad.MatApl(mag_obj, mat)
52
-
53
- # External field
54
- B_ext = MU_0 * H_EXT
55
- ext = rad.ObjBckg([0, 0, B_ext])
56
- grp = rad.ObjCnt([mag_obj, ext])
57
-
58
- # Solve
59
- result = rad.Solve(grp, 0.001, 1000, method)
60
-
61
- # Get magnetization
62
- all_M = rad.ObjM(mag_obj)
63
- M_avg_z = np.mean([m[1][2] for m in all_M])
64
- n_iter = int(result[3]) if result[3] else 0
65
- residual = result[0] if result[0] else 0.0
66
-
67
- print(f'{name:10s}: iter={n_iter:4d}, residual={residual:10.2f}, M_avg_z={M_avg_z:12.0f} A/m')
68
- results[name] = {'M_avg_z': M_avg_z, 'iter': n_iter, 'residual': residual}
69
-
70
- diff = abs(results['LU']['M_avg_z'] - results['BiCGSTAB']['M_avg_z'])
71
- pct = 100 * diff / max(results['LU']['M_avg_z'], results['BiCGSTAB']['M_avg_z'])
72
- print(f'Difference: {diff:.0f} A/m ({pct:.1f}%)')
73
-
74
- return results
75
-
76
- # Run for multiple mesh sizes
77
- if __name__ == '__main__':
78
- print('\nComparison of LU vs BiCGSTAB solvers on tetrahedral meshes')
79
- print('(Same mesh, same problem - results should be identical)')
80
-
81
- for maxh in [0.4, 0.35, 0.3]:
82
- run_comparison(maxh)
Binary file
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