Vacancy emerges when building GB using lammps command

I use the following script from EVOCD to build grain boundary of bcc Fe.

# ---------- Create Atomistic Structure --------------------- 
lattice bcc ${latparam} 
region whole block 0.000000 ${xlen} -${ylength} ${ylength} 0.000000 ${zlen} units box 
create_box 2 whole 

region upper1 block INF INF 0.000000 INF INF INF units box 
region upper intersect 2 whole upper1
lattice bcc ${latparam} orient x ${x11} ${x12} ${x13} orient y ${y11} ${y12} ${y13} orient z ${z11} ${z12} ${z13} # orient x  0  2  1 orient y  0 -1  2 orient z  1  0  0 
create_atoms 1 region upper 

region lower1 block INF INF INF 0.000000 INF INF units box 
region lower intersect 2 whole lower1
lattice bcc ${latparam} orient x ${x21} ${x22} ${x23} orient y ${y21} ${y22} ${y23} orient z ${z21} ${z22} ${z23} # orient x  0  2 -1 orient y  0  1  2 orient z  1  0  0 
create_atoms 2 region lower

When I change the lattice orientation to get GBs with different characters, sometimes it gives me the following result:

image

Can anyone help me?

Best,
Chris

What is it that you are showing in that picture?
Please provide a complete input script to re-create it.

Please also note that if you have a lattice geometry where lattice points are located exactly on region or box boundaries, there is an ambiguity of whether the atom should be created or not and - and this may be more relevant here - those coordinates or intermediate values to compute them may not be exactly representable in floating point format (and since it uses powers of 2 and not 10 internally, it may not be obvious as in the case of 0.1, which is not exactly representable in standard floating-point representation) and thus points may be computed to be at a slightly larger or smaller value. These ambiguities and floating point math “fluctuations” can be avoided by slightly shifting the lattice origin with the “origin” option.