text:
using StaticArrays

const hexateron1an = [
    SVector{6}([0.16666666666666666 0.16666666666666666 0.16666666666666666 0.16666666666666666 0.16666666666666666 0.16666666666666666])
]

const hexateron1wn = [
  1.0,
]

#x = [0.10367258783179548]
#w = [0.16666666666666667]

const hexateron6an = [
    SVector{6}([0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795 0.481637060841023]),
    SVector{6}([0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795 0.481637060841023 0.103672587831795]),
    SVector{6}([0.103672587831795 0.103672587831795 0.103672587831795 0.481637060841023 0.103672587831795 0.103672587831795]),
    SVector{6}([0.103672587831795 0.103672587831795 0.481637060841023 0.103672587831795 0.103672587831795 0.103672587831795]),
    SVector{6}([0.103672587831795 0.481637060841023 0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795]),
    SVector{6}([0.481637060841023 0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795 0.103672587831795])
]

const hexateron6wn = [
    0.16666666666666666,
    0.16666666666666666,
    0.16666666666666666,
    0.16666666666666666,
    0.16666666666666666,
    0.16666666666666666
]

#x = [0.037927853919977265, 0.07427567246009045]
#w = [0.007014279108054526, 0.06386095502344485]

const hexateron21an = [
    SVector{6}([0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.810360730400114]),
    SVector{6}([0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.810360730400114 0.0379278539199773]),
    SVector{6}([0.0379278539199773 0.0379278539199773 0.0379278539199773 0.810360730400114 0.0379278539199773 0.0379278539199773]),
    SVector{6}([0.0379278539199773 0.0379278539199773 0.810360730400114 0.0379278539199773 0.0379278539199773 0.0379278539199773]),
    SVector{6}([0.0379278539199773 0.810360730400114 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773]),
    SVector{6}([0.810360730400114 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773 0.0379278539199773]),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819 0.351448655079819] ),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905 0.351448655079819] ),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819 0.351448655079819 0.0742756724600905] ),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905 0.351448655079819] ),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905 0.351448655079819 0.0742756724600905] ),
    SVector{6}([0.0742756724600905 0.0742756724600905 0.351448655079819 0.351448655079819 0.0742756724600905 0.0742756724600905] ),
    SVector{6}([0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819] ),
    SVector{6}([0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905] ),
    SVector{6}([0.0742756724600905 0.351448655079819 0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905] ),
    SVector{6}([0.0742756724600905 0.351448655079819 0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905] ),
    SVector{6}([0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819] ),
    SVector{6}([0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905] ),
    SVector{6}([0.351448655079819 0.0742756724600905 0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905] ),
    SVector{6}([0.351448655079819 0.0742756724600905 0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905] ),
    SVector{6}([0.351448655079819 0.351448655079819 0.0742756724600905 0.0742756724600905 0.0742756724600905 0.0742756724600905] ),
]

const hexateron21wn = [
    0.007014279108054526,
    0.007014279108054526,
    0.007014279108054526,
    0.007014279108054526,
    0.007014279108054526,
    0.007014279108054526,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485,
    0.06386095502344485
]

#x = [0.08368866617363178, 0.05502135047515903, 0.020512906881075616, 0.6139738022751151]
#w = [ 0.032762178536868275, 0.03617369110190333, 0.0026651035580241276]

const hexateron56an = [
    SVector{6}([0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.581556669131841]),
    SVector{6}([0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.581556669131841 0.0836886661736318]),
    SVector{6}([0.0836886661736318 0.0836886661736318 0.0836886661736318 0.581556669131841 0.0836886661736318 0.0836886661736318]),
    SVector{6}([0.0836886661736318 0.0836886661736318 0.581556669131841 0.0836886661736318 0.0836886661736318 0.0836886661736318]),
    SVector{6}([0.0836886661736318 0.581556669131841 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318]),
    SVector{6}([0.581556669131841 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318 0.0836886661736318]),
    SVector{6}([0.0550213504751590 0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.0550213504751590 0.278311982858174 0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.0550213504751590 0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590 0.0550213504751590 0.278311982858174]  ),
    SVector{6}([0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590 0.278311982858174 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.278311982858174 0.0550213504751590 0.278311982858174 0.0550213504751590 0.0550213504751590]  ),
    SVector{6}([0.278311982858174 0.278311982858174 0.278311982858174 0.0550213504751590 0.0550213504751590 0.0550213504751590]  ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115 0.303974570200582] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582 0.613973802275115] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756 0.303974570200582] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115 0.303974570200582 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756 0.613973802275115] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582 0.613973802275115 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756 0.303974570200582] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756 0.303974570200582 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.613973802275115 0.303974570200582 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756 0.613973802275115] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756 0.613973802275115 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.0205129068810756 0.303974570200582 0.613973802275115 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582] ),
    SVector{6}([0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.613973802275115 0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.613973802275115 0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115] ),
    SVector{6}([0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.303974570200582 0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.0205129068810756 0.303974570200582 0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582] ),
    SVector{6}([0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756] ),
    SVector{6}([0.613973802275115 0.0205129068810756 0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.613973802275115 0.0205129068810756 0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.613973802275115 0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115] ),
    SVector{6}([0.303974570200582 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756] ),
    SVector{6}([0.303974570200582 0.0205129068810756 0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.303974570200582 0.0205129068810756 0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756] ),
    SVector{6}([0.303974570200582 0.613973802275115 0.0205129068810756 0.0205129068810756 0.0205129068810756 0.0205129068810756] )
]

