Changelog
Source:NEWS.md
fmesher (development version)
New features
- Add
fm_subset()method for constructing a subset of a mesh based on a set of triangle (forfm_mesh_2d) or tetrahedron (forfm_mesh_3d) indices. (version0.5.0.9003)
Improved features
- Add
bary=fm_bary()information tofm_subdivide()output, mapping the new mesh locations to the original mesh locations, e.g. for interpolating functions from the original mesh to the new mesh (version0.5.0.9002) - Speed up
fm_int()for polygons by bulk pre-computingfm_bary()information instead of separate calls infm_vertex_projection()(version0.5.0.9004) - Handle heterogeneous
sfgeometry XY/XYZ dimensions infm_bary()/fm_basis()via new internalfm_zm()method that is called byfm_onto_mesh()andfm_unify_coords()to promote XY to XYZ when needed, before callingsf::st_coordinates(), assf::st_coordinates()otherwise fails. (version0.5.0.9005)
Bug fixes
- Make
fm_subdivide()store the indexing information for the original mesh locations in$idx$loc(version0.5.0.9001) - Correct off-by-one indexing error in
$graph$vttriangle indices (version0.5.0.9002) - Propagate correct
crsinformation infm_bary_loc()for 2D spaces (version0.5.0.9005)
fmesher 0.5.0
CRAN release: 2025-07-07
New features
- Add
fm_area()method forfm_segmarea calculations (version0.4.0.9002) - Make
fm_nonconvex_hull()a unified function for “fm” and “sf” construction methods and input/output formats, with default method “fm” and output format “sf”, makingfm_nonconvex_hull_inla()deprecated. (version0.4.0.9004)
Improved features
- Rename
fm_mesh_components()tofm_components()and add support forfm_segmobjects (version0.4.0.9001) - Add support for polygon output in
fm_as_sfc()for closed boundaryfm_segmobjects (version0.4.0.9002) - Add support for
fm_segmas boundary input tofm_hexagon_lattice()(version0.4.0.9005) - Add
fm_segmintegration support forfm_mesh_2dobjects infm_int()(version0.4.0.9005)
Bug fixes
- Fix indexing bug in
fm_basis.fm_mesh_1d()fordegree = 2andNAlocations (version0.4.0.9003) - Detect unnamed
sfcobjects infm_int()for multi-domain integration and give an error, as the user must provide a geometry name (version0.4.0.9005) - Check that every
fm_int()sampler for domain lists has at least one corresponding domain (version0.4.0.9007) - Remove support for
character.blockinformation infm_int()/fm_cprod(), forcing the use ofinteger, ascharactercould lead to incorrect block aggregation output ordering. The equivalent information is now available in.block_origin. Also clean up offm_cprod()andsfhandling (version0.4.0.9006)
fmesher 0.4.0
CRAN release: 2025-06-12
New features
- Add
fm_hexagon_lattice()for creating regular hexagonal lattice points to use withfm_mesh_2d(), from Man Ho Suen (version0.3.0.9001and0.3.0.9006) - Add
fm_mesh_components()method for extracting (dis)connected components from 2D and 3D meshes (version0.3.0.9005) - Add
fm_collect()method for creating a collection of meshes of the same type (version0.3.0.9009)
Improved features
- Construct better representative boundary points for
middata offm_mesh_1dfordegree = 2, boundary = "free"(version0.3.0.9002) - Add argument
delaunayto allow non-Delaunay mesh construction infm_subdivide()(version0.3.0.9003) - Better handling of line integration when triangle edges and line transects are co-linear (version
0.3.0.9004) - Add support for
order > 2forfm_fem.fm_mesh_1d()(version0.3.0.9011) and generally forfm_matern_precision()(version0.3.0.9012) - Add argument
unitstofm_crs()to allow setting the length unit for the CRS on creation/extraction (version0.3.0.9013)
Bug fixes
- Improved bug fix in
fm_mesh_2d_inla()from0.2.0.9014to allow negative offset in the second layer when the inner layer is specified only through a boundary polygon (version0.3.0.9007) - Bug fix for
fm_mesh_2d_inla()to ensure S2 manifold meshes covering the entire sphere aren’t accidentally limited to a subset of the globe (version0.3.0.9008) - Handle colour palettes with fewer than requested colours in
fm_generate_colors()(version0.3.0.9008) - Fix bug in
fm_detect_manifold()that caused it to return"R2"for"S2"and"M2"manifolds (version0.3.0.9010) - Fix bug in
fm_as_mesh_3d_list()that caused it to return the mesh surface as anfm_mesh_2dobject instead of the fullfm_mesh_3dobject (version0.3.0.9014)
fmesher 0.3.0
CRAN release: 2025-03-18
New features
- Convert
fm_bary()output to a dedicatedfm_baryclass, with elements ‘index’ (index of the containing simplex) and ‘where’ (matrix of barycentric weights). (version0.2.0.9001) - Add
fm_bary_simplex()generic method to extract the simplex vertex indices for anfm_baryobject. (version0.2.0.9001) - Add
fm_bary_loc()generic method for convertingfm_baryinformation to Euclidean coordinates (version0.2.0.9005) - Add support for
fm_mesh_3dand newfm_lattice_Ndclass (version0.2.0.9008and0.2.0.9011) - Add
fm_assess()method, replicating the oldINLA::inla.mesh.assessment()method (version0.2.0.9010) - Add R implementation of
fm_qinv()for computing sparse matrix partial inverses (version0.2.0.9010)
Improved features
- Handle
NAlocation inputs tofm_basis.fm_mesh_1d()(version0.2.0.9002) - Simplify
fm_basisobject creation, and addcustom_classesdevelopers vignette (version0.2.0.9004) - Add
fm_basis(mesh, loc = fm_bary(mesh, ...))support forfm_mesh_1dandfm_mesh_2dobjects (version0.2.0.9006) - Add
list()input support forfm_int.numeric, to allow multiple integration blocks for discrete domains (version0.2.0.9012) - Add
mappingsanddefssupport to thegeom_fm.fm_mesh_1d()method, allowing separate control of theggplot2aesthetics for basis functions, knots, and function evaluations (version0.2.0.9013) - Add support for
characterblock input tofm_blockmethods, to automate multi-domain integration support fromfm_int()(version0.2.0.9017)
Bug fixes
- Make
fm_try_callstack()more robust against large callstack sizes; solves “C stack” crash issue forinla()error reporting (version0.2.0.9007) - Fix
fm_bbox.fm_mesh_2d()bug for"S2"and"M2"manifold meshes (version0.2.0.9008) - Fix bug in
fm_rcdt_2d_inla()that lead to ignoring thequality.specargument (version0.2.0.9009) - Fix bug in
fm_mesh_2d_inla()that improperly ignored negativeoffsetvalues when creating meshes based on only boundary information (version0.2.0.9014) - Minor bugfix for
print.fm_segm()for emptyfm_segmobjects (version0.2.0.9015) - Bugfix for
fm_mesh_2d_inla(interior = ...)where part of the code incorrectly assumedinteriorwould be a list. Now converts a list into a singlefm_segmobject (version0.2.0.9016)
fmesher 0.2.0
CRAN release: 2024-11-06
New methods
- Add print methods for
fm_basisandfm_evaluatorobjects (version0.1.7.9003) - Add
fm_manifold_get()generic method to extract manifold information from general objects, so that external objects can implement their own manifold information storage (version0.1.7.9005) - Add
fm_crs_plot()method for plottingfm_crsobjects with optional graticules and Tissot indicatrices (version0.1.7.9010)
New method options
- Add
fullargument tofm_basis()to toggle between matrix and fullfm_basisobject output (version0.1.7.9002) - Add
locplotting option togeom_fm.fm_mesh_2dand modify theggplotmapping interface for interior and boundary segments in the same method (version0.1.7.9009) - Add
format="loc"argument tofm_as_sfc.fm_mesh_2d()for converting mesh node coordinates tosfc_POINTformat (version0.1.7.9009)
Minor updates
- Update documentation and vector coordinate inputs to
fm_lattice_2d()to clarify input interpretation and ensure correct boundary orientation (version0.1.7.9001) - Add some length unit handling to
fm_crs_bounds()(version0.1.7.9008) - Add control argument
max_batch_sizetofm_bary.fm_mesh_2d(), that can be supplied viafm_basis(), for optional override of the default maximal batch calculation size, see #14 (version0.1.7.9011)
Deprecation updates
- Remove
spobjects fromfmexampledata. Usefmexample_sp()to access them if needed (version0.1.7.9004) - Move
spdependency to Suggests, and removeinlabrudependency (version0.1.7.9006) - Further
spuse protection (version0.1.7.9007) - Increased deprecation warning and error messages for old unsupported methods
fmesher 0.1.7
CRAN release: 2024-07-01
- Fix regression bug in
fm_manifold()that made it ignore all but the first given type options. See #16 (version `0.1.6.9001) - Fix
plot.fm_mesh_2dvectorisation bug (version0.1.6.9002) - Add new
fm_subdivide()method forfm_mesh_2dmeshes (version0.1.6.9003)
fmesher 0.1.6
CRAN release: 2024-06-14
- Fix for hiding away-facing triangle edges in
plot.fm_mesh_2d()andlines.fm_segm(). - Fix duplicated
fm_unify_coords.sf()method. Thanks to Pablo Paccioretti for debugging and reporting, see #13 (version0.1.5.9001) - Use batched
fm_bary.fm_mesh_2d()computations for data sizes of2e5and upwards. This improves performance offm_basis()/inla.spde.make.A()for large data sets, see #14 (version0.1.5.9002) - Automatically convert raw
sfcsamplers objects tosfobjects infm_int.list()(version0.1.5.9003) - Detect and warn about unsupported use of
fm_segmobjects infm_int.list()(version0.1.5.9004) - Add
fm_basis()andfm_fem()support forfm_tensorfunction spaces (version0.1.5.9005) - Add
fm_CRS()support forterraobjects (version0.1.5.9006)
fmesher 0.1.5
CRAN release: 2023-12-20
- Fix bug in
fm_matern_sample()that prevented the use of a non-NULLlocargument. For earlier versions, the workaround is to make a separate call tofm_evaluate()after callingfm_matern_sample(). - Improve speed of
fm_block_log_shift()by an order of magnitude for multi-block cases. - Fix bug in
plot.fm_mesh_2dfor meshes with 2D coordinate storage (version0.1.4.9002)
fmesher 0.1.4
CRAN release: 2023-10-28
- Work around
std::get<variant>()lack of support for MacOS< 10.14.
fmesher 0.1.3
CRAN release: 2023-10-18
- Fix bug in
fm_rcdt_2d_inla()that gave different defaults for theextendandrefinearguments when equal toTRUE, that should be treated the same aslist()(version0.1.2.9001) - Fix bug in
fm_rcdt_2d_inla()to properly updatenbasis counter element when removing unused vertices. (version0.1.2.9002) - Fix bug giving a spurious warning about inconsistent
is.bndfor emptyfm_segmobjects, and inconsistentgrpvector lengths. (version0.1.2.9003) - Convert some of the old potentially unsafe C++ pointer methods to type safe C++17 features
fmesher 0.1.2
CRAN release: 2023-08-25
- Various documentation improvements, in particular for INLA compatibility
- Modify mesh refinement tests to directly check the refinement criteria instead of the specific mesh result, to account for differences in floating point behaviour on M1 processors.
- Modify tests of non-mesh-generation features to use precomputed meshes or meshes with stable properties
- Protect against invalid
tvinputs - Revert from
\text{}to\textrm{}, as AMS extensions are only supported from R 4.2.2 (https://www.stats.bris.ac.uk/R/doc/manuals/r-devel/R-exts.pdf 2023-08-24, page 90), and CRAN oldrel for macOS is 4.2.0, not 4.2.3
fmesher 0.1.1
CRAN release: 2023-08-18
- Simplify LICENSE information in the R package DESCRIPTION
- Fix example for legacy
plot_PolySetmethod - Fix C++ unused-variable warning detected by clang-tidy version 16.0.6
- Add workaround for
sf::st_buffernot supporting negative distance fors2with longlat coordinates. Fixes #5
fmesher 0.1.0
- Full conversion of the fmesher interface from the standalone binary in R-INLA (https://www.r-inla.org) to an interface powered by
Rcpp(https://cran.r-project.org/package=Rcpp) - Tools for 2D and 1D function spaces, see
fm_mesh_2d()andfm_mesh_1d() - Tools for CRS handling see
fm_crs()andfm_transform() - Plotting support for base graphics,
rgl, andggplot2 - Added basic GMRF tools, see
fm_matern_precision()