# encoding: utf-8
from __future__ import print_function
from yade import qt

#### short description of script
print('This script shows the use of the function hexaNet of module pack (interactions are not initialised)')

#### define parameters for the net
# mesh geometry
mos = 0.08
a = 0.04
b = 0.04
# wire diameter
d = 2.7/1000.
# net dimension
Lx = 0.2
Ly = 0.15

# properties of particles
radius = d*4.

#### startAtCorner=True
kw = {'color':[1,1,0],'wire':True,'highlight':False,'fixed':False,'material':-1}

#### packing 1
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[0,0,0], xLength=Lx, yLength=Ly, mos=mos, a=a, b=b, startAtCorner=True, isSymmetric=True, **kw )
O.bodies.append(netpack)
print('Packing 1:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 2
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[0.4,0,0], xLength=Lx, yLength=Ly, mos=mos, a=a, b=b, startAtCorner=True, isSymmetric=False, **kw )
O.bodies.append(netpack)
print('Packing 2:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 3
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[0,-0.4,0], xLength=Lx, yLength=Ly+0.05, mos=mos, a=a, b=b, startAtCorner=True, isSymmetric=True, **kw )
O.bodies.append(netpack)
print('Packing 3:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 4
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[0.4,-0.4,0], xLength=Lx, yLength=Ly+0.05, mos=mos, a=a, b=b, startAtCorner=True, isSymmetric=False, **kw )
O.bodies.append(netpack)
print('Packing 4:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### startAtCorner=False
kw = {'color':[1,0,0],'wire':True,'highlight':False,'fixed':False,'material':-1}

#### packing 1
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[1,0,0], xLength=Lx, yLength=Ly, mos=mos, a=a, b=b, startAtCorner=False, isSymmetric=True, **kw )
O.bodies.append(netpack)
print('Packing 1:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 2
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[1.4,0,0], xLength=Lx, yLength=Ly, mos=mos, a=a, b=b, startAtCorner=False, isSymmetric=False, **kw )
O.bodies.append(netpack)
print('Packing 2:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 3
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[1,-0.4,0], xLength=Lx, yLength=Ly+0.05, mos=mos, a=a, b=b, startAtCorner=False, isSymmetric=True, **kw )
O.bodies.append(netpack)
print('Packing 3:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)


#### packing 4
[netpack,lx,ly] = hexaNet( radius=radius, cornerCoord=[1.4,-0.4,0], xLength=Lx, yLength=Ly+0.05, mos=mos, a=a, b=b, startAtCorner=False, isSymmetric=False, **kw )
O.bodies.append(netpack)
print('Packing 4:')
print('Real net length in x-direction [m]: ', lx)
print('Real net length in y-direction [m]: ', ly)

## to see it
v=qt.Controller()
v=qt.View()
