Defines a 1-D profile in rho^2 via B-Spline knots and coefficients
initialize the rProfile of type bspline
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | knots(:) |
knots of the B-Spline with repeated start and end points |
||
| real(kind=wp), | intent(in) | :: | coefs(:) |
B-Spline coefficients |
self
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | n_coefs | ||||
| real(kind=wp), | public, | ALLOCATABLE | :: | coefs(:) | |||
| integer, | public | :: | n_knots |
number of knots, including repeated edge knots |
|||
| integer, | public | :: | deg | = | 0 | ||
| real(kind=wp), | public, | ALLOCATABLE | :: | knots(:) |
knot values, includinng edge knots |
||
| class(sll_c_bsplines), | public, | ALLOCATABLE | :: | bspl |
b-spline class |
| public function bsplProfile_new (knots, coefs) | initialize the rProfile of type bspline |
| final :: bsplProfile_free |
| procedure, public :: eval_at_rho => rProfile_eval_at_rho | |
| procedure, public :: rProfile_drho2 | |
| procedure, public :: rProfile_drho3 | |
| procedure, public :: rProfile_drho4 | |
| procedure, public :: eval_at_rho2 => bsplProfile_eval_at_rho2 | |
| procedure, public :: antiderivative => bsplProfile_antiderivative |
initialize the rProfile of type bspline
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=wp), | intent(in) | :: | knots(:) |
knots of the B-Spline with repeated start and end points |
||
| real(kind=wp), | intent(in) | :: | coefs(:) |
B-Spline coefficients |
self
evaluate the n-th derivative of the bsplProfile at position s
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_rProfile_bspl), | intent(in) | :: | sf |
self |
||
| real(kind=wp), | intent(in) | :: | rho2 |
evaluation point in the toroidal flux coordinate (rho2=phi/phi_edge= rhopos^2) |
||
| integer, | intent(in), | optional | :: | deriv |
derivative of bspline(rho^2) in rho^2 |
get the exact spline antiderivative, with respect to rho2 the knotspan is increased by an extra multiplicity on both ends, and the new coefficients are computed as beta(i) = beta(i-1) + alpha(i)*(t(i+degree+1)-t(i))/(degree+1) From deBoor, "A practical guide to Splines", p.128
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_rProfile_bspl), | intent(in) | :: | sf |
self |
finalize the type rProfile
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(t_rProfile_bspl), | intent(inout) | :: | sf |
self |