import numpy as np E = 210e6 G = 84e6 A =0.02 I = [5e-5,10e-5,20e-5] dens =2 n0 =Node(0,0,0) n1 =Node(0,4,0) n2 =Node(4,4,0) n3 =Node(0,4,0) n4 =Node(0,0,5) n5 =Node(0,4,5) n6 =Node(4,4,5) n7 =Node(0,4,5) n8 =Node(1,0,5) n9 =Node(3,0,5) nds1=[n0,n3,n2,n1] nds2=[n4,n7,n6,n5] nds3=[n4,n8,n9,n7,n6,n5 ] els=[] for nd in pair_wise(nds3,True): els.append(Beam3D11(nd, E, G, A, I, dens)) for i in range(4): els.append(Beam3D11((nds1[i],nds2[i]),E,G,A,I,dens)) s= System() s.add_nodes(nds1, nds3) s.add_elements(els) s.add_fixed_sup([nd.ID for nd in nds1]) #求解函数的参数改为自定义函数名 s.solve(model = "dynamic_eigen_model") print(s.freq)
import numpy as np from feon.tools import pair_wise if __name__ == "__main__": E = 210e6 P = 18 X = np.linspace(0, 3, 6) _X = X - 0.3 A = [0.002 + 0.01 * val / 3. for val in _X[1:]] A.reverse() nds = [Node(x, 0) for x in X] els = [] count = 0 for nd in pair_wise(nds): els.append(Link1D11(nd, E, A[count])) count += 1 s = System() s.add_nodes(nds) s.add_elements(els) s.add_fixed_sup(0) s.add_node_force(nds[-1].ID, Fx=18) s.solve() import matplotlib.pyplot as plt from matplotlib import cm stress = np.array([el.sx[0][0] for el in els]) a = np.zeros((5, 5))
if __name__ == "__main__": #material property E = 210e6 A1 = 31.2e-2 A2 = 8.16e-2 #create nodes and elements nds1 = [] nds2 = [] for i in range(13): nds1.append(Node(i,0)) for i in range(11): nds2.append(Node(i+1,-1)) els = [] for e in pair_wise(nds1): els.append(Link2D11((e[0],e[1]),E,A1)) for e in pair_wise(nds2): els.append(Link2D11((e[0],e[1]),E,A1)) for i in range(6): els.append(Link2D11((nds1[i],nds2[i]),E,A2)) for i in range(6): els.append(Link2D11((nds2[i+5],nds1[i+7]),E,A2)) for i in range(11): els.append(Link2D11((nds1[i+1],nds2[i]),E,A2)) #create system s = System()
if __name__ == "__main__": E1 = 2.85e6 E2 = 200e6 k = 15000 I = 0.0427 A = 0.8 A1 = 0.003 ka = 0.6 nds1 = [Node(0, -i) for i in xrange(10)] nds2 = [Node(0, -(i + 20) * 0.5) for i in xrange(11)] nds3 = [Node(-0.5, -(i + 20) * 0.5) for i in xrange(11)] nds4 = [Node(-1.5, -2), Node(-1.5, -6)] els = [] for nd in pair_wise(nds1 + nds2): els.append(Beam2D11(nd, E1, A, I)) for i in xrange(11): els.append(Spring2D11((nds2[i], nds3[i]), k)) els.append(Link2D11((nds4[0], nds1[2]), E2, A1)) els.append(Link2D11((nds4[1], nds1[6]), E2, A1)) s = System() s.add_nodes(nds1, nds2, nds3, nds4) s.add_elements(els) nid1 = [nd.ID for nd in nds3] nid2 = [nd.ID for nd in nds4] s.add_fixed_sup(nid1, nid2)