xfem 2.1.2605.dev2__tar.gz → 2.1.2605.dev3__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 (250) hide show
  1. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/PKG-INFO +1 -1
  2. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/straightcutrule.cpp +12 -1
  3. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/_version.py +3 -3
  4. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_bndcut.py +55 -0
  5. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.ci/build_pip.sh +0 -0
  6. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.ci/build_pip_mac.sh +0 -0
  7. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.ci/ci_ctests.sh +0 -0
  8. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.ci/fix_auditwheel_policy.py +0 -0
  9. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.github/workflows/extras-workflow.yml +0 -0
  10. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.github/workflows/paper-workflow.yml +0 -0
  11. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.github/workflows/pypi.yml +0 -0
  12. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.gitignore +0 -0
  13. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.gitlab-ci.yml +0 -0
  14. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/.gitmodules +0 -0
  15. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/CMakeLists.txt +0 -0
  16. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/Dockerfile +0 -0
  17. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/INSTALLATION.md +0 -0
  18. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/LICENSE +0 -0
  19. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/MANIFEST.in +0 -0
  20. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/README.md +0 -0
  21. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/_ngsolve_deps_provider.py +0 -0
  22. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cmake_modules/check_submodules.cmake +0 -0
  23. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cmake_modules/cmake_uninstall.cmake.in +0 -0
  24. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/config.h.cmake +0 -0
  25. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/CMakeLists.txt +0 -0
  26. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/cutintegral.cpp +0 -0
  27. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/cutintegral.hpp +0 -0
  28. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/fieldeval.cpp +0 -0
  29. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/fieldeval.hpp +0 -0
  30. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/lsetintdomain.cpp +0 -0
  31. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/lsetintdomain.hpp +0 -0
  32. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/mlsetintegration.cpp +0 -0
  33. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/mlsetintegration.hpp +0 -0
  34. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/python_cutint.cpp +0 -0
  35. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/spacetimecutrule.cpp +0 -0
  36. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/spacetimecutrule.hpp +0 -0
  37. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/straightcutrule.hpp +0 -0
  38. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/xdecompose.cpp +0 -0
  39. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/xdecompose.hpp +0 -0
  40. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/xintegration.cpp +0 -0
  41. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/cutint/xintegration.hpp +0 -0
  42. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/CMakeLists.txt +0 -0
  43. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/README.md +0 -0
  44. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/aggregates/aggfem_shapetester.py +0 -0
  45. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/aggregates/fictdom_aggfem.py +0 -0
  46. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/aggregates/fictdom_dg_aggfem.py +0 -0
  47. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/fictdom.py +0 -0
  48. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/fictdom_dg.py +0 -0
  49. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/fictdom_mlset.py +0 -0
  50. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/compp1prolong-playground.py +0 -0
  51. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/cutint/area_of_a_circle_quads.py +0 -0
  52. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/cutint/integrate_one_big_quad2D.py +0 -0
  53. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/cutint/integrate_one_big_quad3D.py +0 -0
  54. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/fictdom_dg3d.py +0 -0
  55. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/lsetcurving/integrate.py +0 -0
  56. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/make_uniform3D_grid.py +0 -0
  57. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mg_cut_poisson_p1.py +0 -0
  58. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mg_cut_poisson_p1p2_skinny.py +0 -0
  59. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mg_cut_poisson_p2.py +0 -0
  60. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mg_cut_poisson_p2_skinny.py +0 -0
  61. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mg_p1_working.py +0 -0
  62. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/cube.py +0 -0
  63. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/cube2.py +0 -0
  64. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/cube_codim2_test.py +0 -0
  65. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/even_simpler.py +0 -0
  66. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/multiple_triangles.py +0 -0
  67. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/simple.py +0 -0
  68. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/simple_mlcutinfo.py +0 -0
  69. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/simple_with_convinience.py +0 -0
  70. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/square.py +0 -0
  71. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/tensor_functions.py +0 -0
  72. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/test_GetOuterBoundary.py +0 -0
  73. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/test_draw.py +0 -0
  74. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/triangle.py +0 -0
  75. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/zalesak_disk.py +0 -0
  76. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/mlset/zalesak_sphere.py +0 -0
  77. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/p1prolong-playground.py +0 -0
  78. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/p2prolong-playground.py +0 -0
  79. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/graveyard/stokesxfem.py +0 -0
  80. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/linelasticity.py +0 -0
  81. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/lsetgeoms.py +0 -0
  82. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/moving_domain.py +0 -0
  83. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/mpi/mpi_nxfem.py +0 -0
  84. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/IF_circle.py +0 -0
  85. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/IF_marking.py +0 -0
  86. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/IF_periodic.py +0 -0
  87. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_hypersphere_ST.py +0 -0
  88. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_hypersphere_ST_conv.py +0 -0
  89. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_hypersphere_ST_conv_higher_order.py +0 -0
  90. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_sphere_ST.py +0 -0
  91. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_sphere_ST_conv.py +0 -0
  92. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/area_of_a_sphere_ST_conv_higher_order.py +0 -0
  93. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/fictdomain_Neumann_quad_testing.py +0 -0
  94. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/kite3D_in_sympy.py +0 -0
  95. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/kite_in_sympy.py +0 -0
  96. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP1_timeDGP1_3D.py +0 -0
  97. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP1_timeDGP1_3D_static.py +0 -0
  98. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP1_timeDGP1_kite.py +0 -0
  99. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP1_timeDGP1_kite3D.py +0 -0
  100. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP2_timeDGP1.py +0 -0
  101. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spaceP2_timeDGP1_new.py +0 -0
  102. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/graveyard/spacePX_timeDGP1_kite.py +0 -0
  103. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spaceDGtimeDG_unfitted.py +0 -0
  104. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spaceDGtimeDG_unfitted_3D.py +0 -0
  105. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetimeCG_unfitted.py +0 -0
  106. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetimeDG_fitted.py +0 -0
  107. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetimeDG_fitted_Nitsche.py +0 -0
  108. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetimeDG_unfitted.py +0 -0
  109. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetime_geom_error.py +0 -0
  110. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spacetime/spacetime_vtk.py +0 -0
  111. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/spdes/surfstokestracefem.py +0 -0
  112. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/stokescutfem.py +0 -0
  113. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/tracefem.py +0 -0
  114. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/demos/unf_interf_prob.py +0 -0
  115. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/feature-details.md +0 -0
  116. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/bubble-coarse.pdf +0 -0
  117. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/cuttet-quadrature.png +0 -0
  118. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/cut_quadrature.png +0 -0
  119. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/cut_quadrature_mlset.png +0 -0
  120. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/cuttet.jpg +0 -0
  121. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/intpoints.jpg +0 -0
  122. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/spacetime1.png +0 -0
  123. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/spacetime2.png +0 -0
  124. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/graveyard/zdisc-cut-elements.png +0 -0
  125. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/lsetcurv.jpg +0 -0
  126. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/mlset.png +0 -0
  127. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/patches.png +0 -0
  128. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/spacetime.png +0 -0
  129. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/twophase.pdf +0 -0
  130. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/unfittedmesh.jpg +0 -0
  131. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/xfem.jpg +0 -0
  132. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/graphics/xfes.png +0 -0
  133. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/latex.template +0 -0
  134. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/lit-ngsxfem.bib +0 -0
  135. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/literature.md +0 -0
  136. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/_static/custom.css +0 -0
  137. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/bullets.css +0 -0
  138. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/conf.py +0 -0
  139. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/contents.rst +0 -0
  140. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/index.rst +0 -0
  141. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/jupyter/index.rst +0 -0
  142. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/requirements.txt +0 -0
  143. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/xfem_misc/demos.rst +0 -0
  144. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/xfem_misc/feature-details.rst +0 -0
  145. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/xfem_misc/installation.rst +0 -0
  146. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/doc/sphinx/xfem_misc/literature.rst +0 -0
  147. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/CMakeLists.txt +0 -0
  148. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/calcpointshift.cpp +0 -0
  149. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/calcpointshift.hpp +0 -0
  150. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/lsetrefine.cpp +0 -0
  151. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/lsetrefine.hpp +0 -0
  152. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/projshift.cpp +0 -0
  153. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/projshift.hpp +0 -0
  154. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/python_lsetcurving.cpp +0 -0
  155. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/shiftedevaluate.cpp +0 -0
  156. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/shiftedevaluate.hpp +0 -0
  157. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/shiftintegrators.cpp +0 -0
  158. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/lsetcurving/shiftintegrators.hpp +0 -0
  159. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/ngsolve_addon.cmake +0 -0
  160. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/pyproject.toml +0 -0
  161. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/CMakeLists.txt +0 -0
  162. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/__init__.py +0 -0
  163. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/cutmg.py +0 -0
  164. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/lset_smoothblend.py +0 -0
  165. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/lset_spacetime.py +0 -0
  166. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/lsetcurv.py +0 -0
  167. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/mlset.py +0 -0
  168. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/ngs_check.py +0 -0
  169. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/python_ngsxfem.cpp +0 -0
  170. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/python/utils.py +0 -0
  171. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/CMakeLists.txt +0 -0
  172. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/SpaceTimeFE.cpp +0 -0
  173. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/SpaceTimeFE.hpp +0 -0
  174. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/SpaceTimeFESpace.cpp +0 -0
  175. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/SpaceTimeFESpace.hpp +0 -0
  176. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/diffopDt.cpp +0 -0
  177. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/diffopDt.hpp +0 -0
  178. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/diffopFixt.cpp +0 -0
  179. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/diffopFixt.hpp +0 -0
  180. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/python_spacetime.cpp +0 -0
  181. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/spacetime_vtk.cpp +0 -0
  182. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/spacetime_vtk.hpp +0 -0
  183. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/timecf.cpp +0 -0
  184. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/spacetime/timecf.hpp +0 -0
  185. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/CMakeLists.txt +0 -0
  186. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/ngsxfem_report.py +0 -0
  187. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_aggregates.py +0 -0
  188. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_backuprule.py +0 -0
  189. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_calc_linearized.py +0 -0
  190. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_differential_symbol.py +0 -0
  191. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_elementlayers.py +0 -0
  192. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_intcurved.py +0 -0
  193. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_local_solve.py +0 -0
  194. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_localgeom.py +0 -0
  195. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_memory_usage.py +0 -0
  196. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_mlset_integration.py +0 -0
  197. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_mlset_module_functionality.py +0 -0
  198. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_mlset_poisson.py +0 -0
  199. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_navier_stokes_2d1.py +0 -0
  200. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_ngsolve_version.py +0 -0
  201. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_nonlin.py +0 -0
  202. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_num_nxfem.py +0 -0
  203. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_nxfem.py +0 -0
  204. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_quadchallenges.py +0 -0
  205. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_shifteval.py +0 -0
  206. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_simd_cutint.py +0 -0
  207. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_simd_lf_blf.py +0 -0
  208. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_spacetime_lsetcurv.py +0 -0
  209. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_spacetime_set.py +0 -0
  210. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_spacetime_vecH1.py +0 -0
  211. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_spacetime_vtk.py +0 -0
  212. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_spacetimecutrule.py +0 -0
  213. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_straightcutrule.py +0 -0
  214. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_utils.py +0 -0
  215. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/tests/pytests/test_xfes_ndof.py +0 -0
  216. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/CMakeLists.txt +0 -0
  217. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/bitarraycf.cpp +0 -0
  218. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/bitarraycf.hpp +0 -0
  219. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/ngsxstd.cpp +0 -0
  220. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/ngsxstd.hpp +0 -0
  221. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/p1interpol.cpp +0 -0
  222. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/p1interpol.hpp +0 -0
  223. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/python_utils.cpp +0 -0
  224. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/restrictedblf.cpp +0 -0
  225. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/restrictedblf.hpp +0 -0
  226. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/restrictedfespace.cpp +0 -0
  227. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/restrictedfespace.hpp +0 -0
  228. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/spacetimechecks.hpp +0 -0
  229. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/xprolongation.cpp +0 -0
  230. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/utils/xprolongation.hpp +0 -0
  231. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/CMakeLists.txt +0 -0
  232. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/aggregates.cpp +0 -0
  233. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/aggregates.hpp +0 -0
  234. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/cutinfo.cpp +0 -0
  235. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/cutinfo.hpp +0 -0
  236. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/ghostpenalty.cpp +0 -0
  237. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/ghostpenalty.hpp +0 -0
  238. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/python_xfem.cpp +0 -0
  239. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/sFESpace.cpp +0 -0
  240. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/sFESpace.hpp +0 -0
  241. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/symboliccutbfi.cpp +0 -0
  242. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/symboliccutbfi.hpp +0 -0
  243. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/symboliccutlfi.cpp +0 -0
  244. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/symboliccutlfi.hpp +0 -0
  245. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xFESpace.cpp +0 -0
  246. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xFESpace.hpp +0 -0
  247. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xfemdiffops.cpp +0 -0
  248. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xfemdiffops.hpp +0 -0
  249. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xfiniteelement.cpp +0 -0
  250. {xfem-2.1.2605.dev2 → xfem-2.1.2605.dev3}/xfem/xfiniteelement.hpp +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: xfem
