elastic constant script

Hi folks,

In the LAMMPS distribution package, there is a script which can calculate the elastic constants.

Can anybody tell whether this script has some restrictions, for example, it works good for cubic systems and not for,say, HCP systems ?
Or, it works as good as far as the simulation box is cubic ?

Thanks and regards,

Aidan can answer this.

Steve

This script applies elementary deformations in the six distinct strain
components and measures changes in the six stress components. By combining
results appropriately, it estimates a single value for each of the 21
distinct elastic constants. It makes no special assumptions about crystal
symmetry, etc. I know it is valid for all orthorhombic cells. I believe it
is also valid for completely general triclinic cells, but I have not
tested it much for this case. Read the comments at the top of in.elastic
for more guidance on how to use it correctly.

Aidan,

Thank you for the reply.

I have another question. In the “init.mod” file the structure of the material is defined with the “lattice” command. For simple structures, it is very much convenient.

Now, say, I want to introduce a dislocation in the lattice and want to know how it affects the elastic constants. In this case, I’ll like to make the structure by some computer script and feed this structure to LAMMPS using the ‘read_data’ command.

Is it necessary to specify the structure always with the “lattice” command for the elastic constant calculations ?
Alternatively, can it read the structure information using the ‘read_data’ command and then make finite deformation to the structure for calculating elastic constants ?

Aidan,

Thank you for the reply.

I have another question. In the "init.mod" file the structure of the
material is defined with the "lattice" command. For simple structures, it is
very much convenient.

Now, say, I want to introduce a dislocation in the lattice and want to know
how it affects the elastic constants. In this case, I'll like to make the
structure by some computer script and feed this structure to LAMMPS using
the 'read_data' command.

Is it necessary to specify the structure always with the "lattice" command
for the elastic constant calculations ?

no. why should it make a difference?
the purpose of the lattice command is to
easily determine a lot of atom positions,
and allow to some commands to specify
lengths in multiple of the resulting lattice
vector components.

once the positions are created and if all
commands that would refer to the lattice
as scaling factor use "units box", there is
no difference in how you input your coordinates
or whether you use the lattice command at all.

Alternatively, can it read the structure information using the 'read_data'
command and then make finite deformation to the structure for calculating
elastic constants ?

sure. why not?

....and apart from that. there is a very, very
simple way to check by yourself if this works.

just run the script once as is and then define
the exact same system via a data file and
do not specify the lattice command and
compare the results. you can't get a better
confirmation than that.

axel.

What Axel says is correct. Moreover, the details of how the structure is
initially constructed
are deliberately isolated from the elastic constant calculation by putting
it a separate include file, init.mod, the first line of which
says:

"# NOTE: This script can be modified for different atomic structures,
# units, etc. See in.elastic for more info."

So, feel free to get creative with this. Also, try taking Axel's advice
about trying to figure
things out for yourself.

Aidan