from numpy import *
from pylab import *
from math import *
import matplotlib.pyplot as plt
materiales = [['ventana',0.06,0.05,0.07,0.015,0.13,0.17,0],['ladrillo',0.01,0.01,0.02,0.02,0.02,0.03,0],['lana de vidrio',0.78,1.01,1.14,1.03,0.94,0.78,0],['puerta',0.15,0.10,0.06,0.08,0.10,0.05,0],['cortinas tejido delgado',0.04,0.05,0.11,0.18,0.30,0.35,0],['revestimiento de madera',0.10,0.11,0.10,0.08,0.08,0.11,0],['marmol',0.01,0.01,0.01,0.02,0.02,0.01,0],['pavimiento',0.02,0.03,0.03,0.04,0.04,0.04,0],['piso de hormigon',0.01,0.01,0.02,0.02,0.02,0.02,0],['alfombra delgada',0.01,0.02,0.03,0.05,0.08,0.1,0],['alfombra pelo largo',0.02,0.05,0.1,0.35,0.45,0.55,0],['parquet sobre contra piso',0.03,0.15,0.21,0.45,0.95,0.85,0],['tablas de madera sobre vigeta',0.3,0.09,0.04,0.05,0.04,0.03,0],['placa de yeso',0.3,0.09,0.04,0.05,0.04,0.03,0],['placa de poliuretano',0.03,0.15,0.21,0.45,0.95,0.85,0]]
coe=[]
m_escogidos=[]
axialesgill=[]
axialesgill1=[]
axialesgill2=[]
xd=input('Digite 1 si desea escoger un material de la siguiente lista \nDigite 2 si desea agregar un numero material: ')
cont=0;
abs125=0;
abs250=0;
abs500=0;
abs1000=0;
abs2000=0;
abs4000=0;
suptotal=0;
c=340
fi=1
fj=1
fk=1
p=1
q=1
r=1
xds=1
while xds==1:
while xd==1:
for i in range(0, len(materiales)):
print(repr(i + 1) + '. ' + str(materiales[i][0]) + ' con coeficientes 125Hz: ' + repr(materiales[i][1]) + ', 250Hz: ' + repr(materiales[i][2]) + ', 500Hz: ' + repr(materiales[i][3]) + ', 1kHz: ' + repr(materiales[i][4]) + ', 2kHz: ' + repr(materiales[i][5]) + ', 4kHz: ' + repr(materiales[i][6]))
element=input('Digite el material que desea escoger: ')
while element <1 or element>len(materiales):
element = input('Digite de nuevo el material que desea escoger: ')
area=input('Agregue el area (m^2): ')
while area<0:
area = input('Agregue nuevamente el area (m^2): ')
materiales[element-1][7]=area
print('usted ha agregado el material '+str (materiales[element - 1][0])+ ' con coeficientes de absorcion: '+ repr(materiales[element - 1][1:7])+ ' y un area de: '+ repr(area)+' m^2')
m_escogidos.append(materiales[element-1][1:])
abs125 = abs125 + (m_escogidos[cont][0] * m_escogidos[cont][6])
abs250 = abs250 + (m_escogidos[cont][1] * m_escogidos[cont][6])
abs500 = abs500 + (m_escogidos[cont][2] * m_escogidos[cont][6])
abs1000 = abs1000 + (m_escogidos[cont][3] * m_escogidos[cont][6])
abs2000 = abs2000 + (m_escogidos[cont][4] * m_escogidos[cont][6])
abs4000 = abs4000 + (m_escogidos[cont][5] * m_escogidos[cont][6])
suptotal = suptotal + m_escogidos[cont][6]
cont = cont + 1
anadir=input('Digite 1 si desea escoger otro material \n Digite 2 si desea finalizar y realizar calculos: ')
if anadir==1:
xd = input('Digite 1 si desea escoger un material de la siguiente lista \nDigite 2 si desea agregar un numero material: ')
else:
coeprom125 = abs125 / suptotal
coeprom250 = abs250 / suptotal
coeprom500 = abs500 / suptotal
coeprom1000 = abs1000 / suptotal
coeprom2000 = abs2000 / suptotal
coeprom4000 = abs4000 / suptotal
medprom=(coeprom500+coeprom1000)/2
coe.append([coeprom125,coeprom250,coeprom500,coeprom1000,coeprom2000,coeprom4000,medprom])
print(coe)
print (125,250,500,1000,2000,4000,'medio promediado')
xds=0
break
while xd==2:
nombrematerial = raw_input('Escriba el nombre del nuevo material que desea agregar: ')
coe125 = input('Digite el coeficiente de absorcion para la banda de 125Hz: ')
coe250 = input('Digite el coeficiente de absorcion para la banda de 250Hz: ')
coe500 = input('Digite el coeficiente de absorcion para la banda de 500Hz: ')
coe1000 = input('Digite el coeficiente de absorcion para la banda de 1KHz: ')
coe2000 = input('Digite el coeficiente de absorcion para la banda de 2KHz: ')
coe4000 = input('Digite el coeficiente de absorcion para la banda de 4KHz: ')
while area<0:
area2=input('Digite el area de la superficie en (m^2): ')
materiales.append([nombrematerial,coe125,coe250,coe500,coe1000,coe2000,coe4000,area2])
print materiales
print(materiales[len(materiales)-1])
print('usted ha creado el material '+str (materiales[len(materiales)-1][0])+ ' con coeficientes de absorcion: '+ repr(materiales[len(materiales)-1][1:7])+ ' y un area de: '+ repr(area2)+' m^2')
m_escogidos.append(materiales[len(materiales)-1][1:])
abs125 = abs125 + (m_escogidos[cont][0] * m_escogidos[cont][6])
abs250 = abs250 + (m_escogidos[cont][1] * m_escogidos[cont][6])
abs500 = abs500 + (m_escogidos[cont][2] * m_escogidos[cont][6])
abs1000 = abs1000 + (m_escogidos[cont][3] * m_escogidos[cont][6])
abs2000 = abs2000 + (m_escogidos[cont][4] * m_escogidos[cont][6])
abs4000 = abs4000 + (m_escogidos[cont][5] * m_escogidos[cont][6])
suptotal = suptotal + m_escogidos[cont][6]
cont = cont + 1
anadir = input('Digite 1 si desea crear otro material: \nDigite 2 si desea escoger uno de la lista: \nDigite 3 si desea finalizar y realizar calculos: ')
if anadir==1:
xd=2
if anadir==2:
xd=1
if anadir==3:
coeprom125 = abs125 / suptotal
coeprom250 = abs250 / suptotal
coeprom500 = abs500 / suptotal
coeprom1000 = abs1000 / suptotal
coeprom2000 = abs2000 / suptotal
coeprom4000 = abs4000 / suptotal
medprom=(coeprom500+coeprom1000)/2
coe.append([coeprom125,coeprom250,coeprom500,coeprom1000,coeprom2000,coeprom4000,medprom])
print(coe)
print (125,250,500,1000,2000,4000,'medio promediado')
xds=0
break
met=input('Digite 1 si desea realizar analisis por metodo de gillford: \nDigite 2 si desea realizar analisis por metodo de bonello: ')
while met==1:
vel=340
p=1
fi=0
largo=input('Digite Largo de la sala')
ancho=input('Digite ancho de la sala')
alto = input('Digite alto de la sala')
v=largo*ancho*alto
absmid=suptotal*medprom
rt=(0.161*v)/absmid
f2=2000*math.sqrt(rt/v)
while fi<=f2:
fi=(vel/2)*(p/largo)
if fi<f2:
axialesgill.append(fi)
p=p+1
print(axialesgill)