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)