const hexateron56wn = [
    0.032762178536868275,
    0.032762178536868275,
    0.032762178536868275,
    0.032762178536868275,
    0.032762178536868275,
    0.032762178536868275,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.03617369110190333,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276,
    0.0026651035580241276
]

#x =  [0.03802320588487034, 0.060931862032544144, 0.22974989389595796, 0.07972245054440287, 0.18607410108119998, 0.018946661875089935, 0.20008317880290583]
#w =  [0.0020951600463044906, 0.011202117898848474, 0.02763274784579167, 0.006717804212054248, 0.0033895321198490562]

const hexateron126an = [
    SVector{6}([0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.809883970575648]),
    SVector{6}([0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.809883970575648 0.0380232058848703]),
    SVector{6}([0.0380232058848703 0.0380232058848703 0.0380232058848703 0.809883970575648 0.0380232058848703 0.0380232058848703]),
    SVector{6}([0.0380232058848703 0.0380232058848703 0.809883970575648 0.0380232058848703 0.0380232058848703 0.0380232058848703]),
    SVector{6}([0.0380232058848703 0.809883970575648 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703]),
    SVector{6}([0.809883970575648 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703 0.0380232058848703]),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912 0.378136275934912] ),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441 0.378136275934912] ),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912 0.378136275934912 0.0609318620325441] ),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441 0.378136275934912] ),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441 0.378136275934912 0.0609318620325441] ),
    SVector{6}([0.0609318620325441 0.0609318620325441 0.378136275934912 0.378136275934912 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912] ),
    SVector{6}([0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441] ),
    SVector{6}([0.0609318620325441 0.378136275934912 0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.0609318620325441 0.378136275934912 0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912] ),
    SVector{6}([0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441] ),
    SVector{6}([0.378136275934912 0.0609318620325441 0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.378136275934912 0.0609318620325441 0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.378136275934912 0.378136275934912 0.0609318620325441 0.0609318620325441 0.0609318620325441 0.0609318620325441] ),
    SVector{6}([0.229749893895958 0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841 0.0405002122080841]   ),
    SVector{6}([0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958 0.0405002122080841]   ),
    SVector{6}([0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841 0.0405002122080841 0.229749893895958]   ),
    SVector{6}([0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958 0.0405002122080841]   ),
    SVector{6}([0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958 0.0405002122080841 0.229749893895958]   ),
    SVector{6}([0.229749893895958 0.229749893895958 0.0405002122080841 0.0405002122080841 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841]   ),
    SVector{6}([0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958]   ),
    SVector{6}([0.229749893895958 0.0405002122080841 0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.229749893895958 0.0405002122080841 0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841]   ),
    SVector{6}([0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958]   ),
    SVector{6}([0.0405002122080841 0.229749893895958 0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.0405002122080841 0.229749893895958 0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.0405002122080841 0.0405002122080841 0.229749893895958 0.229749893895958 0.229749893895958 0.229749893895958]   ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200 0.495036096741189] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189 0.186074101081200] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029 0.495036096741189] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200 0.495036096741189 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029 0.186074101081200] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189 0.186074101081200 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029 0.495036096741189] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029 0.495036096741189 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.186074101081200 0.495036096741189 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029 0.186074101081200] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029 0.186074101081200 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.0797224505444029 0.495036096741189 0.186074101081200 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189] ),
    SVector{6}([0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.186074101081200 0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.186074101081200 0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200] ),
    SVector{6}([0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.495036096741189 0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0797224505444029 0.495036096741189 0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189] ),
    SVector{6}([0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029] ),
    SVector{6}([0.186074101081200 0.0797224505444029 0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.186074101081200 0.0797224505444029 0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.186074101081200 0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200] ),
    SVector{6}([0.495036096741189 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029] ),
    SVector{6}([0.495036096741189 0.0797224505444029 0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.495036096741189 0.0797224505444029 0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.495036096741189 0.186074101081200 0.0797224505444029 0.0797224505444029 0.0797224505444029 0.0797224505444029] ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.200083178802906 0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.0189466618750899 0.542993656768919 0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.0189466618750899 0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.542993656768919]  ),
    SVector{6}([0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899 0.542993656768919 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.200083178802906 0.0189466618750899 0.542993656768919 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.200083178802906 0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.200083178802906 0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.0189466618750899 0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899 0.200083178802906]  ),
    SVector{6}([0.542993656768919 0.200083178802906 0.0189466618750899 0.0189466618750899 0.200083178802906 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.200083178802906 0.0189466618750899 0.200083178802906 0.0189466618750899 0.0189466618750899]  ),
    SVector{6}([0.542993656768919 0.200083178802906 0.200083178802906 0.0189466618750899 0.0189466618750899 0.0189466618750899]  )
]
const hexateron126wn = [
    0.0020951600463044906,
    0.0020951600463044906,
    0.0020951600463044906,
    0.0020951600463044906,
    0.0020951600463044906,
    0.0020951600463044906,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.011202117898848474,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.02763274784579167,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.006717804212054248,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562,
    0.0033895321198490562
]

