Brand new version using pyvista as backend#27
Merged
Conversation
…ean, variance and spectrum calculation)
…ussion from original version
For this update, three functions have been added to select candidate points for sensor placement: 1. get_candidate_regions: Retrieves candidate points within specified region(s). Only these regions will be considered for sensor placement. 2. get_candidate_probes: Retrieves explicitly specified points. Only these points will be used for sensor placement. 3. get_candidate_channel_all_points: Retrieves a set of points (along vertical channel(s)) based on the input (x,y) positions. Only these points will be used for sensor placement.
There was a problem hiding this comment.
Pull request overview
This PR migrates pyforce to a solver-agnostic v1.0.0+ layout centered on pyvista + numpy, updates packaging/metadata, and refreshes documentation and citation guidance to match the new backend and release.
Changes:
- Replaced the legacy
dolfinx-centric code/tests with a newrose-pyforce/Python package (PEP 621pyproject.toml) and updatedpyforceinternals (tools, offline/online bases, POD online implementation). - Added/updated documentation for the v1.0+ architecture (installation, migration guide, new tutorial index structure) and added standardized citation metadata (
CITATION.cff). - Introduced a new test suite under
rose-pyforce/tests/focusing on the new backend utilities (PyVista/OpenFOAM import, scalers, integral calculator, timer/progress utilities).
Reviewed changes
Copilot reviewed 71 out of 143 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/toy_data.py | Removed legacy dolfinx-based toy dataset generator. |
| tests/test_timer.py | Removed legacy timer test (dolfinx-era layout). |
| tests/test_sgreedy.py | Removed legacy SGREEDY test tied to dolfinx objects. |
| tests/test_plotting.py | Removed legacy dolfinx plotting-grid test. |
| tests/test_online_trgeim.py | Removed legacy TR-GEIM online tests tied to dolfinx. |
| tests/test_online_PODproject.py | Removed legacy POD projection online tests. |
| tests/test_online_PODinterp.py | Removed legacy POD interpolation online tests. |
| tests/test_online_pbdw.py | Removed legacy online PBDW tests tied to dolfinx. |
| tests/test_online_geim.py | Removed legacy online GEIM tests tied to dolfinx. |
| tests/test_offline_weakgreedy.py | Removed legacy WeakGreedy offline tests (dolfinx). |
| tests/test_offline_pod.py | Removed legacy POD/DiscretePOD offline tests (dolfinx). |
| tests/test_offline_pbdw.py | Removed legacy offline PBDW tests (dolfinx). |
| tests/test_offline_geim.py | Removed legacy offline GEIM tests (dolfinx). |
| tests/test_norm.py | Removed legacy dolfinx norm tests. |
| tests/test_IO.py | Removed legacy I/O tests relying on dolfinx mesh/functions. |
| tests/test_gaussian_sensors.py | Removed legacy GaussianSensors tests tied to dolfinx. |
| tests/test_fun_lists.py | Removed legacy FunctionsList tests tied to dolfinx. |
| rose-pyforce/tests/init.py | Added test package init for new test suite. |
| rose-pyforce/tests/test_tools_write_read.py | Added tests for OpenFOAM import via PyVista reader + FunctionsList behavior. |
| rose-pyforce/tests/test_tools_scalers.py | Added tests for new StandardScaler/MinMaxScaler wrappers on FunctionsList. |
| rose-pyforce/tests/test_tools_backends.py | Added tests for IntegralCalculator, LoopProgress, and Timer utilities. |
| rose-pyforce/tests/test_offline_eim.py | Added tests for offline EIM and DEIM behaviors on PyVista grids. |
| rose-pyforce/requirements.txt | Added v1.0 dependency list for the new package layout. |
| rose-pyforce/README.md | Added package README describing the pyvista/numpy backend rewrite. |
| rose-pyforce/pyproject.toml | Added PEP 621 project metadata and dependencies for rose-pyforce. |
| rose-pyforce/pyforce/tools/scalers.py | Added scaling utilities (StandardScaler/MinMaxScaler) for FunctionsList data. |
| rose-pyforce/pyforce/tools/plotting.py | Added minimal PyVista plotting helper for numpy snapshots. |
| rose-pyforce/pyforce/tools/backends.py | Added IntegralCalculator + LoopProgress + Timer utilities for PyVista grids. |
| rose-pyforce/pyforce/tools/init.py | Added tools package init docstring. |
| rose-pyforce/pyforce/online/pod.py | Added online POD implementation using IntegralCalculator and numpy snapshots. |
| rose-pyforce/pyforce/online/online_base.py | Added online base abstractions and sensor-action helper. |
| rose-pyforce/pyforce/online/init.py | Added online package init docstring. |
| rose-pyforce/pyforce/offline/offline_base.py | Added offline base abstractions for new architecture. |
| rose-pyforce/pyforce/offline/init.py | Added offline package init docstring. |
| rose-pyforce/pyforce/init.py | Bumped version to 1.0.0. |
| rose-pyforce/environment.yml | Updated conda environment to align with pyvista backend and lighter deps. |
| pyforce/setup.py | Removed legacy setuptools-based packaging. |
| pyforce/requirements.txt | Removed legacy requirements pinning dolfinx/mpi/petsc stack. |
| pyforce/pyforce/tools/timer.py | Removed legacy timer module (replaced by tools/backends Timer). |
| pyforce/pyforce/tools/plotting.py | Removed legacy dolfinx-based plotting utilities. |
| pyforce/pyforce/tools/functions_list.py | Removed legacy dolfinx-aware FunctionsList implementation. |
| pyforce/pyforce/online/pod_projection.py | Removed legacy dolfinx-based POD projection online class. |
| pyforce/pyforce/online/pod_interpolation.py | Removed legacy dolfinx-based POD interpolation online class. |
| pyforce/pyforce/online/indirect_recon.py | Removed legacy indirect reconstruction implementation (dolfinx-era). |
| pyforce/pyforce/offline/weak_greedy.py | Removed legacy WeakGreedy offline implementation (dolfinx-era). |
| pyforce/pyforce/offline/pbdw.py | Removed legacy offline PBDW implementation (dolfinx-era). |
| pyforce/pyforce/offline/eim.py | Removed legacy offline EIM implementation (dolfinx-era). |
| docs/Tutorials/04_flow_cyl.rst | Removed old tutorial page (legacy structure). |
| docs/Tutorials/03_BuoyantCavity_OF6/contour_plotting.py | Removed old dolfinx-based tutorial plotting helper. |
| docs/Tutorials/03_BuoyantCavity_OF6/cavity.geo | Removed old gmsh geometry file from tutorial bundle. |
| docs/Tutorials/03_buoyant_cavity.rst | Removed old tutorial page (legacy structure). |
| docs/Tutorials/02_MGDiffusion/contour_plotting.py | Removed old dolfinx-based tutorial plotting helper. |
| docs/Tutorials/02_MGDiffusion/ANL11A2_octave.geo | Removed old gmsh geometry file from tutorial bundle. |
| docs/Tutorials/02_MGDiffusion/02c_offline_SGREEDY.ipynb | Removed old tutorial notebook (legacy structure). |
| docs/Tutorials/02_ANL11-A2_stationary.rst | Removed old tutorial page (legacy structure). |
| docs/Tutorials/01_LaminarNS/cyl_dfg2D.geo | Removed old gmsh geometry file from tutorial bundle. |
| docs/Tutorials/01_LaminarNS/contour_plotting.py | Removed old dolfinx-based tutorial plotting helper. |
| docs/Tutorials/01_DFG2_benchmark.rst | Removed old tutorial page (legacy structure). |
| docs/tutorials.rst | Replaced legacy tutorial listing with new “Basic Tutorials” notebook index. |
| docs/theory.md | Added acronym table and updated package-structure wording for new backend. |
| docs/migration.md | Added migration guide from v0.1.3 (dolfinx) to v1.0+ (pyvista/numpy). |
| docs/intro.md | Updated intro, version note, citation guidance, and BibTeX entries. |
| docs/installation.md | Updated install instructions to use rose-pyforce/ and new deps list. |
| docs/index.rst | Restructured Sphinx toctrees into Getting Started / User Guide / Reference. |
| docs/contributing.md | Added community guidelines page. |
| docs/conf.py | Updated Sphinx config exclusions and mock imports for new backend. |
| docs/changelog.md | Added changelog for v1.0.0 and v0.1.3 reference. |
| docs/bibliography.rst | Adjusted bibliography style configuration. |
| docs/api/pyforce.tools.rst | Updated API docs to include pyforce.tools.scalers (replacing timer). |
| docs/api/pyforce.online.rst | Updated online API module listing to match refactored module names. |
| docs/api/pyforce.offline.rst | Updated offline API module listing to match refactored module names. |
| docs/adv_tutorials.rst | Added an “Advanced Tutorials” index page. |
| CITATION.cff | Added standardized citation metadata with preferred JOSS citation + references. |
| .gitignore | Updated ignored dataset/result paths for new tutorial/test layouts. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request significantly updates the project documentation and metadata to reflect the major new release of pyforce (v1.0.0+), which introduces a new backend, improved installation instructions, and updated citation information. The changes modernize the
README.mdwith clearer descriptions, enhanced citation guidelines, improved badges, and a detailed demo section, while also adding a newCITATION.cfffile for standardized citation support.Documentation and Citation Updates:
CITATION.cfffile providing structured citation metadata, including the JOSS paper as the primary citation and references to key application papers.README.mdto reference the JOSS paper as the main citation, clarify the relationship between old and new versions, and provide BibTeX entries.Project Description and Features:
README.mdto highlight the new architecture based onpyvistaandnumpy, removing the strict dependency ondolfinxand enabling compatibility with any solver exporting VTK/H5 files.Installation and Tutorials:
pipas the primary method, clarify the use of conda environments, and provide step-by-step commands for both standard and development installations.Badges and Visuals:
README.mdto include a JOSS badge, improved reference paper badges, and updated links for documentation, datasets, and CI status.Authors and Community: