phiFEM 0.8.0.dev1__tar.gz → 0.8.2.dev1__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 (188) hide show
  1. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/.vscode/settings.json +2 -1
  2. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/PKG-INFO +2 -2
  3. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/neumann/square/main.py +65 -44
  4. phifem-0.8.2.dev1/phifem-env.yml +9 -0
  5. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/pixi.lock +206 -315
  6. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/pyproject.toml +2 -2
  7. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/src/phifem/mesh_scripts.py +73 -42
  8. phifem-0.8.0.dev1/phifem-env.yml +0 -9
  9. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/.gitattributes +0 -0
  10. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/.gitignore +0 -0
  11. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/AUTHORS +0 -0
  12. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/COPYING +0 -0
  13. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/COPYING.lesser +0 -0
  14. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/README.md +0 -0
  15. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/ROADMAP.md +0 -0
  16. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/interface-elasticity/data.py +0 -0
  17. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/interface-elasticity/main.py +0 -0
  18. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/interface-elasticity/param1.yaml +0 -0
  19. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/interface-elasticity/plot.py +0 -0
  20. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/multimaterial-cantilever/output/petsc_log.txt +0 -0
  21. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/neumann/square/data.py +0 -0
  22. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/robin/square/data.py +0 -0
  23. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/robin/square/main.py +0 -0
  24. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/strong-dirichlet/flower/data.py +0 -0
  25. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/strong-dirichlet/flower/main.py +0 -0
  26. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/weak-dirichlet/flower/data.py +0 -0
  27. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/demo/weak-dirichlet/flower/main.py +0 -0
  28. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/.quarto/project-cache/7bf60dc2df74c845d8c8b514b35e52cd +0 -0
  29. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/.quarto/project-cache/deno-kv-file +0 -0
  30. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/.quarto/xref/INDEX +0 -0
  31. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/.quarto/xref/b14fa628 +0 -0
  32. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/ctags.png +0 -0
  33. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/ftags.png +0 -0
  34. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/style.css +0 -0
  35. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/doc/usage.html +0 -0
  36. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/logo/Logo_PhiFEM.pdf +0 -0
  37. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/pixi.toml +1 -1
  38. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/src/phifem/__init__.py +0 -0
  39. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/temp.md +0 -0
  40. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_.csv +0 -0
  41. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_discretize_.csv +0 -0
  42. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_discretize_single_layer_.csv +0 -0
  43. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_single_layer_.csv +0 -0
  44. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_circle_True_.csv +0 -0
  45. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_circle_True_discretize_.csv +0 -0
  46. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_circle_True_discretize_single_layer_.csv +0 -0
  47. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_circle_True_single_layer_.csv +0 -0
  48. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_square_True_.csv +0 -0
  49. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_square_True_discretize_.csv +0 -0
  50. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_square_True_discretize_single_layer_.csv +0 -0
  51. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_in_square_True_single_layer_.csv +0 -0
  52. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_.csv +0 -0
  53. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_discretize_.csv +0 -0
  54. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_discretize_single_layer_.csv +0 -0
  55. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_single_layer_.csv +0 -0
  56. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_.csv +0 -0
  57. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_discretize_.csv +0 -0
  58. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_discretize_single_layer_.csv +0 -0
  59. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_single_layer_.csv +0 -0
  60. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/nasty_levelset_True_.csv +0 -0
  61. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/nasty_levelset_True_discretize_.csv +0 -0
  62. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/nasty_levelset_True_discretize_single_layer_.csv +0 -0
  63. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/nasty_levelset_True_single_layer_.csv +0 -0
  64. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/square_in_square_True_.csv +0 -0
  65. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/square_in_square_True_discretize_.csv +0 -0
  66. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/square_in_square_True_discretize_single_layer_.csv +0 -0
  67. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_cells_data/square_in_square_True_single_layer_.csv +0 -0
  68. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_.csv +0 -0
  69. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_discretize_.csv +0 -0
  70. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_discretize_single_layer_.csv +0 -0
  71. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_single_layer_.csv +0 -0
  72. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_.csv +0 -0
  73. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_discretize_.csv +0 -0
  74. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_discretize_single_layer_.csv +0 -0
  75. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_single_layer_.csv +0 -0
  76. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_.csv +0 -0
  77. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_discretize_.csv +0 -0
  78. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_discretize_single_layer_.csv +0 -0
  79. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_single_layer_.csv +0 -0
  80. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_.csv +0 -0
  81. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_discretize_.csv +0 -0
  82. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_discretize_single_layer_.csv +0 -0
  83. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_single_layer_.csv +0 -0
  84. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_1_.csv +0 -0
  85. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_1_discretize_.csv +0 -0
  86. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_1_discretize_single_layer_.csv +0 -0
  87. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_1_single_layer_.csv +0 -0
  88. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_2_.csv +0 -0
  89. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_2_discretize_.csv +0 -0
  90. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_2_discretize_single_layer_.csv +0 -0
  91. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_2_single_layer_.csv +0 -0
  92. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_3_.csv +0 -0
  93. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_3_discretize_.csv +0 -0
  94. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_3_discretize_single_layer_.csv +0 -0
  95. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_3_single_layer_.csv +0 -0
  96. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_4_.csv +0 -0
  97. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_4_discretize_.csv +0 -0
  98. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_4_discretize_single_layer_.csv +0 -0
  99. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_4_single_layer_.csv +0 -0
  100. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_circle_True_.csv +0 -0
  101. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_1_.csv +0 -0
  102. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_1_discretize_.csv +0 -0
  103. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_1_discretize_single_layer_.csv +0 -0
  104. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_1_single_layer_.csv +0 -0
  105. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_2_.csv +0 -0
  106. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_2_discretize_.csv +0 -0
  107. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_2_discretize_single_layer_.csv +0 -0
  108. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_2_single_layer_.csv +0 -0
  109. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_3_.csv +0 -0
  110. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_3_discretize_.csv +0 -0
  111. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_3_discretize_single_layer_.csv +0 -0
  112. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_3_single_layer_.csv +0 -0
  113. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_4_.csv +0 -0
  114. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_4_discretize_.csv +0 -0
  115. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_4_discretize_single_layer_.csv +0 -0
  116. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_in_square_4_single_layer_.csv +0 -0
  117. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_.csv +0 -0
  118. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_discretize_.csv +0 -0
  119. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_discretize_single_layer_.csv +0 -0
  120. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_single_layer_.csv +0 -0
  121. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_.csv +0 -0
  122. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_discretize_.csv +0 -0
  123. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_discretize_single_layer_.csv +0 -0
  124. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_single_layer_.csv +0 -0
  125. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_.csv +0 -0
  126. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_discretize_.csv +0 -0
  127. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_discretize_single_layer_.csv +0 -0
  128. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_single_layer_.csv +0 -0
  129. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_.csv +0 -0
  130. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_discretize_.csv +0 -0
  131. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_discretize_single_layer_.csv +0 -0
  132. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_single_layer_.csv +0 -0
  133. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_.csv +0 -0
  134. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_discretize_.csv +0 -0
  135. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_discretize_single_layer_.csv +0 -0
  136. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_single_layer_.csv +0 -0
  137. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_.csv +0 -0
  138. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_discretize_.csv +0 -0
  139. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_discretize_single_layer_.csv +0 -0
  140. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_single_layer_.csv +0 -0
  141. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_.csv +0 -0
  142. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_discretize_.csv +0 -0
  143. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_discretize_single_layer_.csv +0 -0
  144. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_single_layer_.csv +0 -0
  145. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_.csv +0 -0
  146. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_discretize_.csv +0 -0
  147. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_discretize_single_layer_.csv +0 -0
  148. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_single_layer_.csv +0 -0
  149. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_1_.csv +0 -0
  150. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_1_discretize_.csv +0 -0
  151. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_1_discretize_single_layer_.csv +0 -0
  152. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_1_single_layer_.csv +0 -0
  153. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_2_.csv +0 -0
  154. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_2_discretize_.csv +0 -0
  155. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_2_discretize_single_layer_.csv +0 -0
  156. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_2_single_layer_.csv +0 -0
  157. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_3_.csv +0 -0
  158. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_3_discretize_.csv +0 -0
  159. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_3_discretize_single_layer_.csv +0 -0
  160. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_3_single_layer_.csv +0 -0
  161. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_4_.csv +0 -0
  162. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_4_discretize_.csv +0 -0
  163. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_4_discretize_single_layer_.csv +0 -0
  164. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/nasty_levelset_4_single_layer_.csv +0 -0
  165. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_1_.csv +0 -0
  166. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_1_discretize_.csv +0 -0
  167. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_1_discretize_single_layer_.csv +0 -0
  168. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_1_single_layer_.csv +0 -0
  169. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_2_.csv +0 -0
  170. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_2_discretize_.csv +0 -0
  171. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_2_discretize_single_layer_.csv +0 -0
  172. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_2_single_layer_.csv +0 -0
  173. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_3_.csv +0 -0
  174. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_3_discretize_.csv +0 -0
  175. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_3_discretize_single_layer_.csv +0 -0
  176. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_3_single_layer_.csv +0 -0
  177. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_4_.csv +0 -0
  178. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_4_discretize_.csv +0 -0
  179. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_4_discretize_single_layer_.csv +0 -0
  180. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/data/tag_facets_data/square_in_square_4_single_layer_.csv +0 -0
  181. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/old_test_compute_meshtags.py +0 -0
  182. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/old_test_one_sided_integral.py +0 -0
  183. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/test_cells_facets_pairs.py +0 -0
  184. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/test_compute_meshtags.py +0 -0
  185. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/test_one_sided_integral.py +0 -0
  186. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/test_tag_cells.py +0 -0
  187. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/test_tag_facets.py +0 -0
  188. {phifem-0.8.0.dev1 → phifem-0.8.2.dev1}/tests/utils_test.py +0 -0