#x = [0.017560303714676449, 0.19933481135062811, 0.10975719009185349, 0.17301439058463153, 0.048701518591342433, 0.47965829210782895, 0.057069123647292788, 0.1932661083099538, 0.12439652864574161, 0.0045303515222048316, 0.28190357541191013, 0.076906800723122254]
#w = [0.00030799358595333761, 0.0035617678038822758, 0.0095468079195978103, 0.0053806629399101077, 0.00013623437539270265, 0.0024424189682134669, 0.0062373017543229771]

const hexateron252an = [
    SVector{6}([0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.912198481426618] ),
    SVector{6}([0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.912198481426618; 0.0175603037146764] ),
    SVector{6}([0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.912198481426618; 0.0175603037146764; 0.0175603037146764] ),
    SVector{6}([0.0175603037146764; 0.0175603037146764; 0.912198481426618; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764] ),
    SVector{6}([0.0175603037146764; 0.912198481426618; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764] ),
    SVector{6}([0.912198481426618; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764; 0.0175603037146764] ),
    SVector{6}([0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.00332594324685942]    ),
    SVector{6}([0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.00332594324685942; 0.199334811350628]    ),
    SVector{6}([0.199334811350628; 0.199334811350628; 0.199334811350628; 0.00332594324685942; 0.199334811350628; 0.199334811350628]    ),
    SVector{6}([0.199334811350628; 0.199334811350628; 0.00332594324685942; 0.199334811350628; 0.199334811350628; 0.199334811350628]    ),
    SVector{6}([0.199334811350628; 0.00332594324685942; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628]    ),
    SVector{6}([0.00332594324685942; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628; 0.199334811350628]    ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.387956849047955]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.173014390584632]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.387956849047955]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.387956849047955; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.173014390584632]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.173014390584632; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.387956849047955]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.387956849047955; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.173014390584632; 0.387956849047955; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.173014390584632]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.173014390584632; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.109757190091853; 0.387956849047955; 0.173014390584632; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955]      ),
    SVector{6}([0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.173014390584632; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.173014390584632; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632]      ),
    SVector{6}([0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.387956849047955; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.109757190091853; 0.387956849047955; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955]      ),
    SVector{6}([0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853]      ),
    SVector{6}([0.173014390584632; 0.109757190091853; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.173014390584632; 0.109757190091853; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.173014390584632; 0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632]      ),
    SVector{6}([0.387956849047955; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853]      ),
    SVector{6}([0.387956849047955; 0.109757190091853; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.387956849047955; 0.109757190091853; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.387956849047955; 0.173014390584632; 0.109757190091853; 0.109757190091853; 0.109757190091853; 0.109757190091853]      ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.325535633526801]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.479658292107829]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.325535633526801]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.325535633526801; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.479658292107829]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.479658292107829; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.325535633526801]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.325535633526801; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.325535633526801; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.479658292107829]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.479658292107829; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.479658292107829; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801]  ),
    SVector{6}([0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.479658292107829; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829]  ),
    SVector{6}([0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0487015185913424; 0.325535633526801; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801]  ),
    SVector{6}([0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424]  ),
    SVector{6}([0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.479658292107829; 0.0487015185913424; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.479658292107829; 0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829]  ),
    SVector{6}([0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424]  ),
    SVector{6}([0.325535633526801; 0.0487015185913424; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.325535633526801; 0.0487015185913424; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.325535633526801; 0.479658292107829; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424; 0.0487015185913424]  ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.442260412438214]   ),
    SVector{6}([0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.442260412438214; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.442260412438214; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.193266108309954; 0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.0570691236472928; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928; 0.193266108309954]   ),
    SVector{6}([0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.193266108309954; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.193266108309954; 0.0570691236472928; 0.193266108309954; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.442260412438214; 0.193266108309954; 0.193266108309954; 0.0570691236472928; 0.0570691236472928; 0.0570691236472928]   ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.617749711018366]  ),
    SVector{6}([0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.617749711018366; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.617749711018366; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.00453035152220483; 0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.124396528645742; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742; 0.00453035152220483]  ),
    SVector{6}([0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.00453035152220483; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.00453035152220483; 0.124396528645742; 0.00453035152220483; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.617749711018366; 0.00453035152220483; 0.00453035152220483; 0.124396528645742; 0.124396528645742; 0.124396528645742]  ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.000475672318025089] ),
    SVector{6}([0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.000475672318025089; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.000475672318025089; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.0769068007231223; 0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.281903575411910; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910; 0.0769068007231223] ),
    SVector{6}([0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.0769068007231223; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.0769068007231223; 0.281903575411910; 0.0769068007231223; 0.281903575411910; 0.281903575411910] ),
    SVector{6}([0.000475672318025089; 0.0769068007231223; 0.0769068007231223; 0.281903575411910; 0.281903575411910; 0.281903575411910] ),
]
const hexateron252wn =
[
    0.0003079935859533376,
    0.0003079935859533376,
    0.0003079935859533376,
    0.0003079935859533376,
    0.0003079935859533376,
    0.0003079935859533376,
    0.003561767803882276,
    0.003561767803882276,
    0.003561767803882276,
    0.003561767803882276,
    0.003561767803882276,
    0.003561767803882276,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.00954680791959781,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.005380662939910108,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.00013623437539270265,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.002442418968213467,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977,
    0.006237301754322977
]

