phiFEM 0.8.0.dev1__tar.gz → 0.8.1.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.
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/.vscode/settings.json +2 -1
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/PKG-INFO +1 -1
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/neumann/square/main.py +65 -44
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/pixi.lock +206 -315
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/pyproject.toml +1 -1
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/src/phifem/mesh_scripts.py +53 -32
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/.gitattributes +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/.gitignore +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/AUTHORS +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/COPYING +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/COPYING.lesser +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/README.md +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/ROADMAP.md +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/interface-elasticity/data.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/interface-elasticity/main.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/interface-elasticity/param1.yaml +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/interface-elasticity/plot.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/multimaterial-cantilever/output/petsc_log.txt +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/neumann/square/data.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/robin/square/data.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/robin/square/main.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/strong-dirichlet/flower/data.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/strong-dirichlet/flower/main.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/weak-dirichlet/flower/data.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/demo/weak-dirichlet/flower/main.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/.quarto/project-cache/7bf60dc2df74c845d8c8b514b35e52cd +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/.quarto/project-cache/deno-kv-file +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/.quarto/xref/INDEX +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/.quarto/xref/b14fa628 +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/ctags.png +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/ftags.png +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/style.css +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/doc/usage.html +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/logo/Logo_PhiFEM.pdf +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/phifem-env.yml +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/pixi.toml +1 -1
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/src/phifem/__init__.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/temp.md +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/boundary_crossing_circle_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_circle_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_circle_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_circle_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_circle_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_square_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_square_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_square_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_in_square_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/circle_near_boundary_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/ellipse_in_square_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/nasty_levelset_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/nasty_levelset_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/nasty_levelset_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/nasty_levelset_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/square_in_square_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/square_in_square_True_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/square_in_square_True_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_cells_data/square_in_square_True_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/boundary_crossing_circle_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_circle_True_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_in_square_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/circle_near_boundary_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/ellipse_in_square_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/nasty_levelset_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_1_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_1_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_1_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_1_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_2_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_2_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_2_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_2_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_3_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_3_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_3_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_3_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_4_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_4_discretize_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_4_discretize_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/data/tag_facets_data/square_in_square_4_single_layer_.csv +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/old_test_compute_meshtags.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/old_test_one_sided_integral.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/test_cells_facets_pairs.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/test_compute_meshtags.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/test_one_sided_integral.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/test_tag_cells.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.dev1}/tests/test_tag_facets.py +0 -0
- {phifem-0.8.0.dev1 → phifem-0.8.1.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.
|
|
3
|
+
Version: 0.8.1.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
|
|
@@ -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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
227
|
-
|
|
228
|
-
|
|
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
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
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))
|