本文整理汇总了Python中oricrete.folding.YoshimuraCreasePattern.cnstr_rhs[-1]方法的典型用法代码示例。如果您正苦于以下问题:Python YoshimuraCreasePattern.cnstr_rhs[-1]方法的具体用法?Python YoshimuraCreasePattern.cnstr_rhs[-1]怎么用?Python YoshimuraCreasePattern.cnstr_rhs[-1]使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类oricrete.folding.YoshimuraCreasePattern
的用法示例。
在下文中一共展示了YoshimuraCreasePattern.cnstr_rhs[-1]方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: cp04
# 需要导入模块: from oricrete.folding import YoshimuraCreasePattern [as 别名]
# 或者: from oricrete.folding.YoshimuraCreasePattern import cnstr_rhs[-1] [as 别名]
def cp04(L_x = 4, L_y = 4, n_x = 2, n_y = 4, n_steps = 100):
cp = YoshimuraCreasePattern(n_steps = n_steps,
L_x = L_x,
L_y = L_y,
n_x = n_x,
n_y = n_y,
show_iter = False,
MAX_ITER = 500)
n_h = cp.N_h
n_i = cp.N_i
n_v = cp.N_v
z_nodes = n_h[(0, -1), :].flatten()
z_cnstr = [[(n, 2, 1.0)] for n in z_nodes]
y_links = []
for n_arr in n_h.T:
for n in n_arr[1:]:
y_links.append([(n_arr[0], 1, 1.0), (n, 1, -1.0)])
x_cnstr = [[(n_h[0, 0], 0, 1.0)]]
y_cnstr = [[(n_h[0, -1], 1, 1.0)],
[(n_h[0, 0], 1, 1.0)]]
cp.cnstr_lhs = z_cnstr + y_links + x_cnstr + y_cnstr
# lift node 0 in z-axes
cp.cnstr_rhs = np.zeros((len(cp.cnstr_lhs),), dtype = float)
cp.cnstr_rhs[-1] = 3.9
return cp
示例2: cp05
# 需要导入模块: from oricrete.folding import YoshimuraCreasePattern [as 别名]
# 或者: from oricrete.folding.YoshimuraCreasePattern import cnstr_rhs[-1] [as 别名]
def cp05(L_x = 4, L_y = 4, n_x = 2, n_y = 4,
n_steps = 100, skew_coeff = 0.0):
'''Exploit symmetric constraints
'''
cp = YoshimuraCreasePattern(n_steps = n_steps,
L_x = L_x,
L_y = L_y,
n_x = n_x,
n_y = n_y,
show_iter = False,
MAX_ITER = 500)
n_h = cp.N_h
n_i = cp.N_i
n_v = cp.N_v
z_nodes = n_h[(0, -1), :].flatten()
z_cnstr = [[(n, 2, 1.0)] for n in z_nodes]
y_links = []
for n_arr in n_h[:, (0, -1)].T:
for idx, n in enumerate(n_arr[1:]):
n_x = len(n_arr)
coeff = skew_coeff * float(idx + 1) / float(n_x)
y_links.append([(n_arr[0], 1, 1.0 - coeff), (n, 1, -1.0)])
for n_arr in n_h[:, 1:-1].T:
y_links.append([(n_arr[0], 1, 1.0), (n_arr[-1], 1, -1.0)])
x_links = []
z_links = []
# for n0, n1 in zip(n_h[1:-1, 0], n_h[1:-1, -1]):
# x_links.append([(n0, 0, 1.0), (n1, 0, 1.0)])
# z_links.append([(n0, 2, 1.0), (n1, 2, -1.0)])
for n in n_v[0, 1:]:
z_links.append([(n_v[0, 0], 2, 1.0), (n, 2, -1.0)])
n_h_idx = n_y / 4
x_cnstr = [[(n_h[0, n_h_idx], 0, 1.0)]]
y_cnstr = [[(n_h[0, n_h_idx], 1, 1.0)]]
cntrl = [[(n_h[-1, n_h_idx], 0, 1.0)]]
#cntrl = [[(n_h[-1, 0], 1, 1.0)]]
cp.cnstr_lhs = z_cnstr + x_links + y_links + z_links + x_cnstr + y_cnstr + cntrl
# lift node 0 in z-axes
cp.cnstr_rhs = np.zeros((len(cp.cnstr_lhs),), dtype = float)
cp.cnstr_rhs[-1] = -L_x * 0.1
return cp
示例3: create_cp_dc
# 需要导入模块: from oricrete.folding import YoshimuraCreasePattern [as 别名]
# 或者: from oricrete.folding.YoshimuraCreasePattern import cnstr_rhs[-1] [as 别名]
def create_cp_dc(L_x = 4, L_y = 4, n_x = 1, n_y = 2,
n_steps = 100):
'''Create scalable rhombus crease pattern with dof_constraints
'''
cp = YoshimuraCreasePattern(n_steps = n_steps,
L_x = L_x,
L_y = L_y,
n_x = n_x,
n_y = n_y,
show_iter = False,
MAX_ITER = 500)
n_h = cp.N_h
n_i = cp.N_i
n_v = cp.N_v
n_h_idx = n_y / 4
x_links = []
y_links = []
z_links = []
z_nodes = n_h[(0, 0, -1, -1), (0, -1, -1, 0)].flatten()
print 'z_nodes', z_nodes
#z_cnstr = [[(n, 2, 1.0)] for n in z_nodes]
x_cnstr = [[(n_h[0, 0], 0, 1.0)]]
y_cnstr = [[(n_h[0, 0], 1, 1.0)]]
z_cnstr = [[(n_h[0, 0], 2, 1.0)]]
for n_arr in n_h[:, (0, -1)].T:
for idx, n in enumerate(n_arr[1:]):
n_x = len(n_arr)
y_links.append([(n_arr[0], 1, 1.0), (n, 1, -1.0)])
for n in n_h[0, 1:]:
z_links.append([(n_h[0, 0], 2, 1.0), (n, 2, -1.0)])
x_links.append([(n_h[0, 0], 0, 1.0), (n, 0, -1.0)])
#x_links.append([(n_h[0, -1], 0, 1.0), (n_h[0, -1], 1, -0.5)])
for n in n_v[-1, 1:]:
x_links.append([(n_v[-1, 0], 0, 1.0), (n, 0, -1.0)])
for n0, n1 in zip(n_v[0, :], n_v[-1, :]):
z_links.append([(n0, 2, 1.0), (n1, 2, -1.0)])
#cntrl = [[(n_h[-1, -1], 1, 1.0)]]
cntrl = [[(n_h[-1, 1], 0, 1.0)]]
print 'x_cnstr', len(x_cnstr)
print 'y_cnstr', len(y_cnstr)
print 'z_cnstr', len(z_cnstr)
print 'x_links', len(x_links)
print 'y_links', len(y_links)
print 'z_links', len(z_links)
cp.cnstr_lhs = z_cnstr + x_links + y_links + z_links + x_cnstr + y_cnstr + cntrl
#cp.cnstr_lhs = z_cnstr
# lift node 0 in z-axes
cp.cnstr_rhs = np.zeros((len(cp.cnstr_lhs),), dtype = float)
cp.cnstr_rhs[-1] = -L_x * 0.34
# cp.cnstr_rhs[-1] = -L_y * 0.9999
return cp