#!/usr/bin/python
import numpy as np
import argparse
parser = argparse.ArgumentParser()
# Arguments (required)
parser.add_argument('L', type=int, help='length input for N=2(l^3) atom configuration')
parser.add_argument('outfile', help='name of output configuration file; default: `%(default)s`')
args = parser.parse_args()

L=2*args.L; N=2*(args.L**3)

allCoords=[]
for l in range(L): 
    for r in range(L): 
        for c in range(L):
            if l%2==r%2==c%2: allCoords.append((l,r,c))

s0 = np.zeros((L,L,L),dtype=int)
pool=(N/4)*[1,2,3,4]
species=np.random.permutation(pool)
for n in range(N):
    (l,r,c)=allCoords[n]
    s0[l,r,c]=species[n]

with open(args.outfile, 'w') as OutFile:
    for slice in s0:
        np.savetxt(OutFile, slice, fmt='%1d')
        OutFile.write('\n')
    OutFile.close()
