Releases: FEniCS/basix
v0.9.0
This is a major release of Basix and users are advised to upgrade.
What's Changed
Features and API changes
- Expose subentity types to python for easy creation of elements on entities. by @jorgensd in #847
- dtype when creating elements by @mscroggs in #796
- dtype of enriched element by @mscroggs in #815
- Test arm64 Mac wheels by @jhale in #850
- Windows build by @jhale in #819
- Build Windows binary wheels and update wheel builder by @jhale in #849
- Remove ufcx_element_type by @mscroggs in #818
- Allow user to create symmetric quadrature element by @mscroggs in #821
- Use nanobind 2.0 typing stubgen by @garth-wells in #829
- Switch back to C++20 and use modern set_compile_features to set minimum C++ standard by @spraetor in #844
- Make degree 1 and 2 Lagrange on a pyramid not require a variant by @mscroggs in #834
- Quadrature rule on pyramids by @mscroggs in #835
- Add basix_hash method to get C++ hash of Basix elements by @mscroggs in #820
- Add permute_subentity_closure function by @mscroggs in #806
- DOF transformations: replace pull back of inverse with push forward by @mscroggs in #836
Other changes
- Remove version updater. by @jhale in #810
- Kebab case build-wheels.yml by @jhale in #813
- Remove commented code in CMake file by @garth-wells in #814
- Bump version. by @jhale in #816
- Remove caching of ufl elements by @mscroggs in #817
- Break system packages in DOLFINx integration test by @jhale in #824
- Windows: make runtime dependency install optional by @minrk in #822
- Mark all
nanobind
enums asnb::is_arithmetic()
for compatibility withnanobind
2.x by @francesco-ballarin in #825 - Make runtime dependency install OFF by default by @jhale in #826
- DOLFINX CI updates by @garth-wells in #827
- Tweaks related to Windows DOLFINx build by @jhale in #830
- Enum and type updates by @garth-wells in #832
- Disable windows tests by @jhale in #833
- Update to std::ranges usage by @schnellerhase in #837
- Update mdspan by @schnellerhase in #840
- C++23 support by @schnellerhase in #838 (reverted)
- Update build-wheels.yml by @jhale in #843
- Re-enable Windows CI by @jhale in #845
- Correct cellname for point/vertex type for UFL by @jorgensd in #851
- Fix return type of sobolev-space in quadrature element by @jorgensd in #853
New Contributors
- @minrk made their first contribution in #822
- @schnellerhase made their first contribution in #837
- @spraetor made their first contribution in #844
Full Changelog: v0.8.0...v0.9.0
v0.8.0
What's Changed
- Switch from pybind11 to nanobind by @chrisrichardson in #676
- Update version to 0.8.0 by @jhale in #710
- use blocked element when creating a quadrature element with value shape by @mscroggs in #711
- Add Spack test to CI by @garth-wells in #712
- Update Spack test by @garth-wells in #713
- Update UFL element by @mscroggs in #703
- reset branches by @mscroggs in #714
- Remove
setup.py
by @garth-wells in #715 - Use scikit-build-core to handle minimums. by @jhale in #716
- Add CI workflow trigger by @garth-wells in #723
- Improve nanobind bindings and memory management by @garth-wells in #724
- Use absolute imports in place of relative imports by @garth-wells in #727
- Allow Spack ci to test specific Basix version by @garth-wells in #728
- Update install docs by @garth-wells in #720
- Fix hash and eq for basix.ufl elements by @conpierce8 in #718
- set gdim equal to tdim by default by @mscroggs in #729
- rename highest_degree and highest_complete_degree by @mscroggs in #731
- reset branches by @mscroggs in #732
- Throw error when trying to create BDM degree 0 by @mscroggs in #730
- implement embedded degrees for quadrature element by @mscroggs in #733
- add basix_map_type method by @mscroggs in #734
- remove unused functions by @mscroggs in #736
- Add name property to all enums by @chrisrichardson in #735
- Update wheel build action. by @jhale in #709
- Enable merge queue by @garth-wells in #737
- Update OMPI environment variables in DOLFINx integration for openmpi v5 by @francesco-ballarin in #739
- Rename dof transformation functions by @mscroggs in #738
- Reset branch name by @mscroggs in #740
- Add a
pip install --no-build-isolation
test by @garth-wells in #741 - Fix scikit-build-core version in
pyproject.toml
by @garth-wells in #745 - Use OpenBLAS in Redhat clone CI by @garth-wells in #747
- Remove Sphinx Makefile and unpin Sphinx by @jhale in #744
- More Python versions in wheels by @jhale in #742
- Update version updater script v2 by @jhale in #750
- Do not store
.doctrees
binary files on website by @francesco-ballarin in #751 - Fix Spack CI by @garth-wells in #753
- Update make_html for new website template by @mscroggs in #754
- Use lesstall header in web docs by @mscroggs in #755
- Use jekyll to make website header instead of hacky python code by @mscroggs in #756
- Add basix_element property to UFL element by @mscroggs in #757
- Reset branch names by @mscroggs in #758
- Add
overflow: scroll
to stop sidebar colliding with content in web docs by @mscroggs in #761 - Add support for float32 and float64 elements from Python by @garth-wells in #759
- Property fix by @garth-wells in #762
- Add dtype property to FiniteElement by @garth-wells in #763
- Fix equality test for different float type elements by @garth-wells in #764
- Improve type hints by @garth-wells in #765
- Fix element hash and improve types by @garth-wells in #766
- Check that dof ordering is the same in element equality check by @mscroggs in #769
- Wrap functionality in Python with nicer typing and docs by @mscroggs in #767
- Remove vtk element by @mscroggs in #770
- Rename keyword argument from lvariant to lagrange_variant by @mscroggs in #771
- Drop
fenics-dev@googlegroups.com
in favor offenics-steering-council@googlegroups.com
by @francesco-ballarin in #773 - Sonar CI update by @garth-wells in #775
- Switch to ruff linting by @jhale in #774
- Bump actions/{download-artifact,upload-artifact} to v4 by @francesco-ballarin in #777
- Remove packages from pyproject by @jhale in #743
- Add test_elements.py by @mscroggs in #778
- add wrap_element function to Basix.UFL by @mscroggs in #776
- Add Python 3.12 to CI by @garth-wells in #779
- Add create_tp_element function by @mscroggs in #780
- Reset branch names by @mscroggs in #781
- Use black formatting (via ruff) by @garth-wells in #783
- Improve debug build install instructions. by @jhale in #784
- Change to the Modified Gram Schmidt algorithm in orthogonalise (#679) by @ampdes in #785
- Fix Python version in
python/pyproject.toml
file by @garth-wells in #786 - Remove gdim input to UFL elements by @mscroggs in #772
- Reset CI branches by @mscroggs in #788
- Improve docstrings and add copyright statements by @garth-wells in #787
- Fix sonar issues by @garth-wells in #789
- Correct polyset order in demo by @mscroggs in #790
- Ruff fixes by @garth-wells in #791
- Update
mdspan.hpp
by @garth-wells in #792 - Reset DOLFINx CI branch by @garth-wells in #793
- Add a hash functions to finite elements by @mscroggs in #782
- Update cibuildwheel action by @jhale in #798
- Update
nb::ndarray
constructor in preparation of next nanobind release by @francesco-ballarin in #799 - Revise transformation names and add docs by @garth-wells in #802
- reset dolfinx branch by @mscroggs in #805
- replace
lru_cache
withcache
by @mscroggs in #803 - DOF transformation name updates by @garth-wells in #807
- Small Doxygen config updates by @garth-wells in #808
- Revert CI to DOLFINx main by @garth-wells in #809
New Contributors
- @conpierce8 made their first contribution in #718
- @ampdes made their first contribution in #785
Full Changelog: v0.7.0...v0.8.0
v0.7.0
This version of Basix was released alongside UFL 2023.2.0
and FFCx/DOLFINx v0.7.0
tags.
User facing changes
Iso elements
- Add iso macroelement on an interval by @mscroggs in #680
- Implement iso element on quadrilateral by @mscroggs in #683
- Add iso element on hexahedron by @mscroggs in #684
- Add iso element on a tetrahedron by @mscroggs in #688
DOF ordering
- Allow permuted dof layout for Lagrange elements by @chrisrichardson in #654
- Use dof ordering when generating tensor factors by @mscroggs in #695
UFL wrapper
- Fix degree method in UFL wrapper layer for mixed elements by @garth-wells in #636
- Fix symmetric tensors by @mscroggs in #647
- Rename ufl_wrapper -> ufl, and simplify functions in UFL wrapper by @mscroggs in #655
- Fix blocked element tables by @michalhabera in #662
- Move QuadratureElement and RealElement from ffcx to Basix by @mscroggs in #682
- Correct tabulate for blocked elements by @mscroggs in #698
- Add better warning when using * by @mscroggs in #701
- Remove rank input to element and blocked_element by @mscroggs in #708
Installation
- Test scikit-build-core and pyproject.toml for top-level install by @chrisrichardson in #673
- Enable Python 3.11 by @mscroggs in #690
Allowing multiple scalar types
- Template polyset over float type by @garth-wells in #660
- Support
float
anddouble
in low-level functions by @garth-wells in #663 - Template
basix::FiniteElement
over scalar type by @garth-wells in #664
Performance improvements
Other changes
- Update
mdspan.hpp
by @garth-wells in #632 - Run more tests on main by @jhale in #630
- Dev version bumps by @garth-wells in #635
- Fix typo in basix.sobolev_spaces module name by @francesco-ballarin in #638
- Do not run apt-get upgrade in CI by @garth-wells in #639
- Simplify constructors by @chrisrichardson in #641
- Fix Sobolev space for discontinuous elements by @garth-wells in #642
- Remove deprecated funcs by @chrisrichardson in #643
- Update python create element by @chrisrichardson in #644
- Simplify transformations by @chrisrichardson in #646
- Tweak UFL import by @mscroggs in #650
- Fix bug in N2E on tets: cells are 3D not 2D by @mscroggs in #653
- Cast scalar types for compatibility by @garth-wells in #656
- Reset branches in CI by @mscroggs in #657
- Use np.tile for blocked tabulation by @michalhabera in #659
- update docs and doc generating script by @mscroggs in #665
- Update mdspan by @garth-wells in #666
- Relax some floating point comparisons by @garth-wells in #670
- Reset FFCx and DOLFINx branches by @mscroggs in #681
- Seed random test by @mscroggs in #652
- Fix #685 by @mscroggs in #686
- Implement degree 0 to 2 macro polynomials on a triangle by @mscroggs in #687
- Fix compilation with gcc-13 (#678) by @rmsc in #691
- Consistency updates to Python docs by @garth-wells in #694
- mdspan update by @garth-wells in #699
- Reset DOLFINx branch to main by @garth-wells in #700
- Remove IrreducibleInt by @mscroggs in #702
- use gdim in default shape for an element with a rank by @mscroggs in #707
New Contributors
- @francesco-ballarin made their first contribution in #638
- @rmsc made their first contribution in #691
Full Changelog: v0.6.0...v0.7.0
v0.6.0
What's Changed
- Update version numbers to v0.5.2.dev0 by @jhale in #593
- Add Sobolev spaces by @mscroggs in #589
- reset branches to main by @mscroggs in #595
- Fix Sobolev space conversion by @mscroggs in #596
- Make "CG" work and use identity mapping for mixed elements whose subelements all use identity by @mscroggs in #597
- Add SonarCloud analysis by @jhale in #601
- use gdim as default for VectorElement (not tdim) by @mscroggs in #605
- Add deprecation warning when using "CG" by @mscroggs in #599
- Tidy up CI and packaging by @jhale in #609
- Don't run SonarCloud on external PRs. by @jhale in #613
- Try creating ARM MacOS wheels by @jhale in #390
- Bump version number due to Sobolev space API change. by @jhale in #614
- Remove unnecessary packages from pyproject by @jhale in #615
- Optimize num_sub_entities function by @tiagovla in #616
- Fix mypy (typing.Optional) by @mscroggs in #618
- Pass manifold cell information to base element of vector elements by @jorgensd in #617
- reenable mypy checks for Python 3.10 by @mscroggs in #619
- Fix CI compilers by @garth-wells in #622
- Run test in serial by @garth-wells in #623
- Include tensor element symmetry in its hash by @TTitscher in #620
- Add 'basix' string to element hash by @garth-wells in #624
- Test with Intel oneAPI and Intel Python. by @garth-wells in #625
- Fix OneAPI tests by @jhale in #629
- Bump cmake by @jorgensd in #627
- Fix oneAPI tests by @garth-wells in #631
New Contributors
- @tiagovla made their first contribution in #616
- @TTitscher made their first contribution in #620
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Remove Python dependency from the CMake build for the C++ library
v0.5.0.post0
Users should prefer the tag v0.5.1
.
This post-release fixed some errors in the Basix wheel build process.
The core Basix library is unaffected and users can use v0.5.0
or v0.5.0.post0
tags interchangeably.
Full Changelog: v0.5.0...v0.5.0.post0
v0.5.0
Users should prefer the tag v0.5.1
.
What's Changed
- Fix PyPi wheel upload by @jhale in #482
- Update basix to 0.4.2.dev0 by @jhale in #487
- remove numpy version requirement by @mscroggs in #490
- Do not include
cblas.h
by @garth-wells in #489 - Turn on mypy checks by @mscroggs in #491
- Add CPATH to get wheel build working on RedHat by @jhale in #488
- Remove xarray completely by @IgorBaratta in #494
- Put true in wrong place in wheel build, fix. by @jhale in #497
- Add workflow trigger to test dependents against specific versions by @garth-wells in #496
- Allow UFL and FFCx version to be set when triggering FFCx integration test by @garth-wells in #499
- FFCx CI fix(handle default case) by @garth-wells in #500
- Simplify Intel/MKL CI by @garth-wells in #498
- Allow specification of version in DOLFINx integration test by @garth-wells in #501
- Bump version to 0.4.3 by @jhale in #502
- Test version tweaks by @jhale in #503
- Orthogonalise polynomial sets by @mscroggs in #495
- Install fixes for new scikit-build by @garth-wells in #510
- remove "the" from JOSS paper by @mscroggs in #505
- remove extra {}s in reference in JOSS paper by @mscroggs in #511
- Add CI to test cmake install by @mscroggs in #509
- Transpose polysets by @mscroggs in #512
- Use mdspan in polyset by @chrisrichardson in #515
- Add Hermite elements by @mscroggs in #516
- remove ; by @mscroggs in #521
- add CITATION.cff by @mscroggs in #522
- Build D to the be the correct shape rather than transposing by @mscroggs in #520
- Document shapes of xtensors by @mscroggs in #518
- fix typos in custom element demo by @mscroggs in #523
- set language to "en" by @mscroggs in #529
- Correct typing: numpy.ndarray -> numpy.typing.NDArray by @mscroggs in #527
- Remove logging by @mscroggs in #528
- Transpose polynomial::tabulate by @mscroggs in #524
- Add Bernstein variant of Lagrange for simplices by @mscroggs in #533
- run C++ demos on CI by @mscroggs in #531
- Automatically generate docs.h by @mscroggs in #530
- Update
mdspan.hpp
by @garth-wells in #534 - Attempt at automatic typing for basix by @jhale in #526
- Run demos on more CI workflows by @mscroggs in #537
- Remove xtensor code for Lagrange elements by @garth-wells in #539
- Remove xtensor from BDM by @garth-wells in #540
- Remove more xtensor by @garth-wells in #541
- Remove xtensor from
basix::lattice
by @garth-wells in #542 - make precompute return values clearer by @mscroggs in #544
- Add VectorElement, TensorElement, MixedElement, etc to UFL wrapper by @mscroggs in #535
- Reset ffcx branch by @mscroggs in #547
- Throw runtime error to avoid "may be used uninitialized" warnings by @mscroggs in #548
- Fix symmetric tensors by @mscroggs in #549
- Reset FFCx branch by @mscroggs in #550
- xtensor removal from polynomial code by @garth-wells in #546
- Reset DOLFINx branch by @garth-wells in #551
- Remove xtensor from moment code by @garth-wells in #552
- Remove xtensor from
math
namespace by @garth-wells in #553 - Remove xtensor from dof-transform code by @garth-wells in #554
- Final removal of xtensor by @garth-wells in #555
- Reset DOLFINx branch for CI by @garth-wells in #557
- Simplify code in
polyset
by @garth-wells in #558 - Fix overflow problem in matrix-matrix product heuristics by @garth-wells in #559
- Improve performance of dual matrix construction by @garth-wells in #561
- Some small optimisations when creating elements by @garth-wells in #562
- Require C++20 by @garth-wells in #563
- Revert DOLFINx CI branch back to main by @garth-wells in #564
- Skip orthogonalisation for Lagrange elements by @mscroggs in #565
- Make UFL interface consistent with UFL by @mscroggs in #566
- Only precompute matrices when they are not permutations by @mscroggs in #567
- Slightly faster
prepare_permutation
by @mscroggs in #569 - Fix Sphinx version by @mscroggs in #573
- Update demo by @mscroggs in #571
- The permutation from an LU decomposition can be used instead of checking the eigenvalues/condition numbers by @mscroggs in #572
- Change image for DOLFINx integration test by @jhale in #576
- Simplify prepare_matrix and apply_matrix by @mscroggs in #577
- remove brackets around asserts by @mscroggs in #579
- Add
tensor product representation
properties to UFL element wrappers by @IgorBaratta in #560 - Implement enriched elements by @mscroggs in #574
- Add long description by @chrisrichardson in #581
Full Changelog: v0.4.2...v0.5.0
v0.4.2
Fixes build issues related to including cblas.h. Otherwise identical to v0.4.1.
Full Changelog: v0.4.1...v0.4.2
v0.4.1
What's Changed
- Update version numbers by @chrisrichardson in #450
- Add double contravariant map test by @mscroggs in #451
- Speed up sympy tests by @mscroggs in #448
- correct serendipity value shape by @mscroggs in #458
- Avoid manipulating
version.h
in source directory by @garth-wells in #459 - Use blas for large matrix-matrix multiplications by @IgorBaratta in #453
- Remove TODO that I've already done by @mscroggs in #460
- Add Red Hat CI by @mscroggs in #463
- Fix redhat by @mscroggs in #465
- Add MacOS CI by @mscroggs in #466
- Use
Accelerate/Accelerate.h
include directory for APPLE by @IgorBaratta in #467 - Remove assumption that degree == highest_degree by @mscroggs in #457
- FFCx and DOLFINx branches by @mscroggs in #470
- remove slow (48s) test by @mscroggs in #472
- add version updating utility by @mscroggs in #468
- Overload FiniteElement by @mscroggs in #473
- only push from one workflow by @mscroggs in #475
- Add == for custom element by @mscroggs in #474
- Fix installation error on mac by @mscroggs in #478
- Remove xarray in favor of xt::xtensor<double, 2> by @jorgensd in #476
- Add maybe unused to variables in assert by @jorgensd in #479
- Include summary from README in website docs by @mscroggs in #484
- Update joss paper by @mscroggs in #481
- Add functions to UFL wrapper by @mscroggs in #464
- Tweak JOSS paper and docs by @mscroggs in #486
Full Changelog: v0.4.0...v0.4.1
Version 0.4.0
What's Changed
- Support single install from top-level directory by @garth-wells in #263
- Remove Intel 'Classic' compiler from CI by @garth-wells in #264
- Allow discontinuous elements by @mscroggs in #260
- Reset FFCx and DOLFINx branches by @mscroggs in #265
- Add Issac's GLL points on triangle and tetrahedron by @mscroggs in #267
- Disable GLL points on pyramid by @mscroggs in #271
- Round data_size up, not down by @mscroggs in #272
- Make numba requirement optional by @mscroggs in #273
- Generalise lattice creation by @mscroggs in #278
- Remove type_to_str and str_to_type functions from cpp by @mscroggs in #270
- Add Chebyshev point lattice by @mscroggs in #279
- Reset branches by @mscroggs in #280
- Update API to use vector by @chrisrichardson in #281
- Remove include set by @mscroggs in #282
- Add centroid simplex method by @mscroggs in #283
- Add GL points for Lagrange by @mscroggs in #284
- Use
lib/
when installing the C++ library using Python by @garth-wells in #287 - Use CMake relative path when installing with top level pip by @garth-wells in #288
- Do not install xtensor-blas via CMake by @garth-wells in #289
- Remove xtensor-blas dependency by @garth-wells in #291
- Add interpolation between elements by @mscroggs in #292
- Improve documentation of implementation by @mscroggs in #294
- Update docs by @mscroggs in #295
- Builds and tests manylinux wheels for various x86-64 Pythons by @jhale in #286
- Tweak wheel action. by @jhale in #297
- Jhale/wheel action tweaks by @jhale in #298
- Improve wheel creation by @jhale in #299
- Missing ref in build wheel action by @jhale in #300
- More RPATH adjustments by @jhale in #301
- add BDMCE and BDMCF to map of finite element names by @mscroggs in #302
- Improve documentation by @mscroggs in #303
- Add helper function that returns shape of the array used in FiniteElement::tabulate by @garth-wells in #308
- Remove duplicate tabulate by @mscroggs in #309
- reset FFCx branch by @mscroggs in #312
- Write some demos by @mscroggs in #307
- Allow creation of low order Lagrange without a variant by @mscroggs in #315
- Use an enum instead of a string for quadrature rules by @mscroggs in #317
- revert FFCx and DOLFINx branches to main by @mscroggs in #318
- Fix small typo by @IgorBaratta in #319
- Allow DG0 on a point by @mscroggs in #316
- Tighten up scoping by @garth-wells in #320
- Add JOSS paper by @mscroggs in #321
- Add VTK variant of Lagrange by @mscroggs in #293
- Add simple cpp demo by @IgorBaratta in #322
- Fix for 'maybe unused' variable in release mode by @jorgensd in #323
- Update JOSS paper by @mscroggs in #324
- Apply "iwyu" suggestions by @IgorBaratta in #326
- Use MODULE not SHARED in CMakeLists.txt by @chrisrichardson in #327
- Implement blocked interpolation by @mscroggs in #328
- Remove redundant function
FiniteElement::num_points
by @garth-wells in #329 - Added documentation of interpolation_matrix by @mscroggs in #330
- Correct shape in interpolation matrix docs by @mscroggs in #331
- Remove
compute_expansion_coefficients
and store dual matrix by @mscroggs in #333 - Remove interpolate() by @mscroggs in #334
- Revert to DOLFINx main by @mscroggs in #335
- Restructure implementation of Nedelec spaces by @mscroggs in #336
- Use fixed-width xtensor arrays now that we don't support the legacy I… by @garth-wells in #337
- Add AAE, AAF as alternative names by @mscroggs in #339
- Reduce quadrature orders used in element creation by @mscroggs in #338
- Add Xiao-Gimbutas quadrature on tetrahedra by @mscroggs in #340
- Return map function for an element by @garth-wells in #342
- Remove public map_type by @jorgensd in #344
- Improved CMake/pybind11/python3 interaction by @jhale in #343
- Add information about highest degree of polynomials in a finite element by @mscroggs in #346
- Change quadrature numbering to ijk by @IgorBaratta in #350
- Add tensor product representation of Lagrange on quads and hexes by @mscroggs in #349
- Add z direction for tensor product test by @adeebkor in #353
- Reordering of GLL quad points and weights by @adeebkor in #355
- Create FUNDING.yml by @jhale in #358
- Remove xtensor, make download via git explicit option by @jhale in #357
- Improve polyset by @mscroggs in #360
- Add contributing and support info to README by @mscroggs in #362
- Minor suggestions and typo fixes by @IgorBaratta in #364
- a -> an by @mscroggs in #365
- Allow integral moments to be taken against polynomials by @mscroggs in #361
- Set demo CMake language to CXX by @garth-wells in #367
- Store the Lagrange variant when creating a Lagrange element by @mscroggs in #368
- contributing: Fix typo by @wence- in #371
- Python packaging fixes by @jhale in #372
- Minor housekeeping by @garth-wells in #373
- Check if two elements are equal by @mscroggs in #374
- Add more Python versions to CI, including Python 3.10. by @garth-wells in #378
- Fix value shape for Lagrange elements by @garth-wells in #377
- Correct JOSS paper: functionals must be linear by @mscroggs in #380
- Add variants of serendipity in 1D by @mscroggs in #382
- Reset FFCx branch by @mscroggs in #383
- Add variants of DPC spaces by @mscroggs in #384
- Reset branches by @mscroggs in #385
- Variants of 2D and 3D serendipity by @mscroggs in #386
- reset branches by @mscroggs in #387
- Update syntax for wheel build by @jhale in #388
- Remove -DDEBUG definition that doesn't do anything. by @garth-wells in #389
- Store variant for discontinuous Lagrange by @mscroggs in #391
- Convert variant names to lowercase to allow eg "GLL" to be used by @mscroggs in #392
- Test if interpolation matrix is an identity matrix by @mscroggs in #396
- Make serendipity family polysets more stable by @mscroggs in #397
- Remove memory assignment in polyset by @mscroggs in #393
- Add & and const by @mscroggs in #398
- Avoid C++ errors by @mscroggs in #399
- Throw RuntimeError if user tries to make element with negative degree by @mscroggs in #400
- Implement discontinuous Regge by @mscroggs in #401
- Allow user to create a custom element by @mscroggs in #402
- Compute entity transformations algorithmically for all elements rather than implementing them for each element by @mscroggs in https://github.com/FEniCS/basi...