const hexateronAn = [
    hexateron1an,
    hexateron6an,
    hexateron21an,
    hexateron56an,
    hexateron126an,
    hexateron252an
]

const hexateronWn = [
    hexateron1wn,
    hexateron6wn,
    hexateron21wn,
    hexateron56wn,
    hexateron126wn,
    hexateron252wn
]


text:
module OmegaDistributions

using Distributions: Normal, Bernoulli, UnivariateDistribution, Distribution, Uniform, quantile
import Distributions, OmegaCore
using OmegaCore.Var: liftapply, Member, StdUniform, StdNormal
import OmegaCore.Var

OmegaCore.Var.traitvartype(class::Type{<:Distribution}) = Var.TraitIsClass

@inline (d::Normal{T})(id, ω) where T =
  Member(id, StdNormal{T}())(ω) * d.σ + d.μ

# @inline Space.recurse(d::Distribution, id, ω) =
#   quantile(d, resolve(StdUniform(), id, ω))

@inline (d::Bernoulli)(id, ω) =
  Member(id, StdUniform{Float64}())(ω) < d.p

@inline (d::UnivariateDistribution)(id, ω) =
  quantile(d, Member(id, StdUniform{Float64}())(ω))

invert(o::Normal, val) = (val / o.σ) - o.μ
invert(d::UnivariateDistribution, val) = cdf(d, val)

# Pointwise

function Base.broadcast(::Type{T}, arg1::Var.AbstractVariable, arg2) where {T <:Distribution}
  pw(T, arg1, arg2)
end

# Additional distributions

export UniformDraw

"Element drawn uniformly from elements of set"
struct UniformDraw{T}
  elem::T
end

(u::UniformDraw)(i, ω) =
  u.elem[(i ~ Distributions.DiscreteUniform(1, length(u.elem)))(ω)]

end

ext: jl

max_stars_repo_name: zenna/expect

max_issues_repo_name: zenna/expect

max_forks_repo_name: zenna/expect


text:
"""
A module for rendering `Document` objects to markdown.
"""
module MarkdownWriter

import ...Documenter:
    Anchors,
    Builder,
    Documents,
    Expanders,
    Documenter,
    Utilities

# import Markdown as MarkdownStdlib
module _Markdown
    import Markdown
end
const MarkdownStdlib = _Markdown.Markdown

struct Markdown <: Documenter.Writer
end

# return the same file with the extension changed to .md
mdext(f) = string(splitext(f)[1], ".md")

function render(doc::Documents.Document, settings::Markdown=Markdown())
    @info "MarkdownWriter: rendering Markdown pages."
    copy_assets(doc)
    mime = MIME"text/plain"()
    for (src, page) in doc.blueprint.pages
        open(mdext(page.build), "w") do io
            for elem in page.elements
                node = page.mapping[elem]
                render(io, mime, node, page, doc)
            end
        end
    end
