function [phi,dphix,dphiy]=CreateNURBSBasis2D(mesh_file,p,yi,xi,type_nurbs,isclosed,nband,sizeim) if nargin < 5 , type_nurbs=1;end if nargin < 6 , isclosed=[0,0];end if nargin < 7 , nband=[];end load(mesh_file,'xo','yo','uo','vo'); if ~isempty(nband) assert(nargin==8); yi=yi(nband); xi=xi(nband); end if numel(p)==1 p=[p,p]; end npt=length(yi(:)); indp=zeros((p(1)+1)*npt,1); indn=zeros((p(1)+1)*npt,1); val=zeros((p(1)+1)*npt,1); dval=zeros((p(1)+1)*npt,1); if type_nurbs Nny=length(yo)+p(1)-1; else Nny=length(yo)*p(1)-(p(1)-1); end nel=0; toto=1; Nelems=length(yo)-1; for iy=1:Nelems if iy==Nelems found=find((yi(:)>=yo(iy))&(yi(:)<=yo(iy+1))); else found=find((yi(:)>=yo(iy))&(yi(:)=xo(iy))&(xi(:)<=xo(iy+1))); else found=find((xi(:)>=xo(iy))&(xi(:)