start_time = datetime.now() name = raw_input('Enter the job name: ') # MODEL ASSEMBLY # # Reads the model nodes, mats, elements, loads = pre.readin() # Activate to generate echo files #pre.echomod(nodes, mats, elements, loads) # Retrieves problem parameters ne, nn, nm, nl, COORD = pre.proini(nodes, mats, elements, loads) # Counts equations and creates BCs array IBC neq, IBC = ass.eqcounter(nn, nodes) # Computes assembly operator DME, IELCON = ass.DME(IBC, ne, elements) # Assembles Global Stiffness Matrix KG KG = ass.matassem(IBC, mats, elements, nn, ne, neq, COORD, DME, IELCON) # Assembles Global Rigth Hand Side Vector RHSG RHSG = ass.loadasem(loads, IBC, neq, nl) # SYSTEM SOLUTION # # Solves the system UG = np.linalg.solve(KG, RHSG) print(np.allclose(np.dot(KG, UG), RHSG)) end_time = datetime.now() print('Duration for system solution: {}'.format(end_time - start_time)) # POST-PROCCESSING # start_time = datetime.now() # Sets axis for visualization window
#%% # MODEL ASSEMBLY # # Reads the model nodes, mats, elements, loads = pre.readin(folder=folder) if echo == "Yes": pre.echomod(nodes, mats, elements, loads, folder=folder) # Retrieves problem parameters ne, nn, nm, nl, COORD = pre.proini(nodes, mats, elements, loads) # Counts equations and creates BCs array IBC neq, IBC = ass.eqcounter(nn, nodes) # Computes assembly operator DME, IELCON = ass.DME(IBC, ne, elements) # Assembles Global Stiffness Matrix KG KG = ass.matassem(IBC, mats, elements, nn, ne, neq, COORD, DME, IELCON) # Assembles Global Rigth Hand Side Vector RHSG RHSG = ass.loadasem(loads, IBC, neq, nl) #%% # SYSTEM SOLUTION # # Solves the system UG = np.linalg.solve(KG, RHSG) if not(np.allclose(np.dot(KG, UG), RHSG)): print("The system is not in equilibrium!") end_time = datetime.now() print('Duration for system solution: {}'.format(end_time - start_time)) #%% # POST-PROCCESSING