Kildekode for main
"""Hovedmodul for styring av beregningsprosess og uthenting av resultater."""
import beregning
import time
import inndata
[dokumentasjon]def beregn_master(ini):
"""Kjører beregningsprosedyre.
Mastene deles opp i gittermaster og bjelkemaster før de
sorteres mhp. utnyttelsesgrad og returneres i to separate lister.
:return: Lister med ferdige beregnede master ``gittermaster_sortert``, ``bjelkemaster_sortert``
:rtype: :class:`list`, :class:`list`
"""
masteliste = []
# Oppretter inndataobjekt med data fra .ini-fil
i = inndata.Inndata(ini)
masteliste.extend(beregning.beregn(i))
for mast in masteliste:
mast.sorter_grenseverdier()
gittermaster = masteliste[0:7]
bjelkemaster = masteliste[7:]
gittermaster_sortert = sorted(gittermaster, key=lambda mast: mast.tilstand_UR_max.utnyttelsesgrad, reverse=True)
bjelkemaster_sortert = sorted(bjelkemaster, key=lambda mast: mast.tilstand_UR_max.utnyttelsesgrad, reverse=True)
return gittermaster_sortert, bjelkemaster_sortert
if __name__ == "__main__":
# Kjører kun ved direkte kjøring av main.py
# Tester kjøretid
start_time = time.clock()
###################################################################
print("Velkommen til Bane NORs fantastiske nye beregningsverktøy!")
values = []
with open("input.ini", "r") as ini:
# Oppretter inndataobjekt med data fra .ini-fil
i = inndata.Inndata(ini)
master = beregning.beregn(i)
for mast in master:
mast.sorter(0)
master_sortert = sorted(master, key=lambda mast:mast.bruddgrense[0].utnyttelsesgrad, reverse=True)
for mast in master_sortert:
print("Navn: {} UR = {:.3g} %".format(mast.navn, 100*mast.bruddgrense[0].utnyttelsesgrad))
mastetype = "g" # g for gitter, b for bjelke
mast = None
for m in master_sortert:
# Henter ut H5 for sammenlikning med KL_fund
if m.navn == "HE200B":
mast = m
"""
if mastetype == "g":
if (m.type == "B" or m.type == "H") \
and m.h_max >= m.h \
and m.bruddgrense[0].utnyttelsesgrad <= 1.0:
mast = m
break
else:
if m.type == "bjelke" \
and m.h_max >= m.h \
and m.bruddgrense[0].utnyttelsesgrad <= 1.0:
mast = m
break
"""
#resultater.skriv_bidrag(i, mast)
mast.sorter_grenseverdier()
print()
print("Anbefalt mast:")
print()
print(mast)
print()
UR = mast.bruddgrense[0].utnyttelsesgrad
current_values = [UR, mast.bruddgrense[0].My_kap,
mast.bruddgrense[0].Mz_kap, mast.bruddgrense[0].N_kap]
values.append(current_values)
#resultater.barplot(values)
###################################################################
print("--- %s seconds ---" % (time.clock() - start_time))