#Como rodar: python3 main.py from funcoesTermosol import importa, geraSaida from matrizes import matriz_restricoes, matriz_elemento import numpy as np from solver import solver_gauss from math import * numero_nos, matriz_nos, numero_elementos, matriz_conexoes, numero_forcas, vetor_forcas, numero_restricoes, vetor_restricoes = importa( 'grupo4.xlsx') ke = np.zeros((numero_nos * 2, numero_nos * 2)) for conexoes in matriz_conexoes: no_1 = int(conexoes[0]) - 1 grau_0 = no_1 * 2 grau_1 = no_1 * 2 + 1 no_2 = int(conexoes[1]) - 1 grau_2 = no_2 * 2 grau_3 = no_2 * 2 + 1 x_inicio = matriz_nos[0][no_1] y_inicio = matriz_nos[1][no_1] x_fim = matriz_nos[0][no_2] y_fim = matriz_nos[1][no_2] E = conexoes[2] A = conexoes[3] matriz = matriz_elemento(x_inicio, x_fim, y_inicio, y_fim, E, A)
import funcoesTermosol as ft from ponte import Ponte from viga import Viga import numpy as np p = 0 nn, N, nm, Inc, nc, F, nr, R = ft.importa("ponte_imortal.xlsx") if p: ft.plota_ponte(N, Inc) quant_nos = nn list_nodes = [[N[0][i], N[1][i]] for i in range(N.shape[1])] list_A = [i[3] for i in Inc] list_E = [i[2] for i in Inc] list_vigas_nodes = [[i[0], i[1]] for i in Inc] vu_excel = np.array([(R[i][0]) for i in range(R.shape[0])]) vP = [F[i][0] for i in range(F.shape[0])] vu = np.zeros(len(vP)) + 1 for i in vu_excel: vu[int(i)] = 0 vigas = [] for i in range(len(list_vigas_nodes)): viga = Viga(list_nodes[int(list_vigas_nodes[i][0] - 1)], list_nodes[int(list_vigas_nodes[i][1] - 1)], list_A[i], list_E[i], list_vigas_nodes[i]) vigas.append(viga) ponte = Ponte(vigas, quant_nos, vu, vP)
# Project 1 - Transferência de Calor e Mecânica dos Sólidos - Caio Fauza, Pedro Paulo Telho, Luiz Vitor Germanos import math import numpy as np np.seterr(divide='ignore', invalid='ignore') from funcoesTermosol import plota, importa, geraSaida [nn, N, nm, Inc, nc, F, nr, R] = importa('contest.xlsx') info = dict() matrix = [] degrees = [] lenghts = [] barInfo = [] converged = False equationSolver = input( "Choose the iterative method to solve the equations\n(Type 'Gauss' or 'Jacobi', without the quotes): " ) #Filling in info according to the incidence for i in range(1, nm + 1): info[i] = [Inc[i - 1][0], Inc[i - 1][1]] for i in range(1, len(info) + 1): #Calculation of bar sizes, sin and cos x1 = N[0][int(info[i][0] - 1)] x2 = N[0][int(info[i][1] - 1)] y1 = N[1][int(info[i][0] - 1)] y2 = N[1][int(info[i][1] - 1)] length = math.sqrt((x2 - x1)**2 + (y2 - y1)**2) lenghts.append(length) s = (y2 - y1) / length c = (x2 - x1) / length barInfo.append([s, c])
from funcoesTermosol import importa, plota, geraSaida from knot import knot from element import element from structure import structure import numpy as np [knot_numbers, knot_coordinates, element_numbers, incidence, load_numbers, forces, restriction_numbers, restriction] = importa('entry.xlsx') knot_list = [] element_list = [] for i in range(knot_numbers): # melhor codigo do mundo knot_list.append(knot(knot_coordinates[0][i], knot_coordinates[1][i], [forces[2 * i], forces[2*i + 1]])) for i in range(element_numbers): incidence0 = (int(incidence[i][0]) - 1)*2 incidence1 = (int(incidence[i][1]) - 1)*2 element_list.append(element(incidence[i][2], incidence[i][3], [knot_list[int(incidence[i][0]) - 1], knot_list[int(incidence[i][1]) - 1]], [[incidence0, incidence0 + 1], [incidence1, incidence1 + 1]])) object_structure = structure(element_list, knot_numbers, restriction, element_numbers) geraSaida(object_structure.reaction, object_structure.u_vector, object_structure.deformation, object_structure.internal_force, object_structure.tension)
# -*- Coding: UTF-8 -*- #coding: utf-8 ##imports import math import numpy as np from funcoesTermosol import importa, plota, geraSaida from elemento import Element from ponte import Ponte ruptura = 18e6 ##Pegando dados da tabela [ n_nos, nos_coord, n_elements, param, n_force, force_matrix, n_restric, restric_matrix ] = importa('entrada.xlsx') #plota(nos_coord,param) element = [] nodes = [] plota(nos_coord, param) dict_nos = {} U = np.zeros([n_nos * 2]) for i in param: #print(i[0],i[1]) nodes.append(np.array([int(i[0]), int(i[1])])) for i in range(0, n_nos): dict_nos[i + 1] = [nos_coord[0][i], nos_coord[1][i]] for i in range(0, n_elements): #print() element.append(
from funcoesTermosol import geraSaida import numpy as np import math from funcoesTermosol import importa from funcoesTermosol import plota [nn, N, nm, Inc, nc, F, nr, R] = importa('entrada.xlsx') # plota(N, Inc) # numero de nos [nn] # matriz dos nos [N] # numero de membros [nm] # matriz de incidencia [Inc] # numero de cargas [nc] # vetor carregamento [F] # numero de restricoes [nr] # vetor de restricoes [R] def SenCos(x1, x2, y1, y2): L = math.sqrt(((x2 - x1)**2) + ((y2 - y1)**2)) sen = (y2 - y1) / L cos = (x2 - x1) / L return L, sen, cos def getCoorNos(N, n_no): nos = [] for i in range(0, len(N[0])): nos.append([N[0][i], N[1][i]])