-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInput.py
More file actions
122 lines (94 loc) · 5.53 KB
/
Copy pathInput.py
File metadata and controls
122 lines (94 loc) · 5.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
from config import config
from Model import Model
from StructuralElements import Node, Couple_Nodes, Member
from Loads import NeumanBC
from FirstOrderResponse import FirstOrderGlobalResponse, FirstOrderMemberResponse, FirstOrderNodalResponse
from SecondOrderResponse import SecondOrderGlobalResponse, SecondOrderMemberResponse
from DynamicResponse import DynamicGlobalResponse
from Comparision import Comparision
from Sensitivity import Senstivity, SecondOrderSensitivity
from FiniteElementDivisor import divide_into_finite_elements
from Functions import print_class_Objects
#Model Parts - Basic essential for building a model
config.set_FEDivision(1000)
Points = [
Node(Node_Number=1, xcoordinate=0, ycoordinate=0, Support_Condition="Hinged Support"),
#Node(Node_Number=2, xcoordinate=5, ycoordinate=0, Support_Condition="Hinge Joint"),
Node(Node_Number=2, xcoordinate=0, ycoordinate=5, Support_Condition="Rigid Joint"),
Node(Node_Number=3, xcoordinate=5, ycoordinate=5, Support_Condition="Rigid Joint"),
Node(Node_Number=4, xcoordinate=5, ycoordinate=0, Support_Condition="Hinged Support")
]
"""Coupling = [
Couple_Nodes(Main_Node=Points[1], Dependent_Node=Points[2], xDof=True, yDof=True, RotationDof=False),
]"""
Members = [
Member(Beam_Number=1, Start_Node=Points[0], End_Node=Points[1], Area=0.09, Youngs_Modulus=200000000, Moment_of_Inertia=0.000675),
Member(Beam_Number=2, Start_Node=Points[1], End_Node=Points[2], Area=0.09, Youngs_Modulus=200000000, Moment_of_Inertia=0.000675),
Member(Beam_Number=3, Start_Node=Points[2], End_Node=Points[3], Area=0.09, Youngs_Modulus=200000000, Moment_of_Inertia=0.000675),
Member(Beam_Number=4, Start_Node=Points[0], End_Node=Points[2], Area=0.09, Youngs_Modulus=200000000, Moment_of_Inertia=0.000675),
] # square cross section - 0.3 x 0.3, units N, m
Loads = [
#NeumanBC(type="UDL", Magnitude=10, Distance1= 2, Distance2= 6, AssignedTo="Member 1", Members = Members),
NeumanBC(type="PL", Magnitude=-156000, Distance1= 2.5, AssignedTo="Member 2", Members = Members),
#NeumanBC(type="NL", Magnitude=-10, AssignedTo="Node 2", Members = Members, Nodes = Points)
]
Points, Members, Loads = divide_into_finite_elements(Points, Members, Loads, 5)
#main Model part - Main mode part includes sub model part
Model1 = Model(Points = Points, Members = Members, Loads = Loads)
GlobalRes1 = FirstOrderGlobalResponse(Points = Points, Members = Members, Loads = Loads)
NodalRes1 = FirstOrderNodalResponse(Points = Points, Members = Members, Loads = Loads)
MemberRes1 = FirstOrderMemberResponse(Points = Points, Members = Members, Loads = Loads)
SecondOrderResponse1 = SecondOrderGlobalResponse(Points = Points, Members = Members, Loads = Loads)
SecondOrderMemberResponse1 = SecondOrderMemberResponse(Points = Points, Members = Members, Loads = Loads)
Comparision1 = Comparision(MainModel = MemberRes1, Model2 = SecondOrderMemberResponse1)
DynamicResponse1 = DynamicGlobalResponse(Points = Points, Members = Members, Loads = Loads)
Sensitivity1 = SecondOrderSensitivity(Points = Points, Members = Members, Loads = Loads)
Model1.PlotGlobalModel()
SecondOrderResponse1.PlotEigenMode(EigenModeNo = 1, Solver="eigsh", scale_factor = 1)
#SecondOrderResponse1.PlotSecondOrderLoadDisplacementCurve(NodeNumber = 10, Direction = "y", LoadFactor = None, division =20)
Comparision1.PlotLoadDisplacementCurveComparison(NodeNumber = 10, Direction = "y", division =20)
print("Completed Necessary")
print("Starting Additional")
#print("unconstrained dof",Model1.UnConstrainedDoF())
#print("constrained dof",Model1.ConstrainedDoF())
#print("dof number",Members[1].DoFNumber())
#print("dof number",Members[2].DoFNumber())
#print("Force Vector",Model1.ForceVector())
#MemberRes1.PlotMemberBMD(2)
#SecondOrderMemberResponse1.PlotMemberBMD(2)
#MemberRes1.PlotGlobalSFD()
#SecondOrderMemberResponse1.PlotGlobalSFD()
#MemberRes1.PlotGlobalDeflection()
#SecondOrderMemberResponse1.PlotMemberDeflection(1)
#print(SecondOrderResponse1.BucklingEigenLoad())
#SecondOrderMemberResponse1.PlotGlobalDeflection()
Comparision1.PlotGlobalDeflectionComparison(scale_factor = 1)
print(SecondOrderResponse1.BucklingEigenLoad()[0])
#SecondOrderMemberResponse1.PlotMemberBMD(1)
#mf = SecondOrderMemberResponse1.MemberForceLocal(1, All = True)
#print(Model1.ForceVector())
#print(GlobalRes1.DisplacementVectorDict())
#print(MemberRes1.MemberForceLocal(1,All = True))
#MemberRes1.PlotMemberBMD(1)
#MemberRes1.PlotMemberSFD(1)
#SecondOrderMemberResponse1.PlotMemberBMD(1)
#print(MemberRes1.MemberForceLocal(1, All = True))
#print(SecondOrderMemberResponse1.MemberForceLocal(1, All = True))
#MemberRes1.PlotGlobalBMD(show_structure=True, scale_factor=2)
#MemberRes1.PlotGlobalSFD(show_structure=True, scale_factor=2)
#SecondOrderMemberResponse1.PlotGlobalBMD(show_structure=True, scale_factor=2)
#SecondOrderMemberResponse1.PlotGlobalSFD(show_structure=True)
#MemberRes1.PlotGlobalDeflection()
#print(SecondOrderResponse1.BucklingEigenLoad())
#SecondOrderResponse1.PlotEigenMode(EigenModeNo = 3, Solver="eigsh", scale_factor = 1)
#MemberRes1.PlotGlobalDeflection()
#print(SecondOrderResponse1.SecondOrderDisplacementVector(10))
#SecondOrderMemberResponse1.PlotMemberBMD(1)
#SecondOrderMemberResponse1.PlotGlobalBMD(show_structure=True)
#mf = SecondOrderMemberResponse1.MemberForceLocal(1, All = True)
#print("MemNo",MemNo,SecondOrderMemberResponse1.MemberBMD(MemNo, mf[i]))
#Comparision1.PlotGlobalBMDComparison()
#MemberRes1.PlotGlobalDeflection()
#print(SecondOrderResponse1.MemberEigenMode(11, EigenModeNo = 1, scale_factor = 1000000))
#print("EigenFrequency", DynamicResponse1.EigenFrequency())
#DynamicResponse1.PlotDynamicEigenMode(1)