the question of elastic constant calculation

Dear All,
I am using LAMMPS (14 Feb 2014) and have some questions :
1.I want to calculate the elastic constants of metallic glasses,which must be cooled down quickly from high temperature.Therefore I cool them down to 0.1K and 300K.Then I load the amorphours configuration via read_data command.However,the elastic constants I get are sensitive to the choice of the variable {up} in init.mod ,even though I change {maxiter/maxeval} in init.mod from {100/1000} t0 {1000/1000} or {5000/10000} or {5000/100000} in order to verify that the minimization of energy w.r.t atom positions in the deformed cell is fully converged.The elastic constants I get just vary from 10~1000Gpa in the order of magnitude.I just wonder how to set the parameters to get the accurate result?

  1. In the example of elastic constant calculation given by lammps,I run the input script ,and get the result(C11,C12,and C44) consistent with that given in.elastic,however ‘Elastic Constant C26all = -7.79739532763451e-011 GPa’ seems incorrect in comparision with the fact that C26 should be positive?

Ok …I just need to give and advise (hopefully will be useful) …

{5000/100000} in order to verify that the minimization of energy w.r.t atom positions in the deformed cell is fully converged.The elastic constants I get just vary from 10~1000Gpa in the order of magnitude.I just wonder how to set the parameters to get the accurate result?

ANSWER:
Why not instead of using the LAMMPS example script … You better use a method like the one cited in this reference : http://journals.aps.org/prb/abstract/10.1103/PhysRevB.32.733 You can use a pressure fluctuation method to calculate the elastic constants at different temperatures (let say 300K and 150K , etc) , then make a plot of ECONSTANT vs Temperature and find the value at 0K by using extrapolation … The method i cite in this reference is really easy to use … The way I do is by first running a lot of time steps to get the log output with the pressure information and then using a external program such as MATLAB/OCTAVE I read the lamps output file and run the calculations … It requires a little bit of programming skills, and a little bit of imagination to implement the formula … But it is guaranteed to have alot of FUN on the process ^_____^

A salute–
Oscar Guerrero

Dear All,
I am using LAMMPS (14 Feb 2014) and have some questions :
1.I want to calculate the elastic constants of metallic glasses,which must
be cooled down quickly from high temperature.Therefore I cool them down to
0.1K and 300K.Then I load the amorphours configuration via read_data
command.However,the elastic constants I get are sensitive to the choice of
the variable \{up\} in init\.mod ,even though I change {maxiter/maxeval} in
init.mod from {100/1000} t0 {1000/1000} or {5000/10000} or {5000/100000} in
order to verify that the minimization of energy w.r.t atom positions in the
deformed cell is fully converged.The elastic constants I get just vary from
10~1000Gpa in the order of magnitude.I just wonder how to set the parameters
to get the accurate result?

You should try different ${up} values (Increase/decrease the number in
one direction) till you get converged results.

2. In the example of elastic constant calculation given by lammps,I run the
input script ,and get the result(C11,C12,and C44) consistent with that given
in.elastic,however 'Elastic Constant C26all = -7.79739532763451e-011 GPa'
seems incorrect in comparision with the fact that C26 should be positive?

I would see this number a zero, not a positive nor a negative number.

Ray

Thank you for your answer.

You tell me to try different ${up} values (Increase/decrease the number in one direction) till I get converged results.I have tried before as you said.
However,‘in.elastic’ given by lammps tells us :

‘It is also important to verify that the minimization of energy w.r.t atom positions in the deformed cell is fully converged. One indication of this is that the elastic constants are insensitive to the choice of the variable ${up} in init.mod. Another is to check the final max and two-norm forces reported in the log file. If you know that minimization is not required, you can set maxiter = 0.0 in init.mod’

We can get the information that elastic constants are insensitive to the choice of the variable {up} when using correct parameters.Therefore,if I change {up} (keeping {maxiter/maxeval} invariable),elastic constants should change slightly in the case of minimization of energy convergence.However,when I keep {maxiter/maxeval} invariable,elastic constants are very sensitive to the change of {up} .Therefore,I think something goes wrong in the minimization of energy,not in the values of {up}.I am still confused about how to deal with the problem?

Thank you very much.

No, there are certain limits on the strain you can apply to the box.
If you are outside these limits, then you will get inconsistent
results no matter how good the minimizations were.

