Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
real(kind=rk), | private, | allocatable | :: | Wc(:) |
Weights for the control points (1D array: [nc(1)nc(2)nc(3)]) |
||
real(kind=rk), | private, | allocatable | :: | Xc(:,:) |
Control points (2D array: [nc(1)nc(2)nc(3), dim]) |
||
real(kind=rk), | private, | allocatable | :: | Xg(:,:) |
Geometry points (2D array: [ng(1)ng(2)ng(3), dim]) |
||
real(kind=rk), | private, | allocatable | :: | Xt(:,:) |
Evaluation parameter values (2D array: [ng(1)ng(2)ng(3), dim] |
||
real(kind=rk), | private, | allocatable | :: | Xt1(:) |
Evaluation parameter values in the first direction (1D array: [ng(1)]) |
||
real(kind=rk), | private, | allocatable | :: | Xt2(:) |
Evaluation parameter values in the second direction (1D array: [ng(2)]) |
||
real(kind=rk), | private, | allocatable | :: | Xt3(:) |
Evaluation parameter values in the third direction (1D array: [ng(3)]) |
||
integer, | private | :: | degree(3) |
Degree (order) of the volume |
|||
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 | :: | knot1(:) |
Knot vector in the first direction (1D array) |
||
real(kind=rk), | private, | allocatable | :: | knot2(:) |
Knot vector in the second direction (1D array) |
||
real(kind=rk), | private, | allocatable | :: | knot3(:) |
Knot vector in the third direction (1D array) |
||
integer, | private | :: | nc(3) |
Number of control points in each direction |
|||
integer, | private | :: | ng(3) |
Number of geometry points in each direction |
Compute the shape functions, derivative of shape functions and dV
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | 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) | :: | dV |
Compute the basis functions of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
real(kind=rk), | intent(out), | allocatable | :: | Tgc(:,:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
real(kind=rk), | intent(out), | allocatable | :: | Tgc(:) |
Compute geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xt(:) |
Compute degree of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | dir |
Compute degrees of the faces
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | face |
Generate IGA element connectivity
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Compute faces of the IGA elements
number of nodes in each direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | elem | |||
integer, | intent(in) | :: | face |
Compute faces of the control points
number of nodes in each direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | elem | |||
integer, | intent(in) | :: | face |
Compute faces of the geometry points
number of nodes in each direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | elem | |||
integer, | intent(in) | :: | face |
Generate connectivity for control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in), | optional, | contiguous | :: | p(:) |
Generate connectivity for geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in), | optional, | contiguous | :: | p(:) |
Compute number of required control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | dir |
Compute the volume of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(out) | :: | volume |
Generate geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt(:,:) |
Compute the derivative of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
real(kind=rk), | intent(out), | allocatable | :: | dTgc(:,:,:) | ||
real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:,:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
real(kind=rk), | intent(out), | allocatable | :: | dTgc(:,:) | ||
real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) | |
integer, | intent(in), | optional | :: | elem(:) |
Compute the second derivative of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
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_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | 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(:) |
Elevate the degree of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | dir | |||
integer, | intent(in) | :: | t |
Export control points to VTK file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | filename |
Export geometry points to VTK file
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
character(len=*), | intent(in) | :: | filename |
Finalize the NURBS volume object
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this |
Get weights
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Get control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | dir |
Get geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | dir |
Get parameter values
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Compute and return the continuity of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get degree of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get IGA element connectivity
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get connectivity for control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get connectivity for geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get knot vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir | |||
integer, | intent(in) | :: | i |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Compute and return the multiplicity of the knots
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get number of control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get number of geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Insert knots into the knot vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | dir | |||
real(kind=rk), | intent(in), | contiguous | :: | Xth(:) | ||
integer, | intent(in), | contiguous | :: | r(:) |
Check if the NURBS volume is rational
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Modify weights
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | W | |||
integer, | intent(in) | :: | num |
Modify control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | X | |||
integer, | intent(in) | :: | num | |||
integer, | intent(in) | :: | dir |
Find the nearest point on the NURBS volume (Approximation)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
real(kind=rk), | intent(in) | :: | point_Xg(:) | |||
real(kind=rk), | intent(out), | optional, | allocatable | :: | nearest_Xg(:) | |
real(kind=rk), | intent(out), | optional, | allocatable | :: | nearest_Xt(:) | |
integer, | intent(out), | optional | :: | id |
Find the nearest point on the NURBS volume (Minimization - Newton's method)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | point_Xg(:) | |||
real(kind=rk), | intent(in) | :: | tol | |||
integer, | intent(in) | :: | maxit | |||
real(kind=rk), | intent(out) | :: | nearest_Xt(3) | |||
real(kind=rk), | intent(out), | optional, | allocatable | :: | nearest_Xg(:) |
Put a shape to a NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | X(:,:) | ||
integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Remove knots from the knot vector
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in) | :: | dir | |||
real(kind=rk), | intent(in), | contiguous | :: | Xth(:) | ||
integer, | intent(in), | contiguous | :: | r(:) |
Rotate control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | 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_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | alpha | |||
real(kind=rk), | intent(in) | :: | beta | |||
real(kind=rk), | intent(in) | :: | theta |
Set NURBS volume
Set control points and weights for the NURBS volume object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | knot1(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | knot2(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | knot3(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set control points and weights for the NURBS volume object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir1(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir2(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir3(:) | ||
integer, | intent(in), | contiguous | :: | degree(:) | ||
integer, | intent(in), | contiguous | :: | continuity1(:) | ||
integer, | intent(in), | contiguous | :: | continuity2(:) | ||
integer, | intent(in), | contiguous | :: | continuity3(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set Bezier or Rational Bezier volume using control points and weights.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | nc(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | degree(:) | ||
integer, | intent(in), | contiguous | :: | nc(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set knot vectors, control points and weights for the NURBS volume object
Set control points and weights for the NURBS volume object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | knot1(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | knot2(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | knot3(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set NURBS volume using nodes of parameter space, degree, continuity, control points and weights
Set control points and weights for the NURBS volume object.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir1(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir2(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xth_dir3(:) | ||
integer, | intent(in), | contiguous | :: | degree(:) | ||
integer, | intent(in), | contiguous | :: | continuity1(:) | ||
integer, | intent(in), | contiguous | :: | continuity2(:) | ||
integer, | intent(in), | contiguous | :: | continuity3(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set Bezier or Rational Bezier volume using control points and weights
Set Bezier or Rational Bezier volume using control points and weights.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | nc(:) | ||
real(kind=rk), | intent(in), | contiguous | :: | Xc(:,:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set NURBS volume using degree, number of control points, control points and weights
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | degree(:) | ||
integer, | intent(in), | contiguous | :: | 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_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
real(kind=rk), | intent(in) | :: | radius1 | |||
real(kind=rk), | intent(in) | :: | radius2 | |||
real(kind=rk), | intent(in) | :: | length |
Set IGA element connectivity
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set connectivity for control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set connectivity for geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | contiguous | :: | elemConn(:,:) |
Set a half ring
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
real(kind=rk), | intent(in) | :: | radius1 | |||
real(kind=rk), | intent(in) | :: | radius2 | |||
real(kind=rk), | intent(in) | :: | length |
Set a hexahedron
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | L(:) | ||
integer, | intent(in), | contiguous | :: | nc(:) | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Wc(:) |
Set a ring
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | center(:) | ||
real(kind=rk), | intent(in) | :: | radius1 | |||
real(kind=rk), | intent(in) | :: | radius2 | |||
real(kind=rk), | intent(in) | :: | length |
Show the NURBS object using PyVista
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | 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_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | vec(:) |
Translate geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in) | :: | vec(:) |
Compute the basis functions of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
real(kind=rk), | intent(out), | allocatable | :: | Tgc(:) |
Compute the basis functions of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
real(kind=rk), | intent(out), | allocatable | :: | Tgc(:,:) |
Compute the second derivative of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | 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 second derivative of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
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 volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
real(kind=rk), | intent(in), | contiguous | :: | Xt(:) | ||
real(kind=rk), | intent(out), | allocatable | :: | dTgc(:,:) | ||
real(kind=rk), | intent(out), | optional, | allocatable | :: | Tgc(:) | |
integer, | intent(in), | optional | :: | elem(:) |
Compute the derivative of the NURBS volume
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(inout) | :: | this | |||
integer, | intent(in), | optional | :: | res1 | ||
integer, | intent(in), | optional | :: | res2 | ||
integer, | intent(in), | optional | :: | res3 | ||
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt1(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt2(:) | |
real(kind=rk), | intent(in), | optional, | contiguous | :: | Xt3(:) | |
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_volume), | intent(in) | :: | this |
Get i-th weight
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Get all control points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get i-th control point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Get i-th control point in a specific direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | dir |
Get all geometry points
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get i-th geometry point
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n |
Get i-th geometry point in a specific direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | n | |||
integer, | intent(in) | :: | dir |
Get degree of the NURBS volume in all directions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get degree of the NURBS volume in a specific direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get all knot vectors
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |
Get i-th knot value
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir | |||
integer, | intent(in) | :: | i |
Get number of control points in all directions
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this |
Get number of control points in a specific direction
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(nurbs_volume), | intent(in) | :: | this | |||
integer, | intent(in) | :: | dir |