ImmersedSplines
Index
ImmersedSplines.ClosestExtensionArray
ImmersedSplines.ClosestExtensionArray
ImmersedSplines.GeneratePerimeter
ImmersedSplines.IPerm
ImmersedSplines.ImmersedQuadRule
ImmersedSplines.active_splines
ImmersedSplines.active_splines
ImmersedSplines.active_splines
ImmersedSplines.compute_extension_coefficients
ImmersedSplines.element_is_inside
ImmersedSplines.find_extension_indices
ImmersedSplines.find_first_active_element
ImmersedSplines.point_is_inside
ImmersedSplines.spline_extension_operator
ImmersedSplines.active_splines
— Methodactive_splines(U::TensorProduct{2, <:SplineSpace}, E::Array)
Determine the active B-splines and boundary B-splines given a distance function ϕ.
A[k] == 0 => no physical elements in support of the function A[k] == 1 => boundary function with a physical cut element in its support A[k] == 2 => at least one physical element is fully inside support A[k] == 3 => all physical elements are fully inside support
ImmersedSplines.active_splines
— Methodactive_splines(U::TensorProduct{Dim, <:SplineSpace}, E::Array)
Determine the active B-splines and boundary B-splines given a distance function ϕ.
A[k] == 0 => no physical elements in support of the function A[k] == 1 => boundary function with a physical cut element in its support A[k] == 2 => at least one physical element is fully inside support A[k] == 3 => all physical elements are fully inside support
ImmersedSplines.active_splines
— Methodactive_splines(U::TensorProduct{2, <:SplineSpace}, E::Array)
Determine the active B-splines and boundary B-splines given a distance function ϕ.
A[k] == 0 => no physical elements in support of the function A[k] == 1 => boundary function with a physical cut element in its support A[k] == 2 => at least one physical element is fully inside support A[k] == 3 => all physical elements are fully inside support
ImmersedSplines.compute_extension_coefficients
— Methodcompute_extension_coefficients(p, kts, span, k)
Compute the extension coefficients using dual functionals. This works for general non-uniform knot vectors and is based on the paper [Höllig, Klaus, and Ulrich Reif. "Nonuniform web-splines." Computer Aided Geometric Design 20, no. 5 (2003): 277-294.]
ImmersedSplines.element_is_inside
— Methodelementisinside(Y::Matrix{Bool})
Return a boolean array that specifies whether an element is inside or outside, respectively
ImmersedSplines.find_extension_indices
— Methodfind_extension_indices(active_functions, gperm, mi)
Find the extension indices that are closest
to the boundary function with CartesianIndex mi.
ImmersedSplines.find_first_active_element
— Methodfind_extension_indices(active_functions, gperm, mi)
Find the extension indices that are closest
to the boundary function with CartesianIndex mi.
ImmersedSplines.point_is_inside
— Methodpointisinside(phi, partition::CartesianProduct)
Return a boolean array that specifies whether a point is inside or outside, respectively
ImmersedSplines.spline_extension_operator
— Methodspline_extension_operator(U::TensorProduct{2, <:SplineSpace}, F)
Compute an extension operator that stabilizes the splinespace according to the definition of [Höllig, Klaus, Ulrich Reif, and Joachim Wipper. "Weighted extended B-spline approximation of Dirichlet problems." SIAM Journal on Numerical Analysis 39, no. 2 (2001): 442-462.]
ImmersedSplines.ClosestExtensionArray
— TypeClosestExtensionArray(F, U::TensorProduct{Dim,<:SplineSpace})
Defines a closest
index array, according to the definition of [Höllig, Klaus, Ulrich Reif, and Joachim Wipper. "Weighted extended B-spline approximation of Dirichlet problems." SIAM Journal on Numerical Analysis 39, no. 2 (2001): 442-462.]
ImmersedSplines.ClosestExtensionArray
— MethodClosestExtensionArray(F, U::TensorProduct{Dim,<:SplineSpace})
Computes a closest
index array, according to the definition of [Höllig, Klaus, Ulrich Reif, and Joachim Wipper. "Weighted extended B-spline approximation of Dirichlet problems." SIAM Journal on Numerical Analysis 39, no. 2 (2001): 442-462.]
ImmersedSplines.GeneratePerimeter
— TypeGeneratePerimeter{Dim,Indices}
Datastructure that allows iteration over active neighborhoods of boundary functions
ImmersedSplines.IPerm
— TypeIPerm{Dim,Indices}
Iterator that returns active neighborhoods around a B-spline.
ImmersedSplines.ImmersedQuadRule
— TypeImmersedQuadRule(map::AlgoimMapping, xa::Real, ya::Real, xb::Real, yb::Real, qo::Int64)
Compute a algoim quadrature rule in bounding box [xa, ya] × [xb, yb] based on a Gauss-Legendre rule of qo
points.