end

function copy_assets(doc::Documents.Document)
    @debug "copying assets to build directory."
    assets = joinpath(doc.internal.assets, "mkdocs")
    if isdir(assets)
        builddir = joinpath(doc.user.build, "assets")
        isdir(builddir) || mkdir(builddir)
        for each in readdir(assets)
            src = joinpath(assets, each)
            dst = joinpath(builddir, each)
            ispath(dst) && @warn "Documenter: overwriting '$dst'."
            cp(src, dst; force = true)
        end
    else
        error("assets directory '$(abspath(assets))' is missing.")
    end
end

function render(io::IO, mime::MIME"text/plain", vec::Vector, page, doc)
    for each in vec
        render(io, mime, each, page, doc)
    end
end

function render(io::IO, mime::MIME"text/plain", anchor::Anchors.Anchor, page, doc)
    println(io, "\n")
    if anchor.nth == 1 # add legacy id
        legacy = lstrip(Anchors.fragment(anchor), '#') * "-1"
        println(io, "\n")
    end
    render(io, mime, anchor.object, page, doc)
end

## Documentation Nodes.

function render(io::IO, mime::MIME"text/plain", node::Documents.DocsNodes, page, doc)
    for node in node.nodes
        render(io, mime, node, page, doc)
    end
end

function render(io::IO, mime::MIME"text/plain", node::Documents.DocsNode, page, doc)
    # Docstring header based on the name of the binding and it's category.
    anchor = "#"
    header = "**`$(node.object.binding)`** — *$(Utilities.doccat(node.object))*."
    println(io, anchor, "\n", header, "\n\n")
    # Body. May contain several concatenated docstrings.
    renderdoc(io, mime, node.docstr, page, doc)
end

function renderdoc(io::IO, mime::MIME"text/plain", md::MarkdownStdlib.MD, page, doc)
    if haskey(md.meta, :results)
        # The `:results` field contains a vector of `Docs.DocStr` objects associated with
        # each markdown object. The `DocStr` contains data such as file and line info that
        # we need for generating correct source links.
        for (markdown, result) in zip(md.content, md.meta[:results])
            render(io, mime, dropheaders(markdown), page, doc)
            # When a source link is available then print the link.
            url = Utilities.url(doc.internal.remote, doc.user.repo, result)
            if url !== nothing
                link = "source
"
                println(io, "\n", link, "\n")
            end
        end
    else
        # Docstrings with no `:results` metadata won't contain source locations so we don't
        # try to print them out. Just print the basic docstring.
        render(io, mime, dropheaders(md), page, doc)
    end
end

function renderdoc(io::IO, mime::MIME"text/plain", other, page, doc)
    # TODO: properly support non-markdown docstrings at some point.
    render(io, mime, other, page, doc)
end

## Index, Contents, and Eval Nodes.

function render(io::IO, ::MIME"text/plain", index::Documents.IndexNode, page, doc)
    for (object, _, page, mod, cat) in index.elements
        page = mdext(page)
        url = string(page, "#", Utilities.slugify(object))
        println(io, "- [`", object.binding, "`](", url, ")")
    end
    println(io)
end

function render(io::IO, ::MIME"text/plain", contents::Documents.ContentsNode, page, doc)
    for (count, path, anchor) in contents.elements
        path = mdext(path)
        header = anchor.object
        url    = string(path, Anchors.fragment(anchor))
        link   = MarkdownStdlib.Link(header.text, url)
        level  = Utilities.header_level(header)
        print(io, "    "^(level - 1), "- ")
        MarkdownStdlib.plaininline(io, link)
        println(io)
    end
    println(io)
end

function render(io::IO, mime::MIME"text/plain", node::Documents.EvalNode, page, doc)
    node.result === nothing ? nothing : render(io, mime, node.result, page, doc)
end

# Select the "best" representation for Markdown output.
using Base64: base64decode
function render(io::IO, mime::MIME"text/plain", d::Documents.MultiOutput, page, doc)
    foreach(x -> Base.invokelatest(render, io, mime, x, page, doc), d.content)
