Example #1
0
Nik_u = np.zeros((N, 1))
Nik_v = np.zeros((M, 1))

# 1. u方向细分
X_M_piece = np.zeros((M, piece_u))  # 沿着u方向的网格
Y_M_piece = np.zeros((M, piece_u))
Z_M_piece = np.zeros((M, piece_u))
if FLAG_U == 1:
    NodeVector_u = np.linspace(0, 1, n + k + 2)  # 均匀B样条的u向节点向量
    u = np.linspace(k / (n + k + 1), (n + 1) / (n + k + 1),
                    piece_u)  # u向节点分成若干份

    for i in range(M):
        for j in range(piece_u):
            for ii in range(n + 1):
                Nik_u[ii][0] = BaseFunction(ii, k, u[j], NodeVector_u)
            X_M_piece[i][j] = np.dot(X[i], Nik_u)
            Y_M_piece[i][j] = np.dot(Y[i], Nik_u)
            Z_M_piece[i][j] = np.dot(Z[i], Nik_u)
if FLAG_U == 2:
    NodeVector_u = U_quasi_uniform(n, k)  # 准均匀B样条的u向节点向量
    u = np.linspace(0, 1 - 0.0001, piece_u)  # u向节点分成若干份

    for i in range(M):
        for j in range(piece_u):
            for ii in range(n + 1):
                Nik_u[ii][0] = BaseFunction(ii, k, u[j], NodeVector_u)
            X_M_piece[i][j] = np.dot(X[i], Nik_u)
            Y_M_piece[i][j] = np.dot(Y[i], Nik_u)
            Z_M_piece[i][j] = np.dot(Z[i], Nik_u)
    print(Nik_u)
Example #2
0
from LinearEquationsSystem import LinearEquationsSystem
from Solution import Solution
from myFunctions import printVector


# 2n+1 piramid wzdłuż każdej osi
n = 1

# Lista funkcji bazowych -> piramid
eArr = []

# pomija piramidy na brzegu Dirichleta
#   piramidy o środkach poniżej osi OX
for j in range(-n, 0):
    for i in range(-n, n+1):
        eArr.append( BaseFunction(n, i, j) )
#   piramidy o środkach powyżej osi OX, na lewo od osi OY
for j in range(0, n+1):
    for i in range(-n, 0):
        eArr.append( BaseFunction(n, i, j) )


# # dopisuje piramidy na brzegu Dirichleta
# #   na środku układu
# eArr.append( BaseFunction(n, 0, 0) )
# #   wzdłuż osi OY
# for i in range(1, n+1):
#     eArr.append( BaseFunction(n, 0, i) )
# #   wzdłuż osi OX
# for i in range(1, n+1):
#     eArr.append( BaseFunction(n, i, 0) )