Example #1
0
#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)
Example #2
0
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])
Example #4
0
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)

Example #5
0
# -*- 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(
Example #6
0
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]])