-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathparser_inp.py
36 lines (34 loc) · 1021 Bytes
/
parser_inp.py
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
import numpy as np
import os
import tqdm
import FEM
STR_NODE = "*Node"
STR_ELEMENT = "*Element"
FILENAME = "NO_TAPON.txt"
nodes = []
elements = []
with open(FILENAME, encoding="utf-8") as f:
line = f.readline()
while not STR_NODE in line:
line = f.readline()
pb = tqdm.tqdm()
line = f.readline()
while not STR_ELEMENT in line:
nodes.append([float(i) for i in line.split(",")[1:]])
line = f.readline()
pb.update()
pb = tqdm.tqdm()
line = f.readline()
while not "*" in line and line != "":
cone = [int(i)-1 for i in line.split(",")[1:]]
elements.append(cone)
line = f.readline()
pb.update()
nel = len(elements)
geo = FEM.Geometry3D(elements, nodes, ["TE2V"]*nel, 3, fast=True)
O = FEM.Elasticity(geo, 1, 0.3, 0.1)
U = np.loadtxt(f"U_{FILENAME.split('.')[0]}_PARSED.txt")
O.solver.solutions = [U]
O.solver.solutions_info = [{'solver-type': "ABAQUS!"}]
O.solver.setSolution()
O.exportJSON(f"AYO_{FILENAME.split('.')[0]}.json")