radia 1.3.13__tar.gz → 1.3.14__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 (217) hide show
  1. {radia-1.3.13/src/radia.egg-info → radia-1.3.14}/PKG-INFO +1 -1
  2. {radia-1.3.13 → radia-1.3.14}/docs/API_EXTENSIONS.md +32 -45
  3. {radia-1.3.13 → radia-1.3.14}/docs/HMATRIX_SERIALIZATION.md +14 -1
  4. {radia-1.3.13 → radia-1.3.14}/docs/HMATRIX_USER_GUIDE.md +15 -2
  5. {radia-1.3.13 → radia-1.3.14}/docs/HYBRID_DOF_SOLVER_DESIGN.md +11 -0
  6. {radia-1.3.13 → radia-1.3.14}/docs/ML_PARAMETER_TUNING.md +12 -1
  7. radia-1.3.14/docs/README.md +110 -0
  8. radia-1.3.14/docs/SOLVER_METHODS.md +207 -0
  9. radia-1.3.14/docs/SUPPORTED_ELEMENTS.md +199 -0
  10. {radia-1.3.13 → radia-1.3.14}/examples/README.md +20 -46
  11. {radia-1.3.13 → radia-1.3.14}/pyproject.toml +1 -1
  12. {radia-1.3.13 → radia-1.3.14}/setup.py +2 -1
  13. radia-1.3.14/src/radia/__init__.py +34 -0
  14. radia-1.3.14/src/radia/libopenblas.dll +0 -0
  15. {radia-1.3.13 → radia-1.3.14/src/radia.egg-info}/PKG-INFO +1 -1
  16. {radia-1.3.13 → radia-1.3.14}/src/radia.egg-info/SOURCES.txt +2 -0
  17. radia-1.3.13/docs/README.md +0 -67
  18. radia-1.3.13/docs/SOLVER_METHODS.md +0 -225
  19. radia-1.3.13/src/radia/__init__.py +0 -18
  20. {radia-1.3.13 → radia-1.3.14}/COPYRIGHT.txt +0 -0
  21. {radia-1.3.13 → radia-1.3.14}/LICENSE +0 -0
  22. {radia-1.3.13 → radia-1.3.14}/MANIFEST.in +0 -0
  23. {radia-1.3.13 → radia-1.3.14}/README.md +0 -0
  24. {radia-1.3.13 → radia-1.3.14}/docs/API_REFERENCE.md +0 -0
  25. {radia-1.3.13 → radia-1.3.14}/docs/CF_BACKGROUND_FIELD_IMPLEMENTATION.md +0 -0
  26. {radia-1.3.13 → radia-1.3.14}/docs/HMATRIX_EVALUATION.md +0 -0
  27. {radia-1.3.13 → radia-1.3.14}/docs/MATERIAL_API_IMPLEMENTATION.md +0 -0
  28. {radia-1.3.13 → radia-1.3.14}/docs/MESH_MSC_API_DESIGN.md +0 -0
  29. {radia-1.3.13 → radia-1.3.14}/docs/MMM_MSC_IMPLEMENTATION.md +0 -0
  30. {radia-1.3.13 → radia-1.3.14}/docs/NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md +0 -0
  31. {radia-1.3.13 → radia-1.3.14}/docs/NGSOLVE_INTEGRATION.md +0 -0
  32. {radia-1.3.13 → radia-1.3.14}/docs/NGSOLVE_USAGE_GUIDE.md +0 -0
  33. {radia-1.3.13 → radia-1.3.14}/docs/scripts/README.md +0 -0
  34. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/README.md +0 -0
  35. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/cubit_to_nastran.py +0 -0
  36. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/permeability_comparison.py +0 -0
  37. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/quadrupole_analytical.py +0 -0
  38. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/quadrupole_analytical.vtk.vtk +0 -0
  39. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/sphere_in_quadrupole.py +0 -0
  40. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/sphere_nastran_analysis.py +0 -0
  41. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/sphere_nastran_field_mu.pvsm +0 -0
  42. {radia-1.3.13 → radia-1.3.14}/examples/background_fields/sphere_nastran_geometry.vtk +0 -0
  43. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/README.md +0 -0
  44. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/coil_geometry.vtk +0 -0
  45. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/coil_model.py +0 -0
  46. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/complex_coil.pvsm +0 -0
  47. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/field_map.py +0 -0
  48. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/field_map.vtk +0 -0
  49. {radia-1.3.13 → radia-1.3.14}/examples/complex_coil_geometry/visualize_coils.py +0 -0
  50. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/README.md +0 -0
  51. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/README.md +0 -0
  52. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/README_CUBE_BENCHMARK.md +0 -0
  53. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_bicgstab_dense.py +0 -0
  54. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_external_field.py +0 -0
  55. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_high_mu.py +0 -0
  56. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_mesh_convergence.py +0 -0
  57. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_solver_methods.py +0 -0
  58. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_tetra_vs_hex.py +0 -0
  59. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/benchmark_tetra_vs_ngsolve.py +0 -0
  60. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/compare_external_field.py +0 -0
  61. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/cube_benchmark_external_field.py +0 -0
  62. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/cube_benchmark_radia.vtk +0 -0
  63. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/evaluate_perturbation_field.py +0 -0
  64. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/precision_evaluation.py +0 -0
  65. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/test_method9_fine_mesh.py +0 -0
  66. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/linear/test_method9_high_mu.py +0 -0
  67. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/README.md +0 -0
  68. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_bicgstab_hex.py +0 -0
  69. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_conditions.py +0 -0
  70. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_element_types.py +0 -0
  71. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_hexa_unified.py +0 -0
  72. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_hexahedron_msc.py +0 -0
  73. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_nonlinear_tetra_vs_hex.py +0 -0
  74. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_solver_methods.py +0 -0
  75. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_tetra_netgen.py +0 -0
  76. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/benchmark_tetra_unified.py +0 -0
  77. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/compare_radia_elfmagic_field.py +0 -0
  78. {radia-1.3.13 → radia-1.3.14}/examples/cube_uniform_field/nonlinear/compare_tetra_methods.py +0 -0
  79. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/README.md +0 -0
  80. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/Radia_model.vtk +0 -0
  81. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/York.vtk +0 -0
  82. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/field_distribution.vtk +0 -0
  83. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/main_simulation_workflow.py +0 -0
  84. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/visualize_paraview.py +0 -0
  85. {radia-1.3.13 → radia-1.3.14}/examples/electromagnet/york_cubit_mesh.py +0 -0
  86. {radia-1.3.13 → radia-1.3.14}/examples/magpylib_integration/README.md +0 -0
  87. {radia-1.3.13 → radia-1.3.14}/examples/magpylib_integration/cylinder_magnet_examples.py +0 -0
  88. {radia-1.3.13 → radia-1.3.14}/examples/magpylib_integration/demo_magpylib_integration.py +0 -0
  89. {radia-1.3.13 → radia-1.3.14}/examples/magpylib_integration/sphere_in_halbach_cylinder.py +0 -0
  90. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/README.md +0 -0
  91. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/benchmark_gridfunction_set.py +0 -0
  92. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/demo_basic_field.py +0 -0
  93. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/demo_batch_evaluation.py +0 -0
  94. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/demo_coordinate_transform.py +0 -0
  95. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/demo_field_types.py +0 -0
  96. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/demo_hdiv_projection.py +0 -0
  97. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/RADIA_TETRA_ROOT_CAUSE.md +0 -0
  98. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/README.md +0 -0
  99. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/compare_radia_ngsolve_cube.py +0 -0
  100. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/cube_hex.vtk +0 -0
  101. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/demo_tetrahedral_methods_comparison.py +0 -0
  102. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_cube_graded_mesh.vtk +0 -0
  103. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_cube_uniform_field.py +0 -0
  104. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/ngsolve_tet_mesh.vtk +0 -0
  105. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/mesh_magnetization_import/sphere_domain_graded_mesh.vtk +0 -0
  106. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/test_batch_evaluation.py +0 -0
  107. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/test_unit_conversion.py +0 -0
  108. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/verify_curl_A_equals_B.py +0 -0
  109. {radia-1.3.13 → radia-1.3.14}/examples/ngsolve_integration/visualize_field.py +0 -0
  110. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/CONVERSION_NOTES.md +0 -0
  111. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/README.md +0 -0
  112. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/arc_current_dual_magnets.py +0 -0
  113. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/arc_current_with_magnet.py +0 -0
  114. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/chamfered_pole_piece.py +0 -0
  115. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/compare_magpylib.py +0 -0
  116. {radia-1.3.13 → radia-1.3.14}/examples/simple_problems/cubic_polyhedron_magnet.py +0 -0
  117. {radia-1.3.13 → radia-1.3.14}/examples/smco_magnet_array/README.md +0 -0
  118. {radia-1.3.13 → radia-1.3.14}/examples/smco_magnet_array/smbo.pvsm +0 -0
  119. {radia-1.3.13 → radia-1.3.14}/examples/smco_magnet_array/smco_array.py +0 -0
  120. {radia-1.3.13 → radia-1.3.14}/examples/smco_magnet_array/smco_array.vtk +0 -0
  121. {radia-1.3.13 → radia-1.3.14}/examples/smco_magnet_array/smco_field_distribution.vtk +0 -0
  122. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/BENCHMARK_RESULTS.md +0 -0
  123. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/README.md +0 -0
  124. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_field_evaluation.py +0 -0
  125. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_large_scale_comparison.py +0 -0
  126. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_linear_material.py +0 -0
  127. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_lu_vs_hmatrix.py +0 -0
  128. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_matrix_construction.py +0 -0
  129. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_parallel_construction.py +0 -0
  130. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_solver.py +0 -0
  131. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_solver_comparison.py +0 -0
  132. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_solver_methods.py +0 -0
  133. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_solver_scaling.py +0 -0
  134. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/benchmark_solver_scaling_extended.py +0 -0
  135. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/plot_benchmark_results.py +0 -0
  136. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/run_all_benchmarks.py +0 -0
  137. {radia-1.3.13 → radia-1.3.14}/examples/solver_benchmarks/verify_field_accuracy.py +0 -0
  138. {radia-1.3.13 → radia-1.3.14}/setup.cfg +0 -0
  139. {radia-1.3.13 → radia-1.3.14}/src/radia/nastran_mesh_import.py +0 -0
  140. {radia-1.3.13 → radia-1.3.14}/src/radia/netgen_mesh_import.py +0 -0
  141. {radia-1.3.13 → radia-1.3.14}/src/radia/rad_ngsolve_fast.py +0 -0
  142. {radia-1.3.13 → radia-1.3.14}/src/radia/radia.pyd +0 -0
  143. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_coil_builder.py +0 -0
  144. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_field_cached.py +0 -0
  145. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_ngsolve.pyd +0 -0
  146. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_ngsolve_field.py +0 -0
  147. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_ngsolve_utils.py +0 -0
  148. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_pyvista_viewer.py +0 -0
  149. {radia-1.3.13 → radia-1.3.14}/src/radia/radia_vtk_export.py +0 -0
  150. {radia-1.3.13 → radia-1.3.14}/src/radia.egg-info/dependency_links.txt +0 -0
  151. {radia-1.3.13 → radia-1.3.14}/src/radia.egg-info/not-zip-safe +0 -0
  152. {radia-1.3.13 → radia-1.3.14}/src/radia.egg-info/requires.txt +0 -0
  153. {radia-1.3.13 → radia-1.3.14}/src/radia.egg-info/top_level.txt +0 -0
  154. {radia-1.3.13 → radia-1.3.14}/tests/README.md +0 -0
  155. {radia-1.3.13 → radia-1.3.14}/tests/__init__.py +0 -0
  156. {radia-1.3.13 → radia-1.3.14}/tests/benchmarks/benchmark_correct.py +0 -0
  157. {radia-1.3.13 → radia-1.3.14}/tests/benchmarks/benchmark_heavy.py +0 -0
  158. {radia-1.3.13 → radia-1.3.14}/tests/benchmarks/benchmark_openmp.py +0 -0
  159. {radia-1.3.13 → radia-1.3.14}/tests/benchmarks/benchmark_threads.py +0 -0
  160. {radia-1.3.13 → radia-1.3.14}/tests/conftest.py +0 -0
  161. {radia-1.3.13 → radia-1.3.14}/tests/profile_batch_performance.py +0 -0
  162. {radia-1.3.13 → radia-1.3.14}/tests/test_advanced.py +0 -0
  163. {radia-1.3.13 → radia-1.3.14}/tests/test_all_spaces.py +0 -0
  164. {radia-1.3.13 → radia-1.3.14}/tests/test_background_field_debug.py +0 -0
  165. {radia-1.3.13 → radia-1.3.14}/tests/test_batch_evaluation.py +0 -0
  166. {radia-1.3.13 → radia-1.3.14}/tests/test_cf_direct.py +0 -0
  167. {radia-1.3.13 → radia-1.3.14}/tests/test_convergence_hdiv.py +0 -0
  168. {radia-1.3.13 → radia-1.3.14}/tests/test_curlA_equals_B.py +0 -0
  169. {radia-1.3.13 → radia-1.3.14}/tests/test_curl_A_detailed.py +0 -0
  170. {radia-1.3.13 → radia-1.3.14}/tests/test_far_field_accuracy.py +0 -0
  171. {radia-1.3.13 → radia-1.3.14}/tests/test_fast_preparecache.py +0 -0
  172. {radia-1.3.13 → radia-1.3.14}/tests/test_fast_simple.py +0 -0
  173. {radia-1.3.13 → radia-1.3.14}/tests/test_group_operations.py +0 -0
  174. {radia-1.3.13 → radia-1.3.14}/tests/test_hcurl_vs_hdiv.py +0 -0
  175. {radia-1.3.13 → radia-1.3.14}/tests/test_l2_norm_debug.py +0 -0
  176. {radia-1.3.13 → radia-1.3.14}/tests/test_magpylib_comparison.py +0 -0
  177. {radia-1.3.13 → radia-1.3.14}/tests/test_materials.py +0 -0
  178. {radia-1.3.13 → radia-1.3.14}/tests/test_memory_allocation_tracking.py +0 -0
  179. {radia-1.3.13 → radia-1.3.14}/tests/test_mesh_import.py +0 -0
  180. {radia-1.3.13 → radia-1.3.14}/tests/test_minimal_cached.py +0 -0
  181. {radia-1.3.13 → radia-1.3.14}/tests/test_moving_magnet_memory.py +0 -0
  182. {radia-1.3.13 → radia-1.3.14}/tests/test_moving_magnet_memory_diagnosis.py +0 -0
  183. {radia-1.3.13 → radia-1.3.14}/tests/test_new_material_api.py +0 -0
  184. {radia-1.3.13 → radia-1.3.14}/tests/test_ngsolve_integration.py +0 -0
  185. {radia-1.3.13 → radia-1.3.14}/tests/test_objbckg_simple.py +0 -0
  186. {radia-1.3.13 → radia-1.3.14}/tests/test_objbckgcf_alone.py +0 -0
  187. {radia-1.3.13 → radia-1.3.14}/tests/test_order1.py +0 -0
  188. {radia-1.3.13 → radia-1.3.14}/tests/test_parallel_performance.py +0 -0
  189. {radia-1.3.13 → radia-1.3.14}/tests/test_preparecache_performance.py +0 -0
  190. {radia-1.3.13 → radia-1.3.14}/tests/test_process_memory.py +0 -0
  191. {radia-1.3.13 → radia-1.3.14}/tests/test_python_cached_field.py +0 -0
  192. {radia-1.3.13 → radia-1.3.14}/tests/test_python_cached_simple.py +0 -0
  193. {radia-1.3.13 → radia-1.3.14}/tests/test_rad_ngsolve.py +0 -0
  194. {radia-1.3.13 → radia-1.3.14}/tests/test_rad_ngsolve_diagnostic.py +0 -0
  195. {radia-1.3.13 → radia-1.3.14}/tests/test_rad_ngsolve_function.py +0 -0
  196. {radia-1.3.13 → radia-1.3.14}/tests/test_radhmat.py +0 -0
  197. {radia-1.3.13 → radia-1.3.14}/tests/test_radia.py +0 -0
  198. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_core_memory.py +0 -0
  199. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_field_computation_memory.py +0 -0
  200. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_ngsolve_longrun.py +0 -0
  201. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_ngsolve_memory_leak.py +0 -0
  202. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_ngsolve_with_cache.py +0 -0
  203. {radia-1.3.13 → radia-1.3.14}/tests/test_radia_only_memory.py +0 -0
  204. {radia-1.3.13 → radia-1.3.14}/tests/test_serialization.py +0 -0
  205. {radia-1.3.13 → radia-1.3.14}/tests/test_set_vs_interpolate.py +0 -0
  206. {radia-1.3.13 → radia-1.3.14}/tests/test_simple.py +0 -0
  207. {radia-1.3.13 → radia-1.3.14}/tests/test_simple_fld_leak.py +0 -0
  208. {radia-1.3.13 → radia-1.3.14}/tests/test_square_coil_analytical.py +0 -0
  209. {radia-1.3.13 → radia-1.3.14}/tests/test_tetrahedral_solver.py +0 -0
  210. {radia-1.3.13 → radia-1.3.14}/tests/test_transformations.py +0 -0
  211. {radia-1.3.13 → radia-1.3.14}/tests/test_type_cast.py +0 -0
  212. {radia-1.3.13 → radia-1.3.14}/tests/test_unit_conversion_verify.py +0 -0
  213. {radia-1.3.13 → radia-1.3.14}/tests/test_utils.py +0 -0
  214. {radia-1.3.13 → radia-1.3.14}/tests/test_vector_potential.py +0 -0
  215. {radia-1.3.13 → radia-1.3.14}/tests/test_without_B_projection.py +0 -0
  216. {radia-1.3.13 → radia-1.3.14}/tests/test_without_gridfunction.py +0 -0
  217. {radia-1.3.13 → radia-1.3.14}/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.13
