Convenience helpers that embed a toroidal grid graph into \(\mathbb{R}^3\) and use the induced Euclidean edge lengths as positive graph weights. These helpers are intended for benchmark families where the graph topology is toroidal but the intended metric comes from a curved or spatially varying 3D realization.
Usage
torus.surface.embedding(
h,
w = h,
surface = c("standard", "pinched", "wavy"),
major_radius = 2,
minor_radius = 0.75,
amplitude = 0.2,
freq_major = 2,
freq_minor = 1,
twist = 0.25
)
torus.surface.graph(
h,
w = h,
surface = c("standard", "pinched", "wavy"),
major_radius = 2,
minor_radius = 0.75,
amplitude = 0.2,
freq_major = 2,
freq_minor = 1,
twist = 0.25,
normalize = c("median", "mean", "none")
)Arguments
- h
Number of wrapped rows. Must be at least
3.- w
Number of wrapped columns. Defaults to
h; must be at least3.- surface
Torus surface family. One of
"standard","pinched", or"wavy".- major_radius
Positive distance from the torus center to the center of the tube.
- minor_radius
Positive baseline radius of the torus tube. The local tube radius must remain strictly smaller than
major_radiuseverywhere.- amplitude
Finite numeric deformation amplitude.
- freq_major
Positive angular frequency around the major cycle, used by
"wavy"and the periodic twist.- freq_minor
Positive angular frequency around the minor cycle, used by
"wavy".- twist
Finite phase twist applied periodically to the minor angle as a function of the major angle.
- normalize
Normalization applied to the induced edge lengths. One of
"median","mean", or"none".
Value
torus.surface.embedding() returns an n x 3 numeric matrix with
columns x, y, and z.
torus.surface.graph() returns a list with components:
edges: the undirected toroidal-grid edges,n: number of vertices,edge_weights: induced positive edge lengths,coords_surface: the 3D surface embedding,coords_param: the 2D unwrapped parameter coordinates,weight_scale: the normalization constant applied to the raw edge lengths,family: always"torus",surface: the chosen surface name,label: a human-readable family label.