The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
tulpaMesh takes point coordinates and returns a triangulated mesh with FEM matrices ready for SPDE models.
set.seed(42)
coords <- cbind(x = runif(100), y = runif(100))
mesh <- tulpa_mesh(coords)
mesh
#> tulpa_mesh:
#> Vertices: 113
#> Triangles: 211
#> Edges: 323The mesh extends slightly beyond the convex hull of your points
(controlled by extend). Plot it:
Use max_edge to add refinement points. The mesh
generator places a hexagonal lattice of points at this spacing,
producing near-equilateral triangles.
mesh_fine <- tulpa_mesh(coords, max_edge = 0.08)
mesh_fine
#> tulpa_mesh:
#> Vertices: 301
#> Triangles: 511
#> Edges: 773
plot(mesh_fine, main = "Refined mesh (max_edge = 0.08)")fem_matrices() returns the three sparse matrices needed
for SPDE models:
C: mass matrix (consistent, symmetric positive definite)
G: stiffness matrix (symmetric, zero row sums)
A: projection matrix mapping mesh vertices to observation locations
fem <- fem_matrices(mesh_fine, obs_coords = coords)
dim(fem$C)
#> [1] 301 301
dim(fem$A)
#> [1] 100 301
# Verify key properties
all(Matrix::diag(fem$C) > 0) # positive diagonal
#> [1] FALSE
max(abs(Matrix::rowSums(fem$G))) # row sums ~ 0
#> [1] 2.842171e-14
range(Matrix::rowSums(fem$A)) # row sums = 1
#> [1] 1 1For the SPDE Q-builder, you typically need the lumped (diagonal) mass matrix:
If your coordinates live in a data.frame, use a formula:
Check triangle quality with mesh_quality() and
mesh_summary():
mesh_summary(mesh_fine)
#> Mesh quality summary:
#> Triangles: 511
#> Min angle: 0.4 / 40.9 / 60.0 (min / median / max)
#> Max angle: 60.0 / 78.6 / 179.2
#> Aspect ratio: 1.00 / 1.48 / 35.34
#> Area: 0.0000 / 0.0020 / 0.0151
#> WARNING: 29 triangles with min angle < 10 degrees
#> WARNING: 17 triangles with min angle < 5 degrees (slivers)Color triangles by minimum angle:
For guaranteed minimum angles, use min_angle:
Spatial Workflows – boundary constraints, barrier models, sf integration
Spherical and Temporal Meshes – global meshes, space-time, metric graphs
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.