Hi Adrian,
On 3/31/2016 8:25 AM, Roger Kaufman wrote:
> On bravais I want to truncate the grid per the elements in -g. While
> doing this I want to change -g to take doubles so that the grid can be
> truncated to fractional values. I don't know what demons this will
> release.
I think this will take a bit of time so I don't want this to hold up the
next release. I will probably find bugs too and so it will need a while
to work on. And some of the parameters are confusing and should be
worked on.
I wrote a python script to compare what it could do on FCC as opposed to
what it does now. The grid dimensions would remain integer, but the grid
would be trimmed to match the -g x,y,z
If you run the script it can be seen that it made sense to add to the
grid, per the unit cells as it does now.
'shell i 3 3 3' is the only time the grid actual can be true to x,y,z
input. green points = current output. yellow points = trimmed output.
'shell p 3 3 3' shows that it can be a 3x3x3 array of points but it
doesn't line up with cells emanating from the center. Same for f and e
centering.
I am leaning toward the mod to be: show the actual array of cells
requested (as in the yellow points), then optionally add to the grid to
make complete cells as it does now (the green points), or optionally
trim points outside the cells.
'shell 8 3 3 3' The '8' centering I am not sure what to do with it.
There is a symmetry here but it isn't a valid centering per the cell
structure. And it can be achieved by shifting the grid. It produced
different Waterman polyhedra. Perhaps instead it should be thought of as
an interesting offset point.
bravais fcc -c s -g a -G i -r 3 -C i -F S -T 128 | antiview
bravais fcc -c s -g a -G 8 -r 3 -C i -F S -T 128 | antiview
So there are some things to think about with the program.
Roger
#!/usr/bin/python
# #!/bin/bash
# rm cube.off
# off_trans -S $1,$2,$3 cube > cube.off
# ./bravais fcc -g $1,$2,$3 -G i -k cube.off -r k -Z red -u | antiview
-v 0.05
import os
import sys
gtype = sys.argv[1]
g1 = float(sys.argv[2])
g2 = float(sys.argv[3])
g3 = float(sys.argv[4])
print g1,g2,g3
os.system("off_trans -S %s,%s,%s cube > cube.off" % (g1*2,g2*2,g2*2))
os.system("./bravais fcc -g %s,%s,%s -G %s -k cube.off -r k -Z red -u -V
yellow | antiview -v 0.1 &" % (int(g1),int(g2),int(g2),gtype))
os.system("./bravais fcc -g %s,%s,%s -G %s -Z red -u -V green | antiview
-v 0.1" % (int(g1),int(g2),int(g2),gtype))