You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.6 KiB

2 years ago
function [P,new_n_1,new_Xi_1,new_n_2,new_Xi_2] = Prolongation_Operator_2D(p_1,n_1,Xi_1,add_Xi_1,p_2,n_2,Xi_2,add_Xi_2)
% Prolongation_Operator_2D
% Written by Christopher Coley
% Last modified 1 Apr 15
%
% Creates the prolongation operator for 2D using B-splines
%
% Output:
% P - 2D prolongation operator
% new_n_1 - number of basis functions for the refined B-spline space in
% first dimension
% new_Xi_1 - univariate knot vector for the refined B-spline space in
% first
% dimension
% new_n_2 - number of basis functions for the refined B-spline space in
% second dimension
% new_Xi_2 - univariate knot vector for the refined B-spline space in second
% dimension
%
% Input:
% p_1 - polynomial degree of the original and refined B-spline curves in
% first dimension; scalar
% n_1 - number of basis functions for the original B-spline space in first
% dimension; scalar
% Xi_1 - univariate knot vector for the original B-spline space in first
% dimension; row vector
% add_Xi_1 - knots to be added in first dimension; row vector
% p_2 - polynomial degree of the original and refined B-spline curves in
% second dimension; scalar
% n_2 - number of basis functions for the original B-spline space in second
% dimension; scalar
% Xi_2 - univariate knot vector for the original B-spline space in second
% dimension; row vector
% add_Xi_2 - knots to be added in second dimension; row vector
[P1,new_n_1,new_Xi_1] = Prolongation_Operator_1D(p_1,n_1,Xi_1,add_Xi_1);
[P2,new_n_2,new_Xi_2] = Prolongation_Operator_1D(p_2,n_2,Xi_2,add_Xi_2);
P = kron(P1,P2);