end
function render(io::IO, mime::MIME"text/plain", d::Dict{MIME,Any}, page, doc)
    filename = String(rand('a':'z', 7))
    if haskey(d, MIME"text/markdown"())
        println(io, d[MIME"text/markdown"()])
    elseif haskey(d, MIME"text/html"())
        println(io, d[MIME"text/html"()])
    elseif haskey(d, MIME"image/svg+xml"())
        # NOTE: It seems that we can't simply save the SVG images as a file and include them
        # as browsers seem to need to have the xmlns attribute set in the <svg> tag if you
        # want to include it with . However, setting that attribute is up to the code
        # creating the SVG image.
        println(io, d[MIME"image/svg+xml"()])
    elseif haskey(d, MIME"image/png"())
        write(joinpath(dirname(page.build), "$(filename).png"), base64decode(d[MIME"image/png"()]))
        println(io, """
            ![]($(filename).png)
            """)
    elseif haskey(d, MIME"image/webp"())
        write(joinpath(dirname(page.build), "$(filename).webp"), base64decode(d[MIME"image/webp"()]))
        println(io, """
            ![]($(filename).webp)
            """)
    elseif haskey(d, MIME"image/jpeg"())
        write(joinpath(dirname(page.build), "$(filename).jpeg"), base64decode(d[MIME"image/jpeg"()]))
        println(io, """
            ![]($(filename).jpeg)
            """)
    elseif haskey(d, MIME"image/gif"())
        write(joinpath(dirname(page.build), "$(filename).gif"), base64decode(d[MIME"image/gif"()]))
        println(io, """
            ![]($(filename).gif)
            """)
    elseif haskey(d, MIME"text/plain"())
        render(io, mime, MarkdownStdlib.Code(d[MIME"text/plain"()]), page, doc)
    else
        error("this should never happen.")
    end
    return nothing
end

## Basic Nodes. AKA: any other content that hasn't been handled yet.

function render(io::IO, ::MIME"text/plain", other, page, doc)
    println(io)
    MarkdownStdlib.plain(io, other)
    println(io)
end

render(io::IO, ::MIME"text/plain", str::AbstractString, page, doc) = print(io, str)

# Metadata Nodes get dropped from the final output for every format but are needed throughout
# rest of the build and so we just leave them in place and print a blank line in their place.
render(io::IO, ::MIME"text/plain", node::Documents.MetaNode, page, doc) = println(io, "\n")

function render(io::IO, ::MIME"text/plain", raw::Documents.RawNode, page, doc)
    raw.name === :html ? println(io, "\n", raw.text, "\n") : nothing
end

## Markdown Utilities.

# Remove all header nodes from a markdown object and replace them with bold font.
# Only for use in `text/plain` output, since we'll use some css to make these less obtrusive
# in the HTML rendering instead of using this hack.
function dropheaders(md::MarkdownStdlib.MD)
    out = MarkdownStdlib.MD()
    out.meta = md.meta
    out.content = map(dropheaders, md.content)
    out
end
dropheaders(h::MarkdownStdlib.Header) = MarkdownStdlib.Paragraph([MarkdownStdlib.Bold(h.text)])
dropheaders(v::Vector) = map(dropheaders, v)
dropheaders(other) = other

end


text:
#= #############################################################################
Mesh Types

The mesh is generated via preprocessing from the M1d1d struct just before the
simulation.
############################################################################# =#
abstract type AbstractM1d1dMesh end;

"""
M1dCell:
Represents the structure for a regular, equaly sized 1d mesh:

    vol: volume of cell
    len: length of cell
    dA: cross section area normal to direction of len
"""
struct M1dCell{T <: AbstractFloat}
    vol::T
    len::T
    dA::T
end

"""
SubMesh1D:
Mesh type for the additiona discretization of the scrap pieces
here a symmetry conditin will be used, so the real no of cells
is ceil(no_cells_scrap_piece/2)
"""
struct SubMesh1D
    no_cells::Integer
    sub_cells::M1dCell
end

"""
Bulk1dMesh:
Mesh consiting out of gas_cells and solid_cells which overlap each other and may
exchange energy terms during the modeling. Both cells types define 1d
discretized meshes with constant spacing and cell volume.

    no_cells: number cells over length of shaft (bulk)
    A_fs: Interface area between solid and fluid cell(s)
    gas_cells: Properties of fluid (gas) cells
    solid_cells: Properties of solid cells
    solid_1d_submesh: If existent (!= nothing) proerties of the solid 1d submesh for thermal heat transfer inside the scrap pieces in each solid bulk (shaft) cell
"""
struct M1d1dMesh <: AbstractM1d1dMesh
    no_cells::Integer
    A_fs::AbstractFloat
    gas_cells::M1dCell
    solid_cells::M1dCell
    solid_1d_submesh::Union{Nothing,SubMesh1D}
end

#= #############################################################################
Mesh Value Setting Types
############################################################################# =#
"""
M1d1dVals:
Structure for storing (property) values for each M1d1d cell
    f: values of fluid cells
    s: values of solid cells
    s_sub: values for solid sub cells
"""
struct M1d1dVals{T <: AbstractFloat}
    f::Vector{T}
    s::Vector{T}
    s_sub::Union{Nothing, Vector{Vector{T}}}
end

