Esempio n. 1
0
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)
Esempio n. 2
0
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))
Esempio n. 3
0
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()
Esempio n. 4
0
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)