Geometry Factories
Factory functions for creating standard geometric shapes and test geometries.
Basis Creators
TinyGismo.createBSplineUnitInterval — Function
createBSplineUnitInterval(deg::Int)Create a B-spline basis on the unit interval [0, 1].
Arguments
deg: Polynomial degree of the basis
Returns
A BSplineBasis of degree deg defined on the parametric domain [0, 1]
Details
This is a convenience function for creating a standard univariate B-spline basis on the unit interval with clamped knot vector.
Examples
# Linear B-spline basis on [0, 1]
basis_linear = createBSplineUnitInterval(1)
# Quadratic B-spline basis on [0, 1]
basis_quad = createBSplineUnitInterval(2)
# Cubic B-spline basis on [0, 1]
basis_cubic = createBSplineUnitInterval(3)Basic Shapes
Rectangles and Quadrilaterals
TinyGismo.createBSplineRectangle — Function
createBSplineRectangle(low_x=0, low_y=0, upp_x=1, upp_y=1, turndeg=0)Create a B-spline rectangular patch.
Arguments
low_x: Lower x-coordinate (default: 0)low_y: Lower y-coordinate (default: 0)upp_x: Upper x-coordinate (default: 1)upp_y: Upper y-coordinate (default: 1)turndeg: Rotation angle in degrees (default: 0)
Returns
A TensorBSpline{2} representing a rectangular patch
Examples
# Unit square
rect = createBSplineRectangle()
# Custom rectangle
rect = createBSplineRectangle(low_x=-1, low_y=-1, upp_x=2, upp_y=3)TinyGismo.createBSplineTrapezium — Function
createBSplineTrapezium(Lbot=1, Ltop=0.5, H=1, d=0, turndeg=0)
createBSplineTrapezium(Ax, Ay, Bx, By, Cx, Cy, Dx, Dy, turndeg=0)Create a B-spline trapezoidal patch.
Arguments
Parameter version:
Lbot: Length of bottom edge (default: 1)Ltop: Length of top edge (default: 0.5)H: Height (default: 1)d: Horizontal offset of top edge (default: 0)turndeg: Rotation angle in degrees (default: 0)
Corner points version:
Ax,Ay: First corner coordinatesBx,By: Second corner coordinatesCx,Cy: Third corner coordinatesDx,Dy: Fourth corner coordinatesturndeg: Rotation angle in degrees (default: 0)
Returns
A TensorBSpline{2} representing a trapezoidal patch
Examples
# Parameter version
trap = createBSplineTrapezium(Lbot=2, Ltop=1, H=1.5)
# Corner points version
trap = createBSplineTrapezium(0, 0, 2, 0, 1.5, 1, 0.5, 1)TinyGismo.createNurbsArcTrapezium — Function
createNurbsArcTrapezium(Lbot=1, Ltop=0.5, H=1, d=0, turndeg=0)
createNurbsArcTrapezium(Ax, Ay, Bx, By, Cx, Cy, Dx, Dy, turndeg=0)Create a NURBS trapezoidal patch with curved sides.
Arguments
Parameter version:
Lbot: Length of bottom edge (default: 1)Ltop: Length of top edge (default: 0.5)H: Height (default: 1)d: Horizontal offset of top edge (default: 0)turndeg: Rotation angle in degrees (default: 0)
Corner points version:
Ax,Ay: First corner coordinatesBx,By: Second corner coordinatesCx,Cy: Third corner coordinatesDx,Dy: Fourth corner coordinatesturndeg: Rotation angle in degrees (default: 0)
Returns
A TensorNurbs{2} representing a trapezoidal patch with curved edges
Details
Unlike the B-spline version, this creates a trapezium with smoothly curved sides using NURBS.
Triangles
TinyGismo.createBSplineTriangle — Function
createBSplineTriangle(H=1, W=1)Create a triangular B-spline patch.
Arguments
H: Height of the triangle (default: 1)W: Width of the triangle base (default: 1)
Returns
A TensorBSpline{2} representing a triangular patch
Simple Primitives
TinyGismo.createBSplineSquare — Function
createBSplineSquare(r=1, x=0, y=0)Create a square B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing a square patch
TinyGismo.createBSplineSegment — Function
createBSplineSegment(u0=0, u1=1)Create a B-spline line segment.
Arguments
u0: Start parameter (default: 0)u1: End parameter (default: 1)
Returns
A Nurbs curve representing a line segment
Details
Creates a simple parametric line segment that can be used as a basis for other constructions.
2D Shapes
Circles and Disks
TinyGismo.createNurbsCircle — Function
createNurbsCircle(r=1, x=0, y=0)Create a NURBS circle curve.
Arguments
r: Radius (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A Nurbs curve representing a circle
TinyGismo.createBSplineFatCircle — Function
createBSplineFatCircle(r=1, x=0, y=0)Create a B-spline circle patch (disk).
Arguments
r: Radius (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing a fat circle (disk-like patch)
TinyGismo.createBSplineFatDisk — Function
createBSplineFatDisk(r=1, x=0, y=0)Create a B-spline disk patch.
Arguments
r: Radius (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing a disk patch
Rings and Annuli
TinyGismo.createNurbsQuarterAnnulus — Function
createNurbsQuarterAnnulus(r0=1, r1=2)Create a quarter annulus (ring) NURBS patch.
Arguments
r0: Inner radius (default: 1)r1: Outer radius (default: 2)
Returns
A TensorNurbs{2} representing a quarter annulus
TinyGismo.createNurbsAnnulus — Function
createNurbsAnnulus(r0=1, r1=2)Create a full annulus (ring) NURBS patch.
Arguments
r0: Inner radius (default: 1)r1: Outer radius (default: 2)
Returns
A TensorNurbs{2} representing a complete annulus
Organic and Custom Shapes
TinyGismo.createBSplineAmoeba — Function
createBSplineAmoeba(r=1, x=0, y=0)Create an amoeba-shaped B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing an amoeba shape
Details
Creates an organic, blob-like shape useful for testing and demonstrations.
TinyGismo.createBSplineAmoebaBig — Function
createBSplineAmoebaBig(r=1, x=0, y=0)Create a larger amoeba-shaped B-spline patch with more detail.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing a larger amoeba shape
TinyGismo.createBSplineAmoeba3degree — Function
createBSplineAmoeba3degree(r=1, x=0, y=0)Create a cubic (degree 3) amoeba-shaped B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing an amoeba shape with cubic basis functions
TinyGismo.createBSplineFish — Function
createBSplineFish(r=1, x=0, y=0)Create a fish-shaped B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing a fish shape
TinyGismo.createBSplineAustria — Function
createBSplineAustria(r=1, x=0, y=0)Create an Austria-shaped B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing the outline of Austria
TinyGismo.createNurbsAmoebaFull — Function
createNurbsAmoebaFull(r=1, x=0, y=0)Create a full amoeba-shaped NURBS patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorNurbs{2} representing a full amoeba shape
TinyGismo.createNurbsBean — Function
createNurbsBean(r=1, x=0, y=0)Create a bean-shaped NURBS patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorNurbs{2} representing a bean shape
TinyGismo.createBSplineE — Function
createBSplineE(r=1, x=0, y=0)Create a capital E-shaped B-spline patch.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A TensorBSpline{2} representing the letter E
3D Shapes
Volumes
TinyGismo.createBSplineCube — Function
createBSplineCube(r=1, x=0, y=0, z=0)Create a cube B-spline volume.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)z: Center z-coordinate (default: 0)
Returns
A TensorBSpline{3} representing a cubic volume
TinyGismo.createBSplineHalfCube — Function
createBSplineHalfCube(r=1, x=0, y=0, z=0)Create a half-cube B-spline volume.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)z: Center z-coordinate (default: 0)
Returns
A TensorBSpline{3} representing a half-cubic volume
TinyGismo.createNurbsCube — Function
createNurbsCube(r=1, x=0, y=0, z=0)Create a cube NURBS volume.
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)z: Center z-coordinate (default: 0)
Returns
A TensorNurbs{3} representing a cubic volume
TinyGismo.createNurbsSphere — Function
createNurbsSphere(r=1, x=0, y=0, z=0)Create a NURBS sphere.
Arguments
r: Radius (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)z: Center z-coordinate (default: 0)
Returns
A TensorNurbs{3} representing a sphere
Curves
TinyGismo.createNurbsCurve1 — Function
createNurbsCurve1(r=1, x=0, y=0)Create a NURBS curve (variant 1).
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A Nurbs curve
TinyGismo.createNurbsCurve2 — Function
createNurbsCurve2(r=1, x=0, y=0)Create a NURBS curve (variant 2).
Arguments
r: Radius/scale factor (default: 1)x: Center x-coordinate (default: 0)y: Center y-coordinate (default: 0)
Returns
A Nurbs curve
Engineering Benchmarks
TinyGismo.createNurbsQrtPlateWHoleC0 — Function
createNurbsQrtPlateWHoleC0()Create a quarter plate with a hole (C0 continuity).
Returns
A TensorNurbs{2} representing a quarter of a plate with a circular hole
Details
This benchmark geometry is commonly used for testing structural mechanics problems, particularly for plates with stress concentrations.