3
- Version: 2.1.2605.dev2
3
+ Version: 2.1.2605.dev3
4
4
  Summary: (ngs)xfem is an Add-on library to Netgen/NGSolve for unfitted/cut FEM.
5
5
  Author-Email: Christoph Lehrenfeld <lehrenfeld@math.uni-goettingen.de>
6
6
  Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)
@@ -643,7 +643,18 @@ namespace xintegration
643
643
  if (dt == IF)
644
644
  {
645
645
  auto ir_interface = new (lh) IntegrationRule(quad_untrafo.Size(),lh);
646
- if (DIM == 1) TransformQuadUntrafoToIRInterface<1>(quad_untrafo, trafo, lset, ir_interface, spacetime_mode, tval);
646
+ if (et == ET_SEGM && DIM == 2)
647
+ {
648
+ // BND segment in a 2D mesh: the interface (IF) is a co-dim-2 point.
649
+ // Use point measure: weight = 1/GetMeasure() so that mip.GetMeasure()*weight = 1.
650
+ for (int i = 0; i < quad_untrafo.Size(); i++)
651
+ {
652
+ MappedIntegrationPoint<1,2> mip(quad_untrafo[i], trafo);
653
+ (*ir_interface)[i] = IntegrationPoint(quad_untrafo[i].Point(),
654
+ quad_untrafo[i].Weight() / mip.GetMeasure());
655
+ }
656
+ }
657
+ else if (DIM == 1) TransformQuadUntrafoToIRInterface<1>(quad_untrafo, trafo, lset, ir_interface, spacetime_mode, tval);
647
658
  else if (DIM == 2) TransformQuadUntrafoToIRInterface<2>(quad_untrafo, trafo, lset, ir_interface, spacetime_mode, tval);
648
659
  else TransformQuadUntrafoToIRInterface<3>(quad_untrafo, trafo, lset, ir_interface, spacetime_mode, tval);
649
660
  ir = ir_interface;
@@ -18,7 +18,7 @@ version_tuple: tuple[int | str, ...]
18
18
  commit_id: str | None
19
19
  __commit_id__: str | None
20
20
 
21
- __version__ = version = '2.1.2605.dev2'
22
- __version_tuple__ = version_tuple = (2, 1, 2605, 'dev2')
21
+ __version__ = version = '2.1.2605.dev3'
22
+ __version_tuple__ = version_tuple = (2, 1, 2605, 'dev3')
23
23
 
24
- __commit_id__ = commit_id = 'g8d6a9079d'
24
+ __commit_id__ = commit_id = 'ge7bf5996f'
@@ -162,6 +162,61 @@ def test_bfi_assembly_2d_partial():
162
162
  assert abs(val - cut) < 1e-2, f"Expected ~{cut}, got {val}"
163
163
 
164
164
 
165
+ # ---------------------------------------------------------------------------
166
+ # IF+BND (co-dimension-2) tests
167
+ # ---------------------------------------------------------------------------
168
+
169
+ @pytest.mark.parametrize("cut", [0.3, 0.5, 0.7])
170
+ def test_integrate_if_bnd_2d_count(cut):
171
+ """Integrate(1 * dCut(lset, IF, vb=BND)) counts boundary–interface intersections.
172
+
173
+ With lset = x - cut the interface {lset=0} is the vertical line x=cut.
174
+ It intersects the boundary of the unit square in exactly 2 points:
175
+ (cut, 0) on the bottom edge and (cut, 1) on the top edge.
176
+ The point measure of 2 discrete points is 2.
177
+ """
178
+ mesh = make_2d_mesh()
179
+ lset = GridFunction(H1(mesh, order=1))
180
+ InterpolateToP1(x - cut, lset)
181
+
182
+ val = Integrate(CoefficientFunction(1) * dCut(lset, IF, vb=BND), mesh)
183
+ assert abs(val - 2.0) < 1e-10, f"Expected 2.0 (2 intersection points), got {val}"
184
+
185
+
186
+ def test_integrate_if_bnd_2d_function():
187
+ """Integrating a function over IF+BND evaluates it at the intersection points.
188
+
189
+ lset = x - 0.5 → intersections at (0.5, 0) and (0.5, 1).
190
+ ∫ x dσ₀ = 0.5 + 0.5 = 1.0
191
+ ∫ y dσ₀ = 0.0 + 1.0 = 1.0
192
+ """
193
+ mesh = make_2d_mesh()
194
+ lset = GridFunction(H1(mesh, order=1))
195
+ InterpolateToP1(x - 0.5, lset)
196
+
197
+ val_x = Integrate(x * dCut(lset, IF, vb=BND), mesh)
198
+ val_y = Integrate(y * dCut(lset, IF, vb=BND), mesh)
199
+ assert abs(val_x - 1.0) < 1e-10, f"∫x dσ₀ expected 1.0, got {val_x}"
200
+ assert abs(val_y - 1.0) < 1e-10, f"∫y dσ₀ expected 1.0, got {val_y}"
201
+
202
+
203
+ def test_integrate_if_bnd_2d_definedon():
204
+ """definedon restricts IF+BND to a single boundary edge."""
205
+ mesh = make_2d_mesh()
206
+ lset = GridFunction(H1(mesh, order=1))
207
+ InterpolateToP1(x - 0.5, lset)
208
+
209
+ # Only the bottom edge should have one intersection point at (0.5, 0)
210
+ val_bot = Integrate(CoefficientFunction(1) * dCut(lset, IF, vb=BND,
211
+ definedon=mesh.Boundaries("bottom")), mesh)
212
+ assert abs(val_bot - 1.0) < 1e-10, f"Expected 1 intersection on bottom, got {val_bot}"
213
+
214
+ # Only the left edge (x=0) has no intersection with x=0.5
215
+ val_left = Integrate(CoefficientFunction(1) * dCut(lset, IF, vb=BND,
216
+ definedon=mesh.Boundaries("left")), mesh)
217
+ assert abs(val_left - 0.0) < 1e-10, f"Expected 0 intersections on left, got {val_left}"
218
+
219
+
165
220
  def test_bfi_definedon_bitarray():
166
221
  """definedon can be supplied as a BitArray of boundary elements."""
167
222
  cut = 0.4
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes