Nothing
tulpa_mesh() no longer returns vertices that belong to no triangle
(#4). Lattice points from max_edge were laid over the bounding box of
the domain, so points in its corners fell outside the constraint loop and
received zero mass in fem_matrices(). The lattice is now generated only
inside the domain, and the triangulation drops any vertex that no triangle
references (for example input points outside a user boundary).extend now reaches the documented distance: the extended boundary is the
outward buffer of the convex hull of coords by extend times the domain
diameter, with rounded corners. Previously the hull was scaled about its
centroid, which reached roughly half that distance.max_edge = c(inner, outer) now sets the lattice
spacing and boundary segment length in the extension region, as
documented; it was previously ignored.tulpa_mesh(extend = 0) without a boundary now triangulates the convex
hull of the points instead of failing with zero triangles.n_input_points now counts the supplied coordinates.fem_matrices(parallel = TRUE)) no longer references
Intel TBB symbols directly. Each worker now accumulates triplets into a
chunk-local buffer that is merged under a mutex, so the package builds on
platforms where RcppParallel falls back to its TinyThread backend (for
example Alpine Linux with musl).tulpa_mesh(max_edge = ...) collapsing to zero triangles for some
(max_edge, cutoff) settings and point counts. Vertex deduplication could
merge extended-hull boundary vertices that fell within max_edge * 0.3 of
each other, deleting a constraint edge and leaving the boundary loop open;
the constrained triangulation then erased every triangle. Boundary and hole
vertices are now protected from deduplication so the constraint loop stays
closed.tulpa_mesh() now errors loudly when the triangulation yields zero
triangles (for example a collinear point set) instead of returning an empty
mesh that silently produces all-zero FEM matrices.Initial CRAN release.
tulpa_mesh(): constrained Delaunay triangulation with formula interface,
sf boundary support (POLYGON, MULTIPOLYGON, holes), hexagonal lattice
refinement, Ruppert refinement (min_angle, max_area), and vertex
deduplication.tulpa_mesh_sphere(): icosahedral geodesic meshes with 3D surface FEM.tulpa_mesh_1d(): temporal meshes with tridiagonal FEM matrices.tulpa_mesh_graph(): metric graph meshes for network SPDE models.fem_matrices(): P1 linear FEM producing mass (C), stiffness (G), and
projection (A) sparse matrices. Supports lumped mass, barrier models,
and parallel assembly via RcppParallel.fem_matrices_p2(): P2 quadratic FEM with 6-node triangular elements.fem_matrices_nonstationary(): spatially varying kappa/tau weighting.mesh_quality(), mesh_summary(), plot.tulpa_mesh(): diagnostics.subdivide_mesh(), subset_mesh(), mesh_components(): mesh manipulation.refine_mesh(): adaptive refinement from error indicators.as_tulpa_mesh(): convert fmesher/INLA meshes.barrier_triangles(): identify barrier regions from polygons.mesh_crs(), set_crs(): CRS support.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.