3
+ Version: 1.3.14
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
@@ -4,9 +4,18 @@ This document describes custom extensions to the original ESRF Radia API.
4
4
 
5
5
  **Original Documentation**: https://www.esrf.fr/home/Accelerators/instrumentation--equipment/Software/Radia/Documentation/ReferenceGuide.html
6
6
 
7
- **Date**: 2025-11-27
7
+ **Date**: 2025-12-11
8
+ **Version**: 1.3.13
8
9
  **Status**: Active development
9
10
 
11
+ > **Note (v1.3.13):** The solver architecture was significantly updated in v1.3.13:
12
+ > - **Recommended API**: Use `rad.Solve()` for all new code
13
+ > - **Deprecated API**: `RlxPre()`, `RlxMan()`, `SetRelaxSubInterval()` are legacy
14
+ > - **Solver Methods**: LU (Method 0) and BiCGSTAB (Method 1) replaced original Gauss-Seidel
15
+ > - **H-matrix**: Under research, NOT available in v1.3.13
16
+ >
17
+ > See [SOLVER_METHODS.md](SOLVER_METHODS.md) for current solver documentation.
18
+
10
19
  ---
11
20
 
12
21
  ## Table of Contents
@@ -367,53 +376,24 @@ See detailed benchmark results in [`examples/solver_benchmarks/README.md`](../ex
367
376
 
368
377
  ## Performance Features
369
378
 
370
- ### SolverHMatrixDisable/Enable
371
-
372
- **Purpose**: Control H-matrix (hierarchical matrix) acceleration for field computation.
373
-
374
- **Syntax**:
375
- ```python
376
- rad.SolverHMatrixDisable() # Disable H-matrix (use dense matrix)
377
- rad.SolverHMatrixEnable() # Enable H-matrix (default)
378
- ```
379
-
380
- **Parameters**: None
379
+ ### SolverHMatrixDisable/Enable (DEPRECATED)
381
380
 
382
- **Returns**: None
383
-
384
- **When to use**:
381
+ > **NOT AVAILABLE in v1.3.13**
382
+ >
383
+ > H-matrix acceleration was evaluated and found to provide **NO benefit for typical Radia use cases**
384
+ > (single compact objects). These APIs are not available in the current release.
385
+ >
386
+ > See [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) for evaluation results.
385
387
 
386
- **Disable H-matrix** (`SolverHMatrixDisable()`):
387
- - Small problems (N < 1000)
388
- - Benchmarking and testing
389
- - Debugging solver behavior
390
- - When H-matrix overhead exceeds benefit
388
+ ~~**Purpose**: Control H-matrix (hierarchical matrix) acceleration for field computation.~~
391
389
 
392
- **Enable H-matrix** (`SolverHMatrixEnable()`):
393
- - Large problems (N > 1000)
394
- - Production runs
395
- - When memory is limited
396
- - Long-range field computations
397
-
398
- **Usage Example**:
390
+ ~~**Syntax**:~~
399
391
  ```python
400
- import radia as rad
401
-
402
- # For benchmarking - use dense matrix
403
- rad.SolverHMatrixDisable()
404
-
405
- intrc = rad.RlxPre(obj, obj)
406
- rad.RlxMan(intrc, 4, 100, 1.0)
407
-
408
- # For production - re-enable H-matrix
409
- rad.SolverHMatrixEnable()
392
+ # NOT AVAILABLE in v1.3.13
393
+ # rad.SolverHMatrixDisable()
394
+ # rad.SolverHMatrixEnable()
410
395
  ```
411
396
 
412
- **Notes**:
413
- - H-matrix is enabled by default
414
- - Setting persists for entire session until changed
415
- - Does not affect existing interaction matrices (only new ones)
416
-
417
397
  ---
418
398
 
419
399
  ### SolverTetraMethod
@@ -517,9 +497,16 @@ rad.SolverTetraMethod(1)
517
497
  - Added `ObjBckgCF()` for arbitrary background fields
518
498
  - Improved NGSolve integration
519
499
 
500
+ ### v1.3.13 (2025-12-11)
501
+ - **Major solver refactoring**: Replaced Implicit SS (Gauss-Seidel) with BiCGSTAB
502
+ - Added `rad.Solve()` as recommended API
503
+ - Deprecated `RlxPre()`, `RlxMan()`, `SetRelaxSubInterval()` (still available for legacy)
504
+ - H-matrix APIs removed (under research)
505
+ - Added OpenBLAS and OpenMP optimizations
506
+
520
507
  ### v1.0.5 (2025-10-30)
521
- - Added `SolverHMatrixDisable/Enable()` controls
522
- - Performance improvements for H-matrix
508
+ - Added `SolverHMatrixDisable/Enable()` controls (REMOVED in v1.3.13)
509
+ - Performance improvements for H-matrix (REMOVED in v1.3.13)
523
510
 
524
511
  ---
525
512
 
@@ -773,6 +760,6 @@ See [`examples/ngsolve_integration/README.md`](../examples/ngsolve_integration/R
773
760
 
774
761
  ---
775
762
 
776
- **Last Updated**: 2025-11-27
763
+ **Last Updated**: 2025-12-11
777
764
  **Maintained By**: Radia Development Team
778
765
  **License**: LGPL-2.1 (modifications), BSD-style (original RADIA from ESRF)
@@ -1,8 +1,21 @@
1
1
  # Full H-Matrix Serialization (v1.1.0)
2
2
 
3
+ > **ARCHIVED DOCUMENT (2025-12-11)**
4
+ >
5
+ > **This document is archived.** H-matrix acceleration was evaluated and found to provide
6
+ > **NO benefit for typical Radia use cases** (single compact objects).
7
+ >
8
+ > See [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) for the evaluation results.
9
+ >
10
+ > The H-matrix serialization feature described below is **NOT available** in v1.3.13+.
11
+
12
+ ---
13
+
3
14
  ## Overview
4
15
 
5
- Radia v1.1.0 introduces full H-matrix serialization to disk, providing **instant startup** for repeated simulations with the same geometry. This feature saves the complete H-matrix structure to disk and reloads it on subsequent runs, eliminating the need to rebuild the interaction matrix.
16
+ ~~Radia v1.1.0 introduces full H-matrix serialization to disk, providing **instant startup** for repeated simulations with the same geometry. This feature saves the complete H-matrix structure to disk and reloads it on subsequent runs, eliminating the need to rebuild the interaction matrix.~~
17
+
18
+ **Status:** H-matrix serialization is NOT available in current releases.
6
19
 
7
20
  **Key Benefits:**
8
21
  - **~10x speedup** for solver initialization across program restarts
@@ -1,11 +1,24 @@
1
1
  # H-Matrix Acceleration User Guide
2
2
 
3
- **Version:** 1.0.10
3
+ > **ARCHIVED DOCUMENT (2025-12-11)**
4
+ >
5
+ > **This document is archived.** H-matrix acceleration was evaluated and found to provide
6
+ > **NO benefit for typical Radia use cases** (single compact objects).
7
+ >
8
+ > See [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) for the evaluation results.
9
+ >
10
+ > The H-matrix APIs described below are **NOT available** in v1.3.13+.
11
+
12
+ ---
13
+
14
+ **Version:** 1.0.10 (Archived)
4
15
  **Date:** 2025-11-13
5
16
 
6
17
  ## Overview
7
18
 
8
- This guide explains how to use Radia's H-matrix acceleration feature for faster magnetostatic simulations. H-matrix provides up to **350x speedup** for large problems and iterative workflows.
19
+ ~~This guide explains how to use Radia's H-matrix acceleration feature for faster magnetostatic simulations. H-matrix provides up to **350x speedup** for large problems and iterative workflows.~~
20
+
21
+ **Status:** H-matrix is NOT recommended and NOT available in current releases.
9
22
 
10
23
  ## Table of Contents
11
24
 
@@ -1,5 +1,16 @@
1
1
  # Hybrid Variable DOF Solver Design
2
2
 
3
+ > **FUTURE DEVELOPMENT DOCUMENT (2025-12-11)**
4
+ >
5
+ > **This document describes a PROPOSED feature that is NOT YET IMPLEMENTED.**
6
+ >
7
+ > The current Radia implementation uses **3 DOF per element** for all element types
8
+ > (rectangular blocks, tetrahedral MSC, and hexahedral MSC).
9
+ >
10
+ > The 6-DOF MSC hexahedra described below are **NOT currently available**.
11
+
12
+ ---
13
+
3
14
  ## Overview
4
15
 
5
16
  This document describes the design for extending `radTInteraction` and the LU/BiCGSTAB solvers to support **variable degrees of freedom (DOF)** per element, enabling **hybrid analysis** with:
@@ -1,7 +1,18 @@
1
1
  # ML Parameter Tuning for H-Matrix
2
2
 
3
+ > **ARCHIVED DOCUMENT (2025-12-11)**
4
+ >
5
+ > **This document is archived.** H-matrix acceleration was evaluated and found to provide
6
+ > **NO benefit for typical Radia use cases** (single compact objects).
7
+ >
8
+ > See [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) for the evaluation results.
9
+ >
10
+ > The ML parameter tuning described below is **NOT applicable** in v1.3.13+.
11
+
12
+ ---
13
+
3
14
  **Date:** 2025-11-13
4
- **Status:** ✅ **ANALYSIS COMPLETE**
15
+ **Status:** ARCHIVED
5
16
 
6
17
  ## Overview
7
18
 
@@ -0,0 +1,110 @@
1
+ # Radia Documentation
2
+
3
+ **Version:** 1.3.13
4
+ **Date:** 2025-12-11
5
+
6
+ This folder contains the official documentation for Radia.
7
+
8
+ ## Documentation Organization
9
+
10
+ ### Essential Documentation
11
+
12
+ #### Getting Started
13
+ - [SUPPORTED_ELEMENTS.md](SUPPORTED_ELEMENTS.md) - **Supported magnetic element types** (tet, hex, rectangular)
14
+ - [SOLVER_METHODS.md](SOLVER_METHODS.md) - Solver methods (LU, BiCGSTAB)
15
+ - [API_REFERENCE.md](API_REFERENCE.md) - Complete Python API reference
16
+
17
+ #### NGSolve Integration
18
+ - [NGSOLVE_USAGE_GUIDE.md](NGSOLVE_USAGE_GUIDE.md) - How to use Radia with NGSolve
19
+ - [NGSOLVE_INTEGRATION.md](NGSOLVE_INTEGRATION.md) - Integration overview
20
+
21
+ #### Mesh Import
22
+ - [MESH_MSC_API_DESIGN.md](MESH_MSC_API_DESIGN.md) - Mesh import API design
23
+ - [MMM_MSC_IMPLEMENTATION.md](MMM_MSC_IMPLEMENTATION.md) - MMM/MSC implementation details
24
+
25
+ ### Technical Documentation
26
+
27
+ #### Implementation Details
28
+ - [MATERIAL_API_IMPLEMENTATION.md](MATERIAL_API_IMPLEMENTATION.md) - Material property implementation
29
+ - [CF_BACKGROUND_FIELD_IMPLEMENTATION.md](CF_BACKGROUND_FIELD_IMPLEMENTATION.md) - Background field implementation
30
+ - [NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md](NGSOLVE_CF_BACKGROUND_FIELD_DESIGN.md) - NGSolve CoefficientFunction design
31
+ - [API_EXTENSIONS.md](API_EXTENSIONS.md) - Extended features and new APIs
32
+
33
+ #### H-Matrix Evaluation (Research)
34
+ - [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) - **H-matrix evaluation results** (NOT recommended for typical use)
35
+
36
+ **Note:** H-matrix acceleration was evaluated and found to provide no benefit for typical Radia use cases (single compact objects). The following docs are archived for reference:
37
+ - [HMATRIX_USER_GUIDE.md](HMATRIX_USER_GUIDE.md) - (Archived) User guide
38
+ - [HMATRIX_SERIALIZATION.md](HMATRIX_SERIALIZATION.md) - (Archived) Disk cache feature
39
+
40
+ ## Quick Start
41
+
42
+ ### 1. Supported Element Types
43
+
44
+ Radia currently supports:
45
+
46
+ | Element Type | API | Status |
47
+ |--------------|-----|--------|
48
+ | Axis-aligned rectangular | `rad.ObjRecMag()` + `rad.ObjDivMag()` | **Supported** |
49
+ | Tetrahedron (4-face MSC) | `rad.ObjPolyhdr()` with `TETRA_FACES` | **Supported** |
50
+ | Hexahedron (6-face MSC) | `rad.ObjPolyhdr()` with `HEX_FACES` | **Supported** |
51
+ | General polyhedra (>6 faces) | - | **Not Supported** |
52
+
53
+ See [SUPPORTED_ELEMENTS.md](SUPPORTED_ELEMENTS.md) for details.
54
+
55
+ ### 2. Solver Methods
56
+
57
+ | Method | Name | Best For |
58
+ |--------|------|----------|
59
+ | LU Direct | `'lu'` or `0` | Small problems (N < 500) |
60
+ | BiCGSTAB | `'bicgstab'` or `1` | General purpose (default) |
61
+
62
+ See [SOLVER_METHODS.md](SOLVER_METHODS.md) for details.
63
+
64
+ ### 3. Basic Example
65
+
66
+ ```python
67
+ import radia as rad
68
+ rad.FldUnits('m')
69
+
70
+ # Create soft iron cube
71
+ cube = rad.ObjRecMag([0, 0, 0], [0.1, 0.1, 0.1], [0, 0, 0])
72
+ rad.ObjDivMag(cube, [5, 5, 5]) # 125 elements
73
+
74
+ # Apply material
75
+ mat = rad.MatLin(999.0) # mu_r = 1000
76
+ rad.MatApl(cube, mat)
77
+
78
+ # External field
79
+ ext = rad.ObjBckg([0, 0, 1.0]) # 1 T
80
+ grp = rad.ObjCnt([cube, ext])
81
+
82
+ # Solve
83
+ rad.Solve(grp, 0.0001, 1000)
84
+
85
+ # Get field
86
+ B = rad.Fld(grp, 'b', [0, 0, 0])
87
+ print(f"B at center: {B}")
88
+ ```
89
+
90
+ ## Additional Resources
91
+
92
+ ### Examples
93
+ Working code examples are in [../examples/](../examples/):
94
+ - [simple_problems/](../examples/simple_problems/) - Basic examples
95
+ - [solver_benchmarks/](../examples/solver_benchmarks/) - Performance benchmarks
96
+ - [ngsolve_integration/](../examples/ngsolve_integration/) - NGSolve integration examples
97
+ - [cube_uniform_field/](../examples/cube_uniform_field/) - Cube in uniform field benchmarks
98
+
99
+ ### Tests
100
+ Automated tests are in [../tests/](../tests/).
101
+
102
+ ## See Also
103
+
104
+ - [Main README](../README.md) - Project overview and installation
105
+ - [CHANGELOG](../CHANGELOG.md) - Version history
106
+
107
+ ---
108
+
109
+ **Last Updated:** 2025-12-11
110
+ **Project:** Radia Magnetic Field Computation
@@ -0,0 +1,207 @@
1
+ # Radia Solver Methods
2
+
3
+ **Version:** 1.3.13
4
+ **Date:** 2025-12-11
5
+
6
+ This document describes the available solver methods in Radia.
7
+
8
+ ## Available Methods
9
+
10
+ | Method | Name | Complexity | Best For |
11
+ |--------|------|------------|----------|
12
+ | **LU Direct** | `'lu'` or `'direct'` or `0` | O(N^3) | Small problems (N < 500), guaranteed convergence |
13
+ | **BiCGSTAB** (Default) | `'bicgstab'` or `'iterative'` or `1` | O(N^2 * k) | General purpose, large problems |
14
+
15
+ **Note:** Both solvers support linear and nonlinear materials. They use pure Newton-Raphson iteration for nonlinear convergence.
16
+
17
+ ## Solver Architecture (v1.3.13)
18
+
19
+ ### Historical Background
20
+
21
+ - **Original Radia**: Used Implicit SS (Successive Substitution / Gauss-Seidel) method
22
+ - Slow convergence for high-permeability nonlinear materials
23
+ - Could require hundreds of iterations
24
+
25
+ - **Current Radia (v1.3.13+)**: Replaced with modern solvers
26
+ - **BiCGSTAB** iterative solver for better convergence
27
+ - **LU direct** solver for guaranteed convergence
28
+ - Both use pure Newton-Raphson iteration (no Gauss-Seidel M(H) correction)
29
+
30
+ ### Performance (v1.3.13)
31
+
32
+ After OpenBLAS and OpenMP optimization:
33
+
34
+ | N_elem | LU Time | BiCGSTAB Time | Notes |
35
+ |--------|---------|---------------|-------|
36
+ | 104 | 0.13s | 0.13s | Linear material |
37
+ | 200 | 0.44s | 0.43s | Linear material |
38
+ | 390 | 1.72s | 1.71s | Linear material |
39
+
40
+ **Comparison with ELF_MAGIC (nonlinear material):**
41
+ - BiCGSTAB: **0.4x-0.6x** ratio (Radia is faster)
42
+ - LU: 7-11x ratio (more iterations in Radia due to stricter tolerance)
43
+
44
+ ## Usage
45
+
46
+ ### Basic Usage
47
+
48
+ ```python
49
+ import radia as rad
50
+
51
+ # Create geometry
52
+ cube = rad.ObjRecMag([0, 0, 0], [40, 40, 40], [0, 0, 0])
53
+ rad.ObjDivMag(cube, [5, 5, 5])
54
+ mat = rad.MatLin(999.0) # mu_r = 1000
55
+ rad.MatApl(cube, mat)
56
+
57
+ # Apply external field
58
+ ext_field = rad.ObjBckg([0, 0, 1.0]) # 1 T in SI
59
+ grp = rad.ObjCnt([cube, ext_field])
60
+
61
+ # Solve using default method (BiCGSTAB)
62
+ res = rad.Solve(grp, 0.0001, 1000)
63
+
64
+ # Or specify method by name
65
+ res = rad.Solve(grp, 0.0001, 1000, 'bicgstab') # BiCGSTAB (default)
66
+ res = rad.Solve(grp, 0.0001, 1000, 'lu') # LU decomposition
67
+ ```
68
+
69
+ ### Method Selection Guide
70
+
71
+ ```
72
+ Problem size?
73
+ |-- N < 500 --> Either method (LU is more robust)
74
+ |-- N >= 500 --> 'bicgstab' (faster)
75
+
76
+ Material type?
77
+ |-- Linear (MatLin) --> Any solver works
78
+ |-- Nonlinear (MatSatIso, etc.) --> Any solver works
79
+ ```
80
+
81
+ ## LU Direct Solver (Method 0)
82
+
83
+ Direct solver using LU decomposition with LAPACK `dgesv`.
84
+
85
+ **Pros:**
86
+ - Exact solution per nonlinear iteration
87
+ - Always converges (no divergence risk)
88
+ - Stable for all materials
89
+
90
+ **Cons:**
91
+ - O(N^3) time complexity
92
+ - O(N^2) memory usage
93
+
94
+ **Best for:** Small problems (N < 500), validation/debugging
95
+
96
+ ```python
97
+ res = rad.Solve(grp, 0.0001, 100, 'lu') # By name
98
+ res = rad.Solve(grp, 0.0001, 100, 0) # By number
99
+ ```
100
+
101
+ ## BiCGSTAB Solver (Method 1, Default)
102
+
103
+ BiCGSTAB (Biconjugate Gradient Stabilized) iterative solver with Jacobi preconditioning.
104
+
105
+ **Pros:**
106
+ - O(N^2 * k) time complexity (k = iterations)
107
+ - Fast for medium to large problems
108
+ - Good convergence with preconditioning
109
+
110
+ **Cons:**
111
+ - May not converge for ill-conditioned problems
112
+
113
+ **Best for:** General magnetostatic problems, tetrahedral/hexahedral meshes
114
+
115
+ ```python
116
+ res = rad.Solve(grp, 0.0001, 1000) # Default (BiCGSTAB)
117
+ res = rad.Solve(grp, 0.0001, 1000, 'bicgstab') # By name
118
+ res = rad.Solve(grp, 0.0001, 1000, 1) # By number
119
+ ```
120
+
121
+ ## Convergence Tolerance
122
+
123
+ The `PrecOnMagnetiz` parameter controls convergence:
124
+
125
+ ```python
126
+ rad.Solve(grp, tol, max_iter, method)
127
+ # ^^^
128
+ # Relative tolerance: ||dM||/||M||
129
+ ```
130
+
131
+ **Comparison with ELF_MAGIC:**
132
+ - ELF default: `0.01` (1%)
133
+ - Radia benchmark: `0.0001` (0.01%)
134
+
135
+ **Recommendation:** Use `0.01` for typical applications, `0.0001` for high precision.
136
+
137
+ ## H-Matrix Acceleration
138
+
139
+ **Status:** Under research (not available in v1.3.13)
140
+
141
+ H-matrix (HACApK) acceleration was evaluated but found to provide **no benefit for typical Radia use cases** (single compact objects). This is because:
142
+
143
+ 1. All elements are spatially close together
144
+ 2. No blocks satisfy the admissibility criterion
145
+ 3. All blocks remain dense (no compression benefit)
146
+
147
+ See [HMATRIX_EVALUATION.md](HMATRIX_EVALUATION.md) for details.
148
+
149
+ **Future:** H-matrix may be beneficial for:
150
+ - Multiple well-separated magnetic objects
151
+ - Large-scale problems with distributed geometry
152
+
153
+ ## Technical Details
154
+
155
+ ### System Equation
156
+
157
+ The MMM (Magnetic Moment Method) system equation:
158
+
159
+ ```
160
+ (1/chi - N) * M = H_ext
161
+ ```
162
+
163
+ Where:
164
+ - `chi`: Magnetic susceptibility tensor
165
+ - `N`: Interaction matrix (demagnetization coefficients)
166
+ - `M`: Magnetization vector
167
+ - `H_ext`: External field
168
+
169
+ ### Nonlinear Iteration
170
+
171
+ For nonlinear materials, outer Newton-Raphson iteration:
172
+
173
+ 1. Compute `chi(H)` from current field estimate
174
+ 2. Solve linear system with current `chi`
175
+ 3. Update magnetization: `M_new = solution`
176
+ 4. Check convergence: `||M_new - M_old|| / ||M_new|| < tol`
177
+ 5. Repeat until converged
178
+
179
+ ### BLAS/LAPACK Optimization (v1.3.13)
180
+
181
+ - `cblas_ddot`, `cblas_dnrm2`, `cblas_daxpy`: Vector operations
182
+ - `cblas_dgemv`: Matrix-vector product
183
+ - `dgesv_`: LU decomposition with partial pivoting
184
+
185
+ ### OpenMP Parallelization (v1.3.13)
186
+
187
+ - Interaction matrix O(N^2) construction is parallelized
188
+ - Speedup: Up to 240x for large problems
189
+
190
+ ## Migration Notes
191
+
192
+ ### From v1.3.6 or earlier
193
+
194
+ | Old Method | New Method | Notes |
195
+ |------------|------------|-------|
196
+ | `8` (Newton) | Removed | Use `0` (LU) or `1` (BiCGSTAB) |
197
+ | `9` (LU) | `0` or `'lu'` | Same functionality |
198
+ | `10` (BiCGSTAB) | `1` or `'bicgstab'` | Same functionality |
199
+
200
+ ### From v1.3.12 (Implicit SS removal)
201
+
202
+ Method 2 (Implicit SS / Gauss-Seidel) was removed due to slow convergence for nonlinear materials. Use BiCGSTAB (Method 1) instead.
203
+
204
+ ---
205
+
206
+ **Last Updated:** 2025-12-11
207
+ **Project:** Radia Magnetic Field Computation