Newer
Older
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
import json
from copy import deepcopy
import numpy as np
template_file = "./json/template.json"
output_file = "./json/dynamicVal16.json"
with open(template_file) as f:
data = json.load(f)
setup = data["setup"]
t_node = deepcopy(setup["nodes"][0])
t_edge = deepcopy(setup["edges"][0])
L = 1
w = 0.01
h = 0.01
A = w * h
E = 69e9 # Pa
rho = 2700
n_elem = 20
setup["loads"] = []
setup["fixedDisplacements"] = []
setup["numTimeSteps"] = 3000000
setup["maxNumFiles"] = 1200
setup["poisson"] = False
setup["scale"] = 1
setup["linear"] = True
setup["globalDamping"] = 0
setup["thermal"] = False
t_node["material"] = {
"cTE": 0,
"poissonRatio": 0,
"density": rho,
"area": A,
"stiffness": E,
}
t_edge["material"] = t_node["material"]
nodes_x = np.linspace(0, L, n_elem + 1)
nodes = []
for i, x in enumerate(nodes_x):
t_node["id"] = "n{0}".format(i)
t_node["degrees_of_freedom"] = [
0 + 6 * i,
1 + 6 * i,
2 + 6 * i,
3 + 6 * i,
4 + 6 * i,
5 + 6 * i,
]
if i == 0:
t_node["restrained_degrees_of_freedom"] = [True, True, True, True, True, True]
else:
t_node["restrained_degrees_of_freedom"] = [
False,
False,
False,
False,
False,
False,
]
t_node["position"]["x"] = x
t_node["position"]["y"] = 0
t_node["position"]["z"] = 0
nodes.append(deepcopy(t_node))
setup["ndofs"] = 6 * (n_elem + 1)
edges = []
for i in range(n_elem):
t_edge["id"] = "e{0}".format(i)
t_edge["source"] = i + 1
t_edge["target"] = i
edges.append(deepcopy(t_edge))
setup["nodes"] = nodes
setup["edges"] = edges
with open(output_file, "w") as f:
json.dump(data, f)