# expressing lattice parameter as a function of temperature.

Dear lammps users,

I am working on a problem where the lattice parameter and cohesive energy of a crystal is to be found using relaxation method. This lattice parameter is then to be expressed as a function of temperature. Can someone tell me the script for doing so ?
The following is the script I have used:

# ---------- Initialize Simulation ---------------------

clear
units metal
dimension 3
boundary p p p
atom_style atomic
atom_modify map array

# ---------- Create Atoms ---------------------

lattice fcc 4
region box block 0 1 0 1 0 1 units lattice
create_box 1 box

lattice fcc 4 orient x 1 0 0 orient y 0 1 0 orient z 0 0 1
create_atoms 1 box
replicate 1 1 1

# ---------- Define Interatomic Potential ---------------------

pair_style eam/alloy
pair_coeff * * Al99.eam.alloy Al
neighbor 2.0 bin
neigh_modify delay 10 check yes

# ---------- Define Settings ---------------------

compute eng all pe/atom
compute eatoms all reduce sum c_eng

# ---------- Run Minimization ---------------------

reset_timestep 0
fix 1 all box/relax iso 0.0 vmax 0.001
thermo 10
thermo_style custom step pe lx ly lz press pxx pyy pzz c_eatoms
min_style cg
minimize 1e-25 1e-25 5000 10000

variable natoms equal “count(all)”
variable teng equal “c_eatoms”
variable length equal “lx”
variable ecoh equal “v_teng/v_natoms”

print “Total energy (eV) = {teng};" print "Number of atoms = {natoms};”
print “Lattice constant (Angstoms) = {length};" print "Cohesive energy (eV) = {ecoh};”

print “All done!”

Thanks and regards,

Hrushikesh Kulkarni,
Mtech student MEMS,
IIT BOMBAY,
Mumbai.

determining the equilibrium dimensions at finite temperature is a much more complex procedure than doing it through minimization (i.e. at 0K).
you need to do MD simulations with a thermostat and barostat at the given temperatures and for that you need to first equilibrate the system to the desired state and then determine time averaged results over a sufficiently long period.

this is a standard MD protocol and can be scripted in LAMMPS using loops.

Axel.