@@ -25,7 +25,8 @@
25
25
  "statusBar.debuggingBackground": "#0a7f02",
26
26
  "statusBar.debuggingForeground": "#e7e7e7",
27
27
  "activityBar.activeBorder": "#e7e7e7",
28
- "activityBarTop.activeBorder": "#e7e7e7"
28
+ "activityBarTop.activeBorder": "#e7e7e7",
29
+ "statusBar.inactiveBackground": "#0a7f02"
29
30
  },
30
31
  "peacock.color": "#0a7f02",
31
32
  "peacock.favoriteColors": [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: phiFEM
3
- Version: 0.8.0.dev1
3
+ Version: 0.8.2.dev1
4
4
  Summary: phiFEM: convenience tools to use the phiFEM immersed boundary finite element method with dolfinx.
5
5
  Project-URL: Homepage, https://github.com/PhiFEM/phiFEM
6
6
  Project-URL: Issues, https://github.com/PhiFEM/phiFEM/issues
@@ -12,7 +12,7 @@ License-File: COPYING.lesser
12
12
  Classifier: Operating System :: OS Independent
13
13
  Classifier: Programming Language :: Python :: 3
14
14
  Requires-Python: >=3.9
15
- Requires-Dist: fenics-dolfinx==0.9.0
15
+ Requires-Dist: fenics-dolfinx<0.11,>=0.9.0
16
16
  Description-Content-Type: text/markdown
17
17
 
18
18
  <p align="center" width="100%">
@@ -1,5 +1,6 @@
1
1
  import argparse
2
2
  import os
3
+ import shutil
3
4
 
4
5
  import dolfinx as dfx
5
6
  import numpy as np
@@ -29,7 +30,8 @@ mesh_type = args.mesh_type
29
30
 
30
31
  output_dir = os.path.join(parent_dir, mesh_type + "_output")
31
32
 
32
- if not os.path.isdir(output_dir):
33
+ world_comm = MPI.COMM_WORLD
34
+ if world_comm.rank == 0 and not os.path.isdir(output_dir):
33
35
  print(f"{output_dir} directory not found, we create it.")
34
36
  os.mkdir(os.path.join(parent_dir, output_dir))
35
37
 
@@ -70,6 +72,18 @@ elif mesh_type == "sub":
70
72
  )