Ray

Thank you very much.After getting your advises,I still have some questions:
1.I set ${maxiter/maxeval} in init.mod as {2000/10000} and lammps only uses ~1900 steps for minimization,which means the time of minimizations is enough?

2.Keeping {maxiter/maxeval} invariable, I have try different {up} values at 10^-8 ,10^-7…10^-1.When at 10^4,10^3 and 10^2,the results are approximate.Therefore I think 10^-4~10^-2 is so-called ‘certain limits’ you said,right?

3.Is this the right way to be sure that {up} values I have set is corret? Also so many {up} values at 10^4,10^3 and 10^2,which one will give me the most precise answer?

4.I still get the negative values in some elastic constants:

Elastic Constant C11all = 133.830070148081 GPa
Elastic Constant C22all = 134.313225222879 GPa
Elastic Constant C33all = 132.54702226596 GPa
Elastic Constant C12all = 92.8832319436 GPa
Elastic Constant C13all = 93.2255133132443 GPa
Elastic Constant C23all = 92.1992197604889 GPa
Elastic Constant C44all = 20.5069393425514 GPa
Elastic Constant C55all = 20.7278581590505 GPa
Elastic Constant C66all = 21.0436703727432 GPa
Elastic Constant C14all = -0.691932919460323 GPa
Elastic Constant C15all = 2.37036431797458 GPa
Elastic Constant C16all = -0.0634576718570005 GPa
Elastic Constant C24all = 0.210147628344668 GPa
Elastic Constant C25all = 0.773126288216208 GPa
Elastic Constant C26all = 0.193972647247005 GPa
Elastic Constant C34all = 0.080961202989925 GPa
Elastic Constant C35all = -1.51475843330048 GPa
Elastic Constant C36all = 0.274283352974724 GPa
Elastic Constant C45all = 0.644701545430025 GPa
Elastic Constant C46all = 0.2829340582919 GPa
Elastic Constant C56all = -0.76162103355545 GPa

the same case appears in the lammps example,although they are very small:

Elastic Constant C11all = 133.830070148081 GPa
Elastic Constant C22all = 134.313225222879 GPa
Elastic Constant C33all = 132.54702226596 GPa
Elastic Constant C12all = 92.8832319436 GPa
Elastic Constant C13all = 93.2255133132443 GPa
Elastic Constant C23all = 92.1992197604889 GPa
Elastic Constant C44all = 20.5069393425514 GPa
Elastic Constant C55all = 20.7278581590505 GPa
Elastic Constant C66all = 21.0436703727432 GPa
Elastic Constant C14all = -0.691932919460323 GPa
Elastic Constant C15all = 2.37036431797458 GPa
Elastic Constant C16all = -0.0634576718570005 GPa
Elastic Constant C24all = 0.210147628344668 GPa
Elastic Constant C25all = 0.773126288216208 GPa
Elastic Constant C26all = 0.193972647247005 GPa
Elastic Constant C34all = 0.080961202989925 GPa
Elastic Constant C35all = -1.51475843330048 GPa
Elastic Constant C36all = 0.274283352974724 GPa
Elastic Constant C45all = 0.644701545430025 GPa
Elastic Constant C46all = 0.2829340582919 GPa
Elastic Constant C56all = -0.76162103355545 GPa

Can I regard them as normal phenomena,or should I need any modifications in my script?

Thanks for your time

Thank you very much.After getting your advises,I still have some questions:
1.I set ${maxiter/maxeval} in init.mod as {2000/10000} and lammps only uses
~1900 steps for minimization,which means the time of minimizations is
enough?

It appears so.

2.Keeping \{maxiter/maxeval\} invariable, I have try different {up} values
at 10^-8 ,10^-7...10^-1.When at 10^4,10^3 and 10^2,the results are
approximate.Therefore I think 10^-4~10^-2 is so-called 'certain limits' you
said,right?

Appears so.

3.Is this the right way to be sure that \{up\} values I have set is corret? Also so many {up} values at 10^4,10^3 and 10^2,which one will give me the
most precise answer?

This is up to you to decide since you will be the one defending your
results/paper.

4.I still get the negative values in some elastic constants:

I wouldn't be too worried about these small numbers. But you have to
decide if you can confidently defend your results.

Ray