G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsNurbsCreator< T > Struct Template Reference

Detailed Description

template<class T>
struct gismo::gsNurbsCreator< T >

Class gsNurbsCreator provides some simple examples of Nurbs Geometries.

Static Public Member Functions

static TensorBSpline3Ptr BSplineCube (T const &r=1, T const &x=0, T const &y=0, T const &z=0)
 Cube of side r, with lower left corner at (x,y,z)
 
static TensorBSpline3Ptr BSplineCube (short_t deg)
 The unit cube represented as a tensor B-spline of degree deg.
 
static BSplinePtr BSplineFatCircle (T const &r=(T)(1), T const &x=0, T const &y=0)
 Inexact circle using B-splines.
 
static TensorBSpline2Ptr BSplineFatDisk (T const &r=1, T const &x=0, T const &y=0)
 Inexact disk using B-splines.
 
static TensorBSpline2Ptr BSplineFatQuarterAnnulus (T const &r0=1, T const &r1=2)
 
static TensorBSpline2Ptr BSplineLShape_p1 (T r=(T)(1))
 L-Shaped domain represented as a tensor B-spline of degree 1.
 
static TensorBSpline2Ptr BSplineLShape_p2C0 ()
 
static TensorBSpline2Ptr BSplineLShape_p2C1 ()
 
static gsMultiPatch< T > BSplineLShapeMultiPatch_p2 ()
 
static GeometryPtr BSplineQuarterAnnulus (const short_t &deg=2)
 Inexact annulus using B-splines.
 
static TensorBSpline2Ptr BSplineRectangle (T const &low_x=0, T const &low_y=0, T const &upp_x=1, T const &upp_y=1, T const &turndeg=0)
 2d-rectange [low_x,upp_x] x [low_y,upp_y], rotated by turndeg degrees.
 
static TensorBSpline2Ptr BSplineSquare (T const &r=1, T const &x=0, T const &y=0)
 Square of side r, with lower left corner at (x,y)
 
static TensorBSpline2Ptr BSplineSquareDeg (short_t deg, T scale=(T)(1))
 The unit square represented as a tensor B-spline of degree deg.
 
static gsMultiPatch< T > BSplineSquareGrid (int n, int m, T const &r=1, T const &lx=0, T const &ly=0)
 
static gsMultiPatch< T > BSplineStar (index_t const &N=3, T const &R0=1, T const &R1=0.5)
 Makes a star with N patches, outer radius R0 and inner radius R1. More...
 
static TensorBSpline2Ptr BSplineTrapezium (T const &Lbot=1, T const &Ltop=0.5, T const &H=1, T const &d=0, T const &turndeg=0)
 Rectangle described by the identity mapping over the given parameter domain, using tensor product B-splines. More...
 
static TensorBSpline2Ptr BSplineTrapezium (T const &Ax, T const &Ay, T const &Bx, T const &By, T const &Cx, T const &Cy, T const &Dx, T const &Dy, T const &turndeg=0)
 2d-trapezium
 
static TensorBSpline2Ptr BSplineTriangle (T const &H=1, T const &W=1)
 Makes a Isosceles triangle with height H and width W. More...
 
static TensorNurbs2Ptr NurbsAnnulus (T const &r0=1, T const &r1=2)
 Exact full annulus using NURBS with inner radius r0 and outer radius r1.
 
static TensorNurbs2Ptr NurbsArcTrapezium (T const &Lbot=1, T const &Ltop=0.5, T const &H=1, T const &d=0, T const &turndeg=0)
 2d-trapezium
 
static TensorNurbs2Ptr NurbsArcTrapezium (T const &Ax, T const &Ay, T const &Bx, T const &By, T const &Cx, T const &Cy, T const &Dx, T const &Dy, T const &turndeg=0)
 2d-trapezium
 
static NurbsPtr NurbsCircle (T const &r=(T)(1), T const &x=0, T const &y=0)
 Circle using NURBS.
 
static TensorNurbs3Ptr NurbsCube (T const &r=1, T const &x=0, T const &y=0, T const &z=0)
 Cube of side r, with lower left corner at (x,y,z) using NURBS.
 
static TensorNurbs2Ptr NurbsQuarterAnnulus (T const &r0=1, T const &r1=2)
 Exact annulus using NURBS with inner radius r0 and outer radius r1.
 
static TensorNurbs2Ptr NurbsSphere (T const &r=1, T const &x=0, T const &y=0, T const &z=0)
 Sphere using NURBS.
 

Member Function Documentation

gsNurbsCreator< T >::TensorBSpline2Ptr BSplineFatQuarterAnnulus ( T const &  r0 = 1,
T const &  r1 = 2 
)
static

Fat annulus using B-splines, discarding the weights of the exact NURBS Analytical formulation (when r0 = 1 and r1 = 2): (x, y) = (1 + s - s*t*t - t*t, 2*s*t -s*t*t + 2*t - t*t)

gsNurbsCreator< T >::TensorBSpline2Ptr BSplineLShape_p2C0 ( )
static

L-Shaped domain represented as a tensor B-spline of degree 2 with C0-continuity across the diagonal.

gsNurbsCreator< T >::TensorBSpline2Ptr BSplineLShape_p2C1 ( )
static

L-Shaped domain represented as a tensor B-spline of degree 2 with C1-continuity and double control points at the corners.

gsMultiPatch< T > BSplineLShapeMultiPatch_p2 ( )
static

L-Shaped domain represented as a multipatch (3 patches) tensor B-spline of degree 2

  1. Patch is the middel part, 2. Patch is the upper part, 3 Patch is the right part.
gsMultiPatch< T > BSplineSquareGrid ( int  n,
int  m,
T const &  r = 1,
T const &  lx = 0,
T const &  ly = 0 
)
static

Creates a n X m rectangle multipatch consisting of B-splines squares with lower left corner at at (lx,ly). The numbering of the patches are (for n = 4 and m = 3):

2 5 8 11
1 4 7 10
0 3 6 9
Parameters
nnumber of squares in x-direction.
mnumber of squares in y-direction.
rwith length of the side of the squares.
lxx-coordinate for lower left corner of the rectangle.
lyy-coordinate for lower left corner of the rectangle.
gsMultiPatch< T > BSplineStar ( index_t const &  N = 3,
T const &  R0 = 1,
T const &  R1 = 0.5 
)
static

Makes a star with N patches, outer radius R0 and inner radius R1.

Star with N points. Each point is located R0 from the center. The other corners are located R1 from the center.

gsNurbsCreator< T >::TensorBSpline2Ptr BSplineTrapezium ( T const &  Lbot = 1,
T const &  Ltop = 0.5,
T const &  H = 1,
T const &  d = 0,
T const &  turndeg = 0 
)
static

Rectangle described by the identity mapping over the given parameter domain, using tensor product B-splines.

2d-trapezium

gsNurbsCreator< T >::TensorBSpline2Ptr BSplineTriangle ( T const &  H = 1,
T const &  W = 1 
)
static

Makes a Isosceles triangle with height H and width W.

Triangle of height H and width W with the bottom side centered at 0,0.