Skip to content

Releases: samreynoldsmath/PuncturedFEM

v0.5.0

09 Jul 05:00
6042402
Compare
Choose a tag to compare

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 with LocalPoissonFunction
  • Many optimizations, tweaks, and bug fixes

See the changelog.

Pull Requests

Full Changelog: v0.4.5...v0.5.0

v0.4.5

24 Apr 18:50
3d3c33e
Compare
Choose a tag to compare

Maintenance to fix missing dependencies; rollback dependency on Python 3.11 to 3.9; bug fixes.

What's Changed

Full Changelog: v0.4.4.1...v0.4.5

v0.4.4.1

08 Apr 18:13
7696bd7
Compare
Choose a tag to compare

PuncturedFEM is now on PyPI!

The package can be installed with pip:

pip install puncturedfem

Documentation hosted by ReadTheDocs.org

Official package documentation can be found here. Still a work in progress!

v0.4

26 Feb 00:23
cb05305
Compare
Choose a tag to compare

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 with set_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 of LocalFunctions
    • construct an arbitrary trace, or a polynomial trace in the style of LocalFunctionSpace
    • will someday replace the default handling of traces in LocalFunction class
  • 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 use DirichletTrace
  • modify: ex1e to use DirichletTrace
  • rename: ex0 to ex0a
  • add: ex0b to demonstrate how to construct a LocalFunction with a DirichletTrace

Maintenance

  • make colorbar optional for GlobalFunctionPlot draw method
  • make coefficients optional in GlobalFunctionPlot init method
  • add warning for Quad class when n > 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 up NystromSolver matrix assembly with just-in-time compilation
  • pass DirichletTrace object to the TracePlot 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 in draw 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

New Contributors

Full Changelog: v0.3.8...v0.4.3

v0.3.8

27 Oct 23:19
Compare
Choose a tag to compare

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 $V_p(K)$. Plotting functionality is more consistently organized into classes for different plot types. The addition of the 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.

Changes
Commits

v0.3.7-alpha

03 Oct 00:09
Compare
Choose a tag to compare
v0.3.7-alpha Pre-release
Pre-release

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 $V_p(\mathcal{T})$ for modest $p > 1$.

We hope that subsequent versions will not only offer more features and flexibility, but will have significantly better performance as well.