71
73
  ds = ufl.Measure("ds", domain=mesh)
72
74
 
75
+ dg0_element = element("DG", cell_name, 0)
76
+ dg0_space = dfx.fem.functionspace(mesh, dg0_element)
77
+
78
+ cells_tags_h = dfx.fem.Function(dg0_space)
79
+ cells_tags_h.name = "cells tags"
80
+
81
+ local_num_dofs = dg0_space.dofmap.index_map.size_local
82
+ ghosts_dofs = dg0_space.dofmap.index_map.ghosts
83
+ l2g_map = dg0_space.dofmap.index_map.local_to_global(np.arange(local_num_dofs))
84
+ l2g_map = np.sort(np.hstack([l2g_map, ghosts_dofs]))
85
+ cells_tags_h.x.array[:] = cells_tags.values
86
+
73
87
  gdim = mesh.geometry.dim
74
88
  primal_element = element("Lagrange", cell_name, primal_degree)
75
89
  auxiliary_element = element("DG", cell_name, auxiliary_degree)
@@ -156,6 +170,7 @@ L = ufl.inner(f_h, v) * dx((1, 2)) + (
156
170
 
157
171
  linear_form = dfx.fem.form(L)
158
172
  b = assemble_vector(linear_form)
173
+ b.ghostUpdate(addv=PETSc.InsertMode.ADD, mode=PETSc.ScatterMode.REVERSE)
159
174
 
160
175
  """
161
176
  =========================
@@ -182,6 +197,7 @@ pc.getFactorMatrix().setMumpsIcntl(icntl=25, ival=0)
182
197
  solution_wh = dfx.fem.Function(mixed_space)
183
198
  ksp.solve(b, solution_wh.x.petsc_vec)
184
199
  ksp.destroy()
200
+ solution_wh.x.scatter_forward()
185
201
 
186
202
  # Recover the primal solution from the mixed solution
187
203
  solution_uh, _, _ = solution_wh.split()
@@ -192,58 +208,63 @@ solution_uh.collapse()
192
208
  Save solution for visualization
193
209
  =================================
194
210
  """
195
- with XDMFFile(mesh.comm, os.path.join(output_dir, "solution.xdmf"), "w") as of:
196
- of.write_mesh(mesh)
197
- of.write_function(solution_uh)
198
211
 
199
212
  u_exact_h = dfx.fem.Function(primal_space)
200
213
  u_exact_h.interpolate(exact_solution)
201
214
 
202
- with XDMFFile(mesh.comm, os.path.join(output_dir, "exact_solution.xdmf"), "w") as of:
215
+ solution_uh.name = "uh"
216
+ u_exact_h.name = "exact"
217
+ with XDMFFile(mesh.comm, os.path.join(output_dir, "solutions.xdmf"), "w") as of:
203
218
  of.write_mesh(mesh)
219
+ of.write_function(solution_uh)
204
220
  of.write_function(u_exact_h)
221
+ of.write_function(cells_tags_h)
205
222
 
206
223
  """
207
224
  =========================
208
225
  Local error computation
209
226
  =========================
210
227
  """
211
- ref_element = element("Lagrange", cell_name, primal_degree + 2)
212
- ref_space = dfx.fem.functionspace(mesh, ref_element)
213
-
214
- ref_exact_solution = dfx.fem.Function(ref_space)
215
- ref_exact_solution.interpolate(exact_solution)
216
- ref_solution = dfx.fem.Function(ref_space)
217
- ref_solution.interpolate(solution_uh)
218
- ref_error = dfx.fem.Function(ref_space)
219
- ref_error.x.array[:] = ref_exact_solution.x.array[:] - ref_solution.x.array[:]
220
-
221
- dg0_element = element("DG", cell_name, 0)
222
- dg0_space = dfx.fem.functionspace(mesh, dg0_element)
223
- v0 = ufl.TestFunction(dg0_space)
224
-
225
- h1_error = ufl.inner(
226
- ufl.inner(ufl.grad(ref_error), ufl.grad(ref_error))
227
- + ufl.inner(ref_error, ref_error),
228
- v0,
229
- ) * dx((1, 2))
230
-
231
- h1_error_form = dfx.fem.form(h1_error)
232
- h1_error_vec = assemble_vector(h1_error_form)
233
-
234
- h1_error_fct = dfx.fem.Function(dg0_space)
235
- h1_error_fct.x.array[:] = h1_error_vec.array[:]
236
-
237
- with XDMFFile(mesh.comm, os.path.join(output_dir, "h1_error.xdmf"), "w") as of:
238
- of.write_mesh(mesh)
239
- of.write_function(h1_error_fct)
240
-
241
- h1_norm_exact_solution = (
242
- ufl.inner(ufl.grad(ref_exact_solution), ufl.grad(ref_exact_solution))
243
- + ufl.inner(ref_exact_solution, ref_exact_solution)
244
- ) * dx((1, 2))
245
- h1_norm_exact_solution_form = dfx.fem.form(h1_norm_exact_solution)
246
- h1_norm_exact_solution = dfx.fem.assemble_scalar(h1_norm_exact_solution_form)
247
-
248
- print("Relative H1 error:")
249
- print(np.sqrt(h1_error_fct.x.array.sum() / h1_norm_exact_solution))
228
+ # ref_element = element("Lagrange", cell_name, primal_degree + 2)
229
+ # ref_space = dfx.fem.functionspace(mesh, ref_element)
230
+
231
+ # ref_exact_solution = dfx.fem.Function(ref_space)
232
+ # ref_exact_solution.interpolate(exact_solution)
233
+ # ref_solution = dfx.fem.Function(ref_space)
234
+ # ref_solution.interpolate(solution_uh)
235
+ # ref_error = dfx.fem.Function(ref_space)
236
+ # ref_error.x.array[:] = ref_exact_solution.x.array[:] - ref_solution.x.array[:]
237
+
238
+ # dg0_element = element("DG", cell_name, 0)
239
+ # dg0_space = dfx.fem.functionspace(mesh, dg0_element)
240
+ # v0 = ufl.TestFunction(dg0_space)
241
+
242
+ # h1_error = ufl.inner(
243
+ # ufl.inner(ufl.grad(ref_error), ufl.grad(ref_error))
244
+ # + ufl.inner(ref_error, ref_error),
245
+ # v0,
246
+ # ) * dx((1, 2))
247
+
248
+ # h1_error_form = dfx.fem.form(h1_error)
249
+ # h1_error_vec = assemble_vector(h1_error_form)
250
+
251
+ # h1_error_fct = dfx.fem.Function(dg0_space)
252
+ # if mesh.comm.rank == 0:
253
+ # h1_error_fct.x.array[:] = h1_error_vec.array[:]
254
+
255
+ # h1_error_fct.x.array[:] = mesh.comm.bcast(h1_error_fct.x.array[:], root=0)
256
+
257
+ # with XDMFFile(mesh.comm, os.path.join(output_dir, "h1_error.xdmf"), "w") as of:
258
+ # of.write_mesh(mesh)
259
+ # of.write_function(h1_error_fct)
260
+
261
+ # h1_norm_exact_solution = (
262
+ # ufl.inner(ufl.grad(ref_exact_solution), ufl.grad(ref_exact_solution))
263
+ # + ufl.inner(ref_exact_solution, ref_exact_solution)
264
+ # ) * dx((1, 2))
265
+ # h1_norm_exact_solution_form = dfx.fem.form(h1_norm_exact_solution)
266
+ # h1_norm_exact_solution = dfx.fem.assemble_scalar(h1_norm_exact_solution_form)
267
+
268
+ # if mesh.comm.rank == 0:
269
+ # print("Relative H1 error:")
270
+ # print(np.sqrt(h1_error_fct.x.array.sum() / h1_norm_exact_solution))
@@ -0,0 +1,9 @@
1
+ name: phifem
2
+ channels:
3
+ - conda-forge
4
+ dependencies:
5
+ - python>=3.11.10
6
+ - numpy>=1.26.3
7
+ - fenics-dolfinx>=0.9.0,<0.11
8
+ - pip:
9
+ - phifem==0.7.1.dev2