Base.copy(S::M1d1dVals) = M1d1dVals(S.f, S.s, S.s_sub)

#= #############################################################################
Results Types
############################################################################# =#

"""
ResultsTimeStepWithoutScrapDisc:
Results for temperature distribution in bulk and offgas
"""
struct Results1d1d
    t::Float64
    T::M1d1dVals
end

#= #############################################################################
Outer Constructor Functions
############################################################################# =#
function M1d1dMesh(m::M1d1d, pid::Integer)

    # number bulk cells
    no_c = m.mesh_settings[pid].no_cells_bulk

    # length of bulk cell
    len_c =  m.bulk[pid].length / no_c

    # bulk volume
    V_b = m.bulk[pid].length * m.bulk[pid].cross_sect_surf_area

    # bulk volume of single cell
    V_bc = V_b / no_c

    V_sc = (1.0 - m.bulk[pid].porosity) * V_bc

    V_fc = m.bulk[pid].porosity * V_bc

    dA_sc = (1-m.bulk[pid].porosity) *  m.bulk[pid].cross_sect_surf_area

    dA_fc = m.bulk[pid].porosity * m.bulk[pid].cross_sect_surf_area

    solid_cells = model1d1d.M1dCell(V_sc, len_c, dA_sc)

    gas_cells = model1d1d.M1dCell(V_fc, len_c, dA_fc)

    weight_scrap_piece =  (m.bulk[pid].scrap_props.vol * pX_bounded(
        m.bulk[pid].scrap_props.thermal_props.rho, m.bulk[pid].T_charged))

    weight_bulk_cell = V_bc * m.bulk[pid].density

    no_scrap_pieces_per_bulk_cell = weight_bulk_cell / weight_scrap_piece

    # surface area between solid and gas cells
    A_fs_c =  ( m.bulk[pid].scrap_pieces_contact_factor *
            no_scrap_pieces_per_bulk_cell * m.bulk[pid].scrap_props.surf_area )

    if !isnothing(m.mesh_settings[pid].no_cells_scrap_piece)
        # cross section surface in thickness direction for solid scrap cell(s)
        no_sub_c = m.mesh_settings[pid].no_cells_scrap_piece

        dA_s_sub = m.bulk[pid].scrap_props.char_cross_section_area *
                no_scrap_pieces_per_bulk_cell

        len_s_sub = m.bulk[pid].scrap_props.char_thickness / (2.0 * no_sub_c)

        vol_s_sub = V_sc / (2.0 * no_sub_c)

        solid_1d_subcell = M1dCell(vol_s_sub, len_s_sub, dA_s_sub)

        solid_1d_submesh = SubMesh1D(no_sub_c, solid_1d_subcell)

    else
        solid_1d_submesh = nothing
    end

    return M1d1dMesh(no_c, A_fs_c, gas_cells, solid_cells, solid_1d_submesh)
end

function M1d1dVals(mesh1d1d::M1d1dMesh;
    init_val = 0.0)::M1d1dVals

    init_vec = ones(Float64, mesh1d1d.no_cells) .* init_val

    if !isnothing(mesh1d1d.solid_1d_submesh)
        sub_mesh_init = Vector{Vector{Float64}}(undef, mesh1d1d.no_cells)

        for i = 1:length(sub_mesh_init)
            sub_mesh_init[i] = (ones(Float64, mesh1d1d.solid_1d_submesh.no_cells)
            .* init_val)
        end
    else
        sub_mesh_init = nothing
    end

    return M1d1dVals(copy(init_vec), copy(init_vec), sub_mesh_init)
end

#= #############################################################################
Other functions
############################################################################# =#

function Base.isequal(m1::M1d1dMesh, m2::M1d1dMesh)

    return
    (
        m1.no_cells ==  m2.no_cells &&
        isapprox(m1.A_fs, m2.A_fs) &&
        m1.gas_cells == m2.gas_cells &&
        m1.soid_cells == m2.soid_cells
    )

end

function Base.isequal(sm1::Union{Nothing, SubMesh1D}, sm2::Union{Nothing, SubMesh1D})
    return
    (
        (isnothing(sm1) && isnothing(sm2)) ||
        (
            sm1.no_cells == sm2.no_cells &&
            sm1.sub_cells == sm2.sub_cells
        )
    )
end

function Base.isequal(c1::M1dCell, c2::M1dCell)
    return
    (
        isapprox(c1.vol, c2.vol) &&
        isapprox(c1.len, c2.len) &&
        isapprox(c1.dA, c2.dA)
    )
end

