News & Updates#
v2.0.dev0 (In Development)#
Comprehensive documentation overhaul: expanded module, class, and method docstrings across all subpackages.
Configuration system refinements: improved validation, clearer error messages.
New optimality criteria and utility functions for OED.
Enhanced support for robust and sensor-placement OED problems.
Improved test coverage and test infrastructure.
FEniCS → FEniCSx Migration (dolfinx 0.10)#
The following PyOED components have been migrated from the legacy
fenics-dolfin 2019 backend to FEniCSx (dolfinx 0.10):
pyoed.models.simulation_models.fenics_models.advection_diffusion—AdvectionDiffusion2Dand its factory function fully rewritten for dolfinx 0.10, including Gmsh-based mesh generation (generate_ad_mesh), XDMF I/O, and a PETSc KSP/LU linear solver.pyoed.models.observation_operators.fenics_observation_operators—DolfinPointWiserewritten using the dolfinx geometry pipeline (bb_tree/compute_colliding_cells/cmap.pull_back/ basix tabulation) and PETSc matrix/vector operations.pyoed.models.error_models.Laplacian—DolfinLaplacianErrorModelandDolfinBiLaplacianErrorModelrewritten for dolfinx 0.10 / PETSc. The legacy FFC quadrature trick is replaced with a dense scipy Cholesky factorisation of the mass matrix for covariance-sqrt operations. The mean is now stored as a plain numpy array (compatible with the assimilation layer’sGaussianPosterior).pyoed.models.simulation_models.fenics_models.subsurf—Subsurf2Dandcreate_Subsurf2D_modelrewritten for dolfinx 0.10 / PETSc. Mesh construction usesdolfinx.mesh.create_unit_square; function spaces usedolfinx.fem.functionspace; boundary conditions usefem.dirichletbc+fem.locate_dofs_topological/geometrical; assembly usesdolfinx.fem.petsc.assemble_matrix/vector; solvers use PETSc KSP with LU.pyoed.assimilation.goal_oriented.prediction_operators.fenics_prediction_operators—DolfinLinearPredictionOperatorupdated for dolfinx 0.10 / PETSc: vector creation usesPETSc.Mat.createVecLeft(), adjoint application usesmultTranspose, andgenerate_vectornow returns numpy by default.pyoed.models.error_models.Gaussian—DolfinGaussianErrorModelfully migrated from legacydolfinto numpy/scipy (no PETSc or dolfinx assembly required at runtime). The original implementation used a Real finite-element space purely as a linear-algebra wrapper; the migrated version stores all covariance operators asscipy.sparse/numpyarrays and eliminates thedolfinruntime dependency entirely. The public API is preserved:Vhnow accepts adolfinx.fem.FunctionSpaceor a plainint(DOF count); the mean is stored as a numpy array; all matvec operations operate on numpy arrays.
The environment.yml dependency file has been updated accordingly:
fenics-dolfin=2019.1.0 is replaced by fenics-dolfinx=0.10 (plus
petsc4py, mpi4py, and pip dependencies gmsh and meshio).
All production PyOED components have now been migrated to FEniCSx (dolfinx 0.10).