# -*- coding: cp1250 -*-
import math
import vypocet_3v1
import csv
import numpy as np
import random

## zápis nadpisu a jednotek do souboru
zapis = open('merkblatt_katal_pn25.csv','wb')
nadpisy = ('Temp','Temp_mont','material_sroubu','tloustka_sroubu','tlakova_zkouska','neckeddown',
           'yeild_point','unmachined','p','di','dD','n','da','dL','sF','s1','dt','hA','hF',
           'gasket_material','tekutina','bD','hD','material_priruby','tloustka_priruby',
           'Rp02t_sroubu','Rm_sroubu','A_sroubu','oznaceni_sroubu','materialovy_ekvivalent_sroubu',
           'norma_sroubu','Rp02t_priruba','Rm_priruba','A_priruba','oznaceni_priruby',
           'materialovy_ekvivalent_priruby','norma_priruby','K_priruba','K_sroubu',
           'K20_priruba','K20_sroubu','S','Z','FRB','FFB','FDB','FSB','FDV','FD_theta','c5','dK_provoz',
           'dK_test','dK_montaz','dS','b','Z','Z1','v','d_L','a_AA','aD_AA','W_provozAA','W_montazAA',
           'hF_provozAA','hF_montazAA','sm','B1','a_BB','aD_BB','W_provozBB','W_montazBB','B',
           'hF_provozBB','hF_montazBB','vstupni_podminka','podminka_predepjatosti',
           'podminka_poctu_sroubu','podminka_zuzeni_krku','podminka_sectionBB-1','podminka_sectionBB-2') # nadpis proměnných
jednotky = ('stC','stC','-','mm','-','-','-','-','bar','mm','mm','-','mm','mm','mm','mm','mm',
            'mm','mm','-','-','mm','mm','-','mm','MPa','MPa','-','-','-','-','MPa','MPa','-',
            '-','-','-','MPa','MPa','MPa','MPa','-','-','N','N','N','N','N','N','mm','mm','mm',
            'mm','mm','mm','-','-','-','mm','mm','mm','mm3','mm3','mm','mm','mm','-','mm','mm',
            'mm3','mm3','-','mm','mm','-','-','-','-','-','-') # jednotky

    
for nazvy_nadpisu in nadpisy:
    zapis.write('%s;' % str(nazvy_nadpisu))
zapis.write('\n')
for nazvy_jednotek in jednotky:
    zapis.write('%s;' % str(nazvy_jednotek))
zapis.write('\n')

##celkem_opakovani = 1000
##for opakovani in xrange(1,celkem_opakovani):
##     vstupní proměnné - randomizace proměnných

Temp=[20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,] # Temp - pracovní teplota
Temp_mont=[20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,] # Temp - pracovní teplota
pn_=[25.,25.,25.,25.,25.,25.,25.,25.,25.,25.,25.,25.,] # PN
material_sroubu=["25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT","25CrMo4+QT",]

gasket_material=['wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal','wound_metal']

tekutina=['liquid','liquid','liquid','liquid','liquid','liquid','liquid','liquid','liquid','liquid','liquid','liquid',]

material_priruby=["16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3","16Mo3"]
                  
tlakova_zkouska=[False,False,False,False,False,False,False,False,False,False,False,False,]
neckeddown=[True,True,True,True,True,True,True,True,True,True,True,True,]
yield_point=[True,True,True,True,True,True,True,True,True,True,True,True,]
unmachined=[True,True,True,True,True,True,True,True,True,True,True,True,]

tloustka_sroubu=[26.,30.,30.,33.,36.,36.,36.,39.,42.,48.,48.,56.,] # d2
d3=[244.,298.,352.,398.,452.,500.,558.,660.,760.,864.,968.,1070.,] # d3
b=[30.,32.,34.,38.,40.,42.,44.,46.,46.,50.,54.,58.,] # b
f=3.,3.,4.,4.,4.,4.,4.,5.,5.,5.,5.,5.,[] # f
d1=[219.1,273.,323.9,355.6,406.4,457.,508.,610.,711.,813.,914.,1016.,] # d1
h1=[80.,88.,92.,100.,110.,110.,125.,125.,125.,135.,145.,155.,] # h1
h2=[16.,18.,18.,20.,20.,20.,20.,20.,20.,22.,24.,24.,] # h2
di=[200.,250.,300.,350.,400.,450.,500.,600.,700.,800.,900.,1000.,] # DN
dD=[244.,298.,352.,398.,452.,500.,558.,660.,760.,864.,968.,1070.,] # d3 ???? opravit???? dD - střední průměr těsnění, mm
n=[12.,12.,16.,16.,16.,20.,20.,20.,24.,24.,28.,28.,] # n
da=[360.,425.,485.,555.,620.,670.,730.,845.,960.,1085.,1185.,1320.,] # D
dL=[26.,30.,30.,33.,36.,36.,36.,39.,42.,48.,48.,56.,] # d2
s1=[6.3,7.1,8.,8.,8.,8.,8.8,10.,11.,12.5,14.2,16.,17.5,] # s
dt=[310.,370.,430.,490.,550.,600.,660.,770.,875.,990.,1090.,1210.,] # k
bD=[20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,20.,] # 20 ???
hD=[2.8,2.8,2.8,2.8,2.8,2.8,2.8,2.8,2.8,2.8,2.8,2.8,] # 2.8

