Пример #1
0
    def evaluateBases(self, surf, u, v, uder=0, vder=0):
        """ Return matrix that multiples with C to give n points 
        corresponding to (s,u,v).

        Input

        surf: integer(n)
            0-based surface index

        u: double(n)
            Parametric coordinate [0,1]

        v: double(n)
            Parametric coordinate [0,1]

        Output

        B: double(n,nC)
            Matrix whose rows correspond to the requested points

        """

        nB = PUBSlib.evaluatebnnz(surf.shape[0], self.nsurf, self.nedge, self.ngroup, self.surf_edge, self.edge_group, self.group_k, surf+1)
        Ba, Bi, Bj = PUBSlib.evaluatebases(uder, vder, surf.shape[0], nB, self.nD, self.nsurf, self.nedge, self.ngroup, self.nvert, self.surf_vert, self.surf_edge, self.edge_group, self.group_k, self.group_m, self.group_d, self.surf_index_C, self.edge_index_C, self.knot_index, surf+1, u, v)
        B = scipy.sparse.csc_matrix((Ba,(Bi,Bj)),shape=(surf.shape[0],self.nC))
        return B
Пример #2
0
    def evaluateBases(self, surf, u, v, uder=0, vder=0):
        """ Return matrix that multiples with C to give n points 
        corresponding to (s,u,v).

        Input

        surf: integer(n)
            0-based surface index

        u: double(n)
            Parametric coordinate [0,1]

        v: double(n)
            Parametric coordinate [0,1]

        Output

        B: double(n,nC)
            Matrix whose rows correspond to the requested points

        """

        nB = PUBSlib.evaluatebnnz(surf.shape[0], self.nsurf, self.nedge,
                                  self.ngroup, self.surf_edge, self.edge_group,
                                  self.group_k, surf + 1)
        Ba, Bi, Bj = PUBSlib.evaluatebases(
            uder, vder, surf.shape[0], nB, self.nD, self.nsurf, self.nedge,
            self.ngroup, self.nvert, self.surf_vert, self.surf_edge,
            self.edge_group, self.group_k, self.group_m, self.group_d,
            self.surf_index_C, self.edge_index_C, self.knot_index, surf + 1, u,
            v)
        B = scipy.sparse.csc_matrix((Ba, (Bi, Bj)),
                                    shape=(surf.shape[0], self.nC))
        return B