Dear Lammps users,
I am planning to run MD simulations of metal-oxide surfaces in LAMMPS.
Is there a way to set up, for example, “a ZnO (1 0 1 0) surface” in the LAMMPS input script directly ?
Thanks for the answers in advance.
Nagesh
Dear Lammps users,
I am planning to run MD simulations of metal-oxide surfaces in LAMMPS.
Is there a way to set up, for example, “a ZnO (1 0 1 0) surface” in the LAMMPS input script directly ?
Thanks for the answers in advance.
Nagesh
If its a perfect lattice (i.e a unit cell and basis atoms),
then you can use the lattice command, and fill a geometric
region with atoms on that lattice. If the region doesn't
fill the simulation box, then you have a free surface.
Steve
I'm trying to make a crystalmaker generator program, The program
should be able to generate FCC, BCC, and a custom lattice basis
structure, if the primitive lattice vectors and the positions of the
atoms (basis) are given. I have sucesfully created a BCC and FCC
structure. The algorithm is as follow ..1). Define the primitive
lattice vectos 2). Translatre the cell R = na1 + ma2 + la3 , where
n,m,l are integers, and 3). Create the conventional cell , and then
defining a cuting radious (look the source code below). I tried to
open Lammps source code "Lattice.cpp " , and reuse it as part of my
source code , but i have failed to grasp the idea behind creation of a
custum lattice structue. Can someone please explain me how lammps
creates a custum lattice ?
Thank you
Oscar Guerrero .
// RCUT SECTION for BCC and FCC crystal structure only
// create a spherical octant region around the cell box then cut atoms
// creating paraleliped (put atoms inside conventional cell) use
1.3*radius cut is fine
radius = sqrt(rcutx*rcutx + rcuty*rcuty + rcutz*rcutz);
for (int i = 1; i <= 1.3*radius; i++){
for (int j = 1; j <= 1.3*radius; j++){
for (int k = 1; k <= 1.3*radius; k++){
x = i*arg1[0] + j*arg2[0] + k*arg3[0];
y = i*arg1[1] + j*arg2[1] + k*arg3[1];
z = i*arg1[2] + j*arg2[2] + k*arg3[2];
if( (x <= a*rcutx) && (x > 0) ){
if( (y <= a*rcuty) && (y > 0) ){
if( (z <= a*rcutz) && (z > 0) ){
store.rx.push_back (x);
store.ry.push_back (y);
store.rz.push_back (z);
total_atoms = total_atoms + 1 ;
// the if conditional is used to ignore atoms are outside the
conventional cubic cell
}}}}}}