| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(debug), | public | :: | err |
101: size mismatch (weights vs control points), 102: missing control points, 103: missing knot vector, 104: missing geometry points, 105: missing weights, 106: lsq fit underdetermined |
|||
| real(kind=rk), | private, | allocatable | :: | Wc(:) |
Weights for control points (1D array: [nc]) |
||
| real(kind=rk), | private, | allocatable | :: | Xc(:,:) |
Control points (2D array: [nc, dim]) |
||
| real(kind=rk), | private, | allocatable | :: | Xg(:,:) |
Geometry points (2D array: [ng, dim]) |
||
| real(kind=rk), | private, | allocatable | :: | Xt(:) |
Evaluation points (1D array: [ng]) |
||
| integer, | private | :: | degree |
Degree (order) of the curve |
|||
| integer, | private, | allocatable | :: | elemConn(:,:) |
IGA element connectivity |
||
| integer, | private, | allocatable | :: | elemConn_Xc_vis(:,:) |
Connectivity for visualization of control points |
||
| integer, | private, | allocatable | :: | elemConn_Xg_vis(:,:) |
Connectivity for visualization of geometry points |
||
| real(kind=rk), | private, | allocatable | :: | knot(:) |
Knot vector (1D array) |
||
| integer, | private | :: | nc |
Number of control points |
|||
| integer, | private | :: | ng |
Number of geometry points |
Compute the shape functions, derivative of shape functions and dL
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | ie | |||
| integer, | intent(in) | :: | ig | |||
| real(kind=rk), | intent(out), | allocatable | :: | Tgc(:) | ||
| real(kind=rk), | intent(out), | allocatable | :: | dTgc_dXg(:,:) | ||
| real(kind=rk), | intent(out) | :: | dL | |||
| integer, | intent(in), | optional | :: | ngauss |
Compute the basis functions of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | Tgc(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | Tgc(:) |
Compute geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt |
Compute degree of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this |
Generate IGA element connectivity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Generate connectivity for control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in), | optional | :: | p |
Generate connectivity for geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in), | optional | :: | p |
Generate connectivity for parameter points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in), | optional | :: | p |
Compute the length of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(out) | :: | length | |||
| integer, | intent(in), | optional | :: | ngauss |
Compute number of required control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this |
Generate geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) |
Compute the derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | dTgc(:,:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | dTgc(:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) | |
| integer, | intent(in), | optional, | contiguous | :: | elem(:) |
Compute the second derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | d2Tgc(:,:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | dTgc(:,:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | d2Tgc(:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | dTgc(:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) |
Elevate the degree of the curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | t | |||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | B(:,:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Bs(:,:) |
Export control points to VTK file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | filename | |||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | point_data(:,:) | |
| character(len=*), | intent(in), | optional, | contiguous | :: | field_names(:) | |
| character(len=*), | intent(in), | optional | :: | encoding |
Export geometry points to VTK file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | filename | |||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | point_data(:,:) | |
| character(len=*), | intent(in), | optional, | contiguous | :: | field_names(:) | |
| character(len=*), | intent(in), | optional | :: | encoding |
Export parameter space to VTK file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| character(len=*), | intent(in) | :: | filename | |||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | point_data(:,:) | |
| character(len=*), | intent(in), | optional, | contiguous | :: | field_names(:) | |
| character(len=*), | intent(in), | optional | :: | encoding |
Export the NURBS curve to an IGES file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | filename |
Finalize the NURBS curve object
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this |
Get weights
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
Get control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n | |||
| integer, | intent(in) | :: | dir |
Get geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n | |||
| integer, | intent(in) | :: | dir |
Get parameter values
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Compute and return the continuity of the curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get degree of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get IGA element connectivity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get connectivity for control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get connectivity for geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get knot vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Compute and return the multiplicity of the knots
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get number of control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get number of geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Insert knots into the knot vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xth(:) | ||
| integer, | intent(in), | contiguous | :: | r(:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | B(:,:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Bs(:,:) |
Check if the NURBS curve is rational
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Fit B-spline curve to structured data points using least squares
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xdata(:,:) | ||
| integer, | intent(in) | :: | ndata |
Fit NURBS curve to structured data points using least squares
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xdata(:,:) | ||
| integer, | intent(in) | :: | ndata | |||
| integer, | intent(in), | optional | :: | maxit | ||
| real(kind=rk), | intent(in), | optional | :: | tol | ||
| real(kind=rk), | intent(in), | optional | :: | lambda_xc | ||
| real(kind=rk), | intent(in), | optional | :: | mu0 | ||
| real(kind=rk), | intent(in), | optional | :: | reg_logw |
Modify weights
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | W | |||
| integer, | intent(in) | :: | num |
Modify control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | X | |||
| integer, | intent(in) | :: | num | |||
| integer, | intent(in) | :: | dir |
Find the nearest point on the NURBS curve (Approximation)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | point_Xg(:) | ||
| real(kind=rk), | intent(out), | optional | :: | nearest_Xg(size(point_Xg)) | ||
| real(kind=rk), | intent(out), | optional | :: | nearest_Xt | ||
| integer, | intent(out), | optional | :: | id |
Find the nearest point on the NURBS curve (Minimization - Newtons method)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | point_Xg(:) | ||
| real(kind=rk), | intent(in) | :: | tol | |||
| integer, | intent(in) | :: | maxit | |||
| real(kind=rk), | intent(out) | :: | nearest_Xt | |||
| real(kind=rk), | intent(out), | optional | :: | nearest_Xg(size(this%Xc,2)) |
Remove knots from the knot vector
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xth(:) | ||
| integer, | intent(in), | contiguous | :: | r(:) |
Rotate control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | alpha | |||
| real(kind=rk), | intent(in) | :: | beta | |||
| real(kind=rk), | intent(in) | :: | theta |
Rotate geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | alpha | |||
| real(kind=rk), | intent(in) | :: | beta | |||
| real(kind=rk), | intent(in) | :: | theta |
Set NURBS curve
Set knot vector, control points and weights for the NURBS curve object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | knot(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set knot vector, control points and weights for the NURBS curve object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | knot(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set NURBS curve using nodes of parameter space (Xth), degree, continuity, control points and weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xth_dir(:) | ||
| integer, | intent(in) | :: | degree | |||
| integer, | intent(in), | contiguous | :: | continuity(:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xc(:,:) | |
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set Bezier or Rational Bezier curve using control points and weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | degree | |||
| integer, | intent(in) | :: | nc | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set a C-shape
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
| real(kind=rk), | intent(in) | :: | radius |
Set a circle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
| real(kind=rk), | intent(in) | :: | radius |
Set IGA element connectivity
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set connectivity for control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set connectivity for geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set a half circle
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
| real(kind=rk), | intent(in) | :: | radius |
Show the NURBS object using PyVista
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| character(len=*), | intent(in) | :: | vtkfile_Xc | |||
| character(len=*), | intent(in) | :: | vtkfile_Xg |
Translate control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | vec(:) |
Translate geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | vec(:) |
Compute the basis functions of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | Tgc(:) |
Compute the basis functions of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | Tgc(:,:) |
Compute the second derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | d2Tgc(:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | dTgc(:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) |
Compute the second derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | d2Tgc(:,:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | dTgc(:,:) | |
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:,:) |
Compute the derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in) | :: | Xt | |||
| real(kind=rk), | intent(out), | allocatable | :: | dTgc(:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) | |
| integer, | intent(in), | optional, | contiguous | :: | elem(:) |
Compute the derivative of the NURBS curve
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in), | optional | :: | res | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:) | |
| real(kind=rk), | intent(out), | allocatable | :: | dTgc(:,:) | ||
| real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:,:) |
Get all weights
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get i-th weight
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
Get all control points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get i-th control point
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
Get i-th control point in a specific direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n | |||
| integer, | intent(in) | :: | dir |
Get all geometry points
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get i-th geometry point
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n |
Get i-th geometry point in a specific direction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | n | |||
| integer, | intent(in) | :: | dir |
Get all knot vectors
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this |
Get i-th knot value
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(in) | :: | this | |||
| integer, | intent(in) | :: | i |
Set knot vector, control points and weights for the NURBS curve object
Set knot vector, control points and weights for the NURBS curve object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | knot(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set knot vector, control points and weights for the NURBS curve object.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | knot(:) | ||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set NURBS curve using nodes of parameter space, degree, continuity, control points and weights
Set NURBS curve using nodes of parameter space (Xth), degree, continuity, control points and weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xth_dir(:) | ||
| integer, | intent(in) | :: | degree | |||
| integer, | intent(in), | contiguous | :: | continuity(:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Xc(:,:) | |
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set Bezier or Rational Bezier curve using control points and weights
Set Bezier or Rational Bezier curve using control points and weights.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set NURBS curve using degree, number of control points, control points and weights
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nurbs_curve), | intent(inout) | :: | this | |||
| integer, | intent(in) | :: | degree | |||
| integer, | intent(in) | :: | nc | |||
| real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
| real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |