Releases: samreynoldsmath/PuncturedFEM
v0.5.0
v0.5.0
Notable changes:
- Overhaul plotting of local and global functions to interpolate values near the boundary/skeleton
- Overhaul of examples and documentation
- Replace
LocalFunction
class withLocalPoissonFunction
- Many optimizations, tweaks, and bug fixes
See the changelog.
Pull Requests
- Doc by @samreynoldsmath in #16
- add lxml_html_clean to documentation requirements by @samreynoldsmath in #17
- Fix links by @samreynoldsmath in #18
- Interpolation (incomplete) by @samreynoldsmath in #19
- Local function refactor by @samreynoldsmath in #20
- Nystrom refactor by @samreynoldsmath in #21
- Biharmonic speedup by @samreynoldsmath in #22
- Global function refactor by @samreynoldsmath in #23
- Interpolation plots by @samreynoldsmath in #24
- Example overhaul by @samreynoldsmath in #25
- Readthedocs fix by @samreynoldsmath in #26
- Release v0.5.0 by @samreynoldsmath in #27
- update pyproject.toml with v0.5.0 release version number by @samreynoldsmath in #28
Full Changelog: v0.4.5...v0.5.0
v0.4.5
Maintenance to fix missing dependencies; rollback dependency on Python 3.11 to 3.9; bug fixes.
What's Changed
- Dependencies by @samreynoldsmath in #15
Full Changelog: v0.4.4.1...v0.4.5
v0.4.4.1
v0.4
PuncturedFEM v0.4
This release adds a new class for handling function traces, some new edge manipulation features, plotting options, and a couple new examples, as well as optimizations and bug fixes.
Documentation
- update README, extend description, add references
- add a contributing guide
Features
- add ability to define an edge parameterization using a cubic spline to interpolate points (thanks, Zack!)
- add edge splitting
- add transformation diary to
Edge
class - add global stiffness and mass matrices to
solver
class - add option to turn off axes in plots
- add colormap option to contour plot methods
- make minimum distance to boundary for interior points of a
MeshCell
adjustable withset_interior_point_tolerance()
method - make computation of interior gradients optional
- add methods to
MeshCell
to get unit tangent and unit normal vectors, and the derivative norm - add:
DirichletTrace
class for handling the traces ofLocalFunction
s- construct an arbitrary trace, or a polynomial trace in the style of
LocalFunctionSpace
- will someday replace the default handling of traces in
LocalFunction
class
- construct an arbitrary trace, or a polynomial trace in the style of
- modify:
Polynomial
objects are now callable - add: splitting an edge into multiple edges without recursive subdivision
- add: optional argument to
TracePlot
initializer to specify the maximum number of ticks on the horizontal axis
Examples
- add space-filling curve example (thanks, Zack!)
- add
ex1e
to demonstrate heavy sampling of edges via edge splitting - add cubic spline interpolation example to
ex0
- modify:
ex1a
to useDirichletTrace
- modify:
ex1e
to useDirichletTrace
- rename:
ex0
toex0a
- add:
ex0b
to demonstrate how to construct aLocalFunction
with aDirichletTrace
Maintenance
- make colorbar optional for
GlobalFunctionPlot
draw method - make coefficients optional in
GlobalFunctionPlot
init method - add warning for
Quad
class whenn > 128
- use kwargs for plotting options
- add
PiecewisePolynomial
class to init file - create
QuadDict
object to standardize quadrature collections - format
edgelib/spline
- vectorize interior value computation
- add: debug option to
NystromSolver
to show condition number - preconditioning for
NystromSolver
- use
numba
to speed upNystromSolver
matrix assembly with just-in-time compilation - pass
DirichletTrace
object to theTracePlot
constructor
Tests
- add ghost cell to mesh cell testing library
- add test for interior points
Bug Fixes
- close figure in
draw
methods for plotting classes - fix
show_plot=False
option not working indraw
methods for plotting classes - make directory to save plots if it doesn't exist
- fix
LocalFunctionPlot
saving blank files - fix Martensen quadrature for large values of
n
- raise exception when Nystrom solver encounters non-numeric values
- fix: too many tick marks on
TracePlot
What's Changed
- Space filling by @zackkenyon in #2
- dev-v0.4.0 by @samreynoldsmath in #3
- dev-v0.4.1 by @samreynoldsmath in #4
- Space filling by @zackkenyon in #5
- dev-v0.4.2 by @samreynoldsmath in #6
- Dev v0.4.3 by @samreynoldsmath in #7
New Contributors
- @zackkenyon made their first contribution in #2
Full Changelog: v0.3.8...v0.4.3
v0.3.8
PuncturedFEM v0.3.8
This release adds Example 1-D, which demonstrates the usage of the LocalFunctionSpace
object, which constructs a basis of the local Poisson space get_quad_dict()
function makes creating new quadrature dictionaries easier and safer. Tests no longer rely on unittest
and were rewritten to work with pytest
, and new tests were added. Other improvements and bug fixes to make the source code easier to maintain.
v0.3.7-alpha
PuncturedFEM v0.3.7-alpha
This is the first (pre-)release of the PuncturedFEM package, as part of an effort to have better and more consistent version control.
So far, we have a basic implementation of the method to solve an inhomogeneous Helmholtz equation with a zero Dirichlet boundary condition. A crude, but flexible, system is in place to create meshes with curvilinear and punctured cells. The method is high-order, in the sense that we can generate (and compute with) a basis of
We hope that subsequent versions will not only offer more features and flexibility, but will have significantly better performance as well.