Rp02t_priruba_=[295.,295.,295.,295.,285.,285.,285.,285.,285.,285.,285.,285.] # hodnoty z ulozeni_dat_katal_pn25

ft=[(Rp02t_priruba_[0]/1.9),
   (Rp02t_priruba_[1]/1.9),
   (Rp02t_priruba_[2]/1.9),
   (Rp02t_priruba_[3]/1.9),
   (Rp02t_priruba_[4]/1.9),
   (Rp02t_priruba_[5]/1.9),
   (Rp02t_priruba_[6]/1.9),
   (Rp02t_priruba_[7]/1.9),
   (Rp02t_priruba_[8]/1.9),
   (Rp02t_priruba_[9]/1.9),
   (Rp02t_priruba_[10]/1.9),
   (Rp02t_priruba_[11]/1.9),]
pn=[(pn_[0]*ft[0]/140.),
    (pn_[1]*ft[1]/140.),
    (pn_[2]*ft[2]/140.),
    (pn_[3]*ft[3]/140.),
    (pn_[4]*ft[4]/140.),
    (pn_[5]*ft[5]/140.),
    (pn_[6]*ft[6]/140.),
    (pn_[7]*ft[7]/140.),
    (pn_[8]*ft[8]/140.),
    (pn_[9]*ft[9]/140.),
    (pn_[10]*ft[10]/140.),
    (pn_[11]*ft[11]/140.),]


d= [(d1[0]-s1[0]),
    (d1[1]-s1[1]),
    (d1[2]-s1[2]),
    (d1[3]-s1[3]),
    (d1[4]-s1[4]),
    (d1[5]-s1[5]),
    (d1[6]-s1[6]),
    (d1[7]-s1[7]),
    (d1[8]-s1[8]),
    (d1[9]-s1[9]),
    (d1[10]-s1[10]),
    (d1[11]-s1[11]),]                 
sF=[(d3[0]-d[0])/2.,
    (d3[1]-d[1])/2.,
    (d3[2]-d[2])/2.,
    (d3[3]-d[3])/2.,
    (d3[4]-d[4])/2.,
    (d3[5]-d[5])/2.,
    (d3[6]-d[6])/2.,
    (d3[7]-d[7])/2.,
    (d3[8]-d[8])/2.,
    (d3[9]-d[9])/2.,
    (d3[10]-d[10])/2.,
    (d3[11]-d[11])/2.,] # (d3-d)/2
hA=[h1[0]-f[0]-h2[0],
    h1[1]-f[1]-h2[1],
    h1[2]-f[2]-h2[2],
    h1[3]-f[3]-h2[3],
    h1[4]-f[4]-h2[4],
    h1[5]-f[5]-h2[5],
    h1[6]-f[6]-h2[6],
    h1[7]-f[7]-h2[7],
    h1[8]-f[8]-h2[8],
    h1[9]-f[9]-h2[9],
    h1[10]-f[10]-h2[10],
    h1[11]-f[11]-h2[11],] # (h1-f-h2)
hF=[b[0]-f[0],
   b[1]-f[1],
   b[2]-f[2],
   b[3]-f[3],
   b[4]-f[4],
   b[5]-f[5],
   b[6]-f[6],
   b[7]-f[7],
   b[8]-f[8],
   b[9]-f[9],
   b[10]-f[10],
   b[11]-f[11],] # (b-f)
tloustka_priruby=[b[0]-f[0],
                  b[1]-f[1],
                  b[2]-f[2],
                  b[3]-f[3],
                  b[4]-f[4],
                  b[5]-f[5],
                  b[6]-f[6],
                  b[7]-f[7],
                  b[8]-f[8],
                  b[9]-f[9],
                  b[10]-f[10],
                  b[11]-f[11],]