"""
print1d1dvals:
Formated output of M1d1dVals struct.
"""
function print1d1dvals(v::M1d1dVals)

    println("T-off-gas: \t T-solid")
    for i = 1:1:length(v.f)
        Printf.@printf("% 6.2f \t % 6.2f",v.f[i],v.s[i])

        if !isnothing(v.s_sub)
            print("---->(" )
            for j=1:1:length(v.s_sub[i])
                Printf.@printf("% 6.2f,",v.s_sub[i][j])
            end
            print(")" )
        end
        print("\n")
    end
end

function printInfo(mesh::M1d1dMesh;tabs::Int=0)

    if tabs > 0
        tabs_str = "\t".^tabs
    else
        tabs_str = ""
    end

    print_log(m1d1d_logfile, tabs_str * "Mesh-Info:")

    print_log(m1d1d_logfile, tabs_str * "No bulk cells: " * string(mesh.no_cells))
    print_log(m1d1d_logfile, tabs_str * "Cell gas-solid surface area: " * string(mesh.A_fs))
    print_log(m1d1d_logfile, tabs_str * "Gas cells:")
    printInfo(mesh.gas_cells;tabs = (tabs + 1))
    print_log(m1d1d_logfile, tabs_str * "Solid cells:")
    printInfo(mesh.solid_cells;tabs = (tabs + 1))

    if !isnothing(mesh.solid_1d_submesh)
        print_log(m1d1d_logfile, tabs_str * "Submesh:")
        print_log(m1d1d_logfile, tabs_str * "\t no sub cells: " *
                string(mesh.solid_1d_submesh.no_cells))
            print_log(m1d1d_logfile, tabs_str * "\t Subcells:")
            printInfo(mesh.solid_1d_submesh.sub_cells;tabs = (tabs + 2))
    end
end

function printInfo(mesh_cell::M1dCell; tabs::Int=0)

    if tabs > 0
        tabs_str = "\t".^tabs
    else
        tabs_str = ""
    end
    print_log(m1d1d_logfile, tabs_str * "vol: " * string(mesh_cell.vol) )
    print_log(m1d1d_logfile, tabs_str * "len: " * string(mesh_cell.len) )
    print_log(m1d1d_logfile, tabs_str * "dA: " * string(mesh_cell.dA) )
end


text:
function write_request(channel::gRPCChannel, controller::gRPCController, service::ServiceDescriptor, method::MethodDescriptor, request)
    connection = channel.session
    path = "/" * service.name * "/" * method.name
    headers = [(":method", "POST"),
               (":path", path),
               (":scheme", "http"),
               ("content-type", "application/grpc+proto")]

    channel.stream_id = Session.next_free_stream_identifier(connection)
    @debug("writing request", stream_id=channel.stream_id)
    Session.put_act!(connection, Session.ActSendHeaders(channel.stream_id, headers, false))
    data_buff = to_delimited_message_bytes(request)
    Session.put_act!(channel.session, Session.ActSendData(channel.stream_id, data_buff, true))

    @debug("wrote request", stream_id=channel.stream_id, nbytes=length(data_buff))
    nothing
end

function read_response(channel::gRPCChannel, controller::gRPCController, response)
    connection = channel.session

    evt = Session.take_evt!(connection)

    if !isa(evt, EvtRecvHeaders)
        @warn("unexpected event while reading response (closing channel)", evt)
        close(channel)
        return response
    end

    @debug("read response", event_stream_id=evt.stream_identifier, channel_stream_id=channel.stream_id)

    headers = evt.headers
    @debug("read response", headers)
    assert_http_status(headers)
    ret, err = assert_grpc_status(headers)
    # check if we received only trailer headers, then there is no response to send
    (ret == 0) && (return response)

    @debug("reading next evt (data/trailer)")
    evt = Session.take_evt!(connection)
    if isa(evt, EvtRecvData)
        data = evt.data
        from_delimited_message_bytes(data, response)
    elseif isa(evt, EvtRecvHeaders) # trailer
        assert_grpc_status(evt.headers)
        return response
    end

    @debug("reading next evt (trailer)")
    evt = Session.take_evt!(connection)

    if !isa(evt, EvtRecvHeaders)
        @warn("unexpected event while reading response (closing channel)", evt)
        close(channel)
        return response
    end

    assert_grpc_status(evt.headers)
    return response
end

# gRPC client implementation
#
mutable struct gRPCClient
    sock::TCPSocket
    channel::gRPCChannel

    gRPCClient(port::Integer) = gRPCClient(ip"127.0.0.1", port)
    function gRPCClient(ip::IPv4, port::Integer)
        buffer = connect(ip, port)
        connection = Session.new_connection(buffer; isclient=true)
        channel = gRPCChannel(connection)
        new(buffer, channel)
    end
end

close(client::gRPCClient) = close(client.channel)
stub(client::gRPCClient, stubfn) = stubfn(client.channel)