Hi everybody,

I am very new to MD and LAMMPS. To acquaint myself with the program I am

trying to calculate the Young's modulus of Al. For this I have used fix

npt with aniso keyword to apply a tensile pressure in z direction.

Using, DE = 0.5 Ye2, I can then calculate Y from the change in potential

energy as the strain increases (in a simplistic way, neglecting strain

in x and y directions). However, due to fluctuations in values, as well

as the fact that a small quantity (e) is squared, values of Y vary

significantly and even take negative values. (see attached)

My questions are:

1. Is what I am doing conceptually okay (except for the neglect of

strains in other directions even though they are not small)?

2. What can I do to get less variation in Y values?

3. Is there a better way to calculate Young modulus and say Poison

ratio?

4. Alternatively If I want to plot the stress strain curve, what is

the easiest way to calculate the stress at a given cross-section?

An unrelated question is:

To create a polycrystalline solution domain in LAMMPS or VMD, do I have

to create each grain individually by using lattice orient commands or

can this be done automatically?

Thanks a lot for your help

Rohit Rai

2 in.tensile (977 Bytes)

tensile.xls (64.5 KB)

There are 2 computes in LAMMPS which will compute stress:

compute pressure and compute stress/atom. The latter can

be done for subsets of atoms, if that gets closer to what you want.

Re: polycrystalline samples, the only option in LAMMPS for

that is create_atoms on a lattice (multiple times if you like)

and delete_atoms overlap to delete overlaps. You'd be

better off to build such sample yourself external to LAMMPS

and simply input the resulting atom coords in a data file.

Steve

Hi,

To calculate axial stress in z direction, I define a group of atoms

(middle) forming a cross-section transverse to z. I then calculate

stress/atom for atoms in the group, sum them up, and divide by volume of

that layer (since stress/atom is a Pressure-volume quantity). Is this a

right way to calculate stress in z direction?

compute stress middle stress/atom

compute strsum middle reduce sum c_stress[1] c_stress[2]

c_stress[3]

variable zstress equal c_strsum[3]/(50*vol/2000.)

!2000= total no. of atoms, 50 = atoms in that cross-section.

I am using fix npt with aniso option.

I am seeing large fluctuations in this quantity including negative

values. How can I get reasonable stress values so that I can calculate

elastic constants from them?

Steve, thanks for earlier pointing out the problem with my input script

for reading atom co-ordinates.

Thanks everybody

Rohit Rai

Fluctuations are normal - you may want to time average.

I think Pzz is closer to what you are after - the force

across a cross-section, not total stress divided by area.

Steve

Hi

Doesn't the pressure calculation involve all atoms in the simulation domain, rather than a subset of atoms (like a transverse cross-section)? How can I specify the cross-section at which pzz is calculated?

The fluctuations in the calculated stress are very high (high -ve and +ve values) and time averaging doesn't seem to help much. Do you have any suggestions on how to reduce the fluctuations before resorting to averaging?

Thanks again

Rohit

Compute pressure does involve all the atoms. You seem to want

force across a plane of the simulation box. That isn't what compute pressure

or compute stress/atom calculate. I think what they compute is

equivalent to that, but you'll have to study the formulas and see if

what they compute is what you want.

Steve