celkem_opakovani = len(d3)
for i in xrange(0,len(d3)):
    _vypocet = vypocet_3v1.vypocet() # tvorba instance vypoctu
    vysledky = _vypocet.vypocet_ad2000_merkblatt(Temp[i], Temp_mont[i], material_sroubu[i], tloustka_sroubu[i], tlakova_zkouska[i],
                                 neckeddown[i], yield_point[i], unmachined[i], pn[i], di[i], dD[i], n[i], da[i], dL[i], sF[i], s1[i],
                                 dt[i], hA[i], hF[i], gasket_material[i], tekutina[i], bD[i], hD[i], material_priruby[i],
                                 tloustka_priruby[i])

    ## deklarace hodnot (z výsledků) do proměnných
    Rp02t_sroubu = vysledky[0][0]
    Rm_sroubu = vysledky[0][1]
    A_sroubu = vysledky[0][2]
    oznaceni_sroubu = vysledky[0][3][0]
    materialovy_ekvivalent_sroubu = vysledky[0][3][1]
    norma_sroubu = vysledky[0][3][2]
    Rp02t_priruba = vysledky[0][4]
    Rm_priruba = vysledky[0][5]
    A_priruba = vysledky[0][6]
    oznaceni_priruby = vysledky[0][7][0]
    materialovy_ekvivalent_priruby = vysledky[0][7][1]
    norma_priruby = vysledky[0][7][2]
    
    K_priruba = vysledky[0][8]
    K_sroubu = vysledky[0][9]
    K20_priruba = vysledky[0][10]
    K20_sroubu = vysledky[0][11]
    
    S = vysledky[0][12]
    Z = vysledky[0][13]
    FRB = vysledky[0][14]
    FFB = vysledky[0][15]
    FDB = vysledky[0][16]
    FSB = vysledky[0][17]
    FDV = vysledky[0][18]
    FD_theta = vysledky[0][19]
    c5 = vysledky[0][20]
    dK_provoz = vysledky[0][21]
    dK_test = vysledky[0][22]
    dK_montaz = vysledky[0][23]
    dS = vysledky[0][24]
    b = vysledky[0][25]
    Z = vysledky[0][26]
    Z1 = vysledky[0][27]
    v = vysledky[0][28]
    d_L = vysledky[0][29]
    a_AA = vysledky[0][30]
    aD_AA = vysledky[0][31]
    W_provozAA = vysledky[0][32]
    W_montazAA = vysledky[0][33]
    hF_provozAA = vysledky[0][34]
    hF_montazAA = vysledky[0][35]
    sm = vysledky[0][36]
    B1 = vysledky[0][37]
    a_BB = vysledky[0][38]
    aD_BB = vysledky[0][39]
    W_provozBB = vysledky[0][40]
    W_montazBB = vysledky[0][41]
    B = vysledky[0][42]
    hF_provozBB = vysledky[0][43]
    hF_montazBB = vysledky[0][44]

    vstupni_podminka = vysledky[1][0]
    podminka_predepjatosti = vysledky[1][2]
    podminka_poctu_sroubu = vysledky[1][4]
    podminka_zuzeni_krku = vysledky[1][6]
    podminka_sectionBB_1 = vysledky[1][8]
    podminka_sectionBB_2 = vysledky[1][10]

    ## zápis hodnot do souboru
    hodnoty = (Temp[i],Temp_mont[i],material_sroubu[i],tloustka_sroubu[i],tlakova_zkouska[i],neckeddown[i],
           yield_point[i],unmachined[i],pn[i],di[i],dD[i],n[i],da[i],dL[i],sF[i],s1[i],dt[i],hA[i],hF[i],
           gasket_material[i],tekutina[i],bD[i],hD[i],material_priruby[i],tloustka_priruby[i],
           Rp02t_sroubu,Rm_sroubu,A_sroubu,oznaceni_sroubu,materialovy_ekvivalent_sroubu,
           norma_sroubu,Rp02t_priruba,Rm_priruba,A_priruba,oznaceni_priruby,
           materialovy_ekvivalent_priruby,norma_priruby,K_priruba,K_sroubu,
           K20_priruba,K20_sroubu,S,Z,FRB,FFB,FDB,FSB,FDV,FD_theta,c5,dK_provoz,
           dK_test,dK_montaz,dS,b,Z,Z1,v,d_L,a_AA,aD_AA,W_provozAA,W_montazAA,
           hF_provozAA,hF_montazAA,sm,B1,a_BB,aD_BB,W_provozBB,W_montazBB,B,
           hF_provozBB,hF_montazBB,vstupni_podminka,podminka_predepjatosti,
           podminka_poctu_sroubu,podminka_zuzeni_krku,podminka_sectionBB_1,podminka_sectionBB_2)
##    if vstupni_podminka==True and podminka_predepjatosti==True and podminka_poctu_sroubu==True and podminka_zuzeni_krku==True and podminka_sectionBB_1==True and podminka_sectionBB_2==True:
    for nazvy_hodnot in hodnoty:
        zapis.write('%s;' % str(nazvy_hodnot))
    zapis.write('\n')
    print ('aktualni stav vypoctu   %s;' % str(round((i*100./celkem_opakovani),2)))

zapis.close()
