# What software can be used for Crystal Surface Calculations?

I have been unable to find software for making surface calculations, so I currently perform surface calculations in LAMMPS by creating crystal structures in python, before rotating and cutting them into slabs then simulating. However, whilst trying to perform surface calculations on FePt L1$$_0$$ my python code wasn't rotating the crystal structure correctly. Trying to solve this issue is significantly slowing down my work, and I'm sure there is a better way of doing it.

What software is generally the best to use, what software or methods do you use?

For reference, I am using MEAM potentials for my calculations (it's a comparative study, doesn't have to be completely accurate), and all I really need is something which can make slabs and setup simulations in LAMMPS. Even just making the slabs is good enough, I'm happy porting it over to LAMMPS. To clarify, I am happy for any suggestion that covers:

1. A program that can generate structures for input to LAMMPS only.
2. A program that can generate structures and interface with LAMMPS itself.
3. A program that can generate structures and performs calculations with its own code. For the above problem said program must be able to use MEAM potentials.

Although I have given my own problem in detail, I think it could be worthwhile listing almost anything that you personally use, or have used, so the community can use this post as a reference. When I have solved my own code's problems I will come back and list it as a github repo/ python package.

• What kind of things do you want to calculate? What level of theory do you usually employ? Dec 3, 2021 at 20:45
• just posted in SciComp SE: Trying to move some of my scipy/numpy calculation to GPU, how to avoid disappointing results?
– uhoh
Dec 4, 2021 at 0:07
• @IanBush I have added more information to the question, hopefully that helps you or anyone else answer it! Dec 4, 2021 at 15:03
• It sounds like your problem is not the calculation itself, but the generation of the proper model/geometry for the input. Can you clarify that?
– Greg
Dec 4, 2021 at 17:24
• @Greg Hopefully the clarification at the bottom gives some insight into what I'm driving at here. The calculation is not really the issue, I am aware of methods used to perform them in LAMMPS, however any software recommendation that could streamline my current process would be very helpful. Dec 4, 2021 at 21:16

## Atomsk

Creating surface based on Miller indices is tough work if it is not cubic lattice. for example $$\langle011\rangle$$ direction and $$(011)$$ plane normal in case of $$c>a$$ is not same. So, in case you are trying to create orthogonal simulation box, you may end up in a situation where orthogonal box is quite large or periodicity is not found. Dependency of software is another challenge, whether it is correctly finding the surface or not. I normally do these thing manually in OVITO by slicing and cutting.

Create a cubic lattice with a specific crystal orientation Another software solution you can check is atomsk.

atomsk --create bcc 2.85 Fe orient [121] [-101] [1-11] lmp

Or you can rotate using specific angle such as

atomsk --create bcc 2.85 Fe -rotate z 45 -rotate y 35 -orthogonal-cell lmp

Or you can feed LAMMPS data file and rotate it by Euler angle, Even though I prefer to do things manually in OVITO.