Author Topic: script for calculation of elastic constant and verious modulas  (Read 5153 times)

0 Members and 1 Guest are viewing this topic.

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
hello sir,
            i want to study the mechanical properties of nanotube but we have old (11.8) version of Vnl and atk facility in our lab . so plz can anyone send me a script file in which i can insert the optamised nanotube.nc file for calculation of elastic constant, bulkmodulas and youngs modulas of nanotube.
plz help me.
                                     thanks

Offline Ulrik G. Vej-Hansen

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 425
  • Country: dk
  • Reputation: 8
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #1 on: October 17, 2016, 09:20 »
Version 11 is extremely old, and is no longer supported. In 2016 we have a dedicated analysis module for elastic constants.

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #2 on: October 18, 2016, 19:14 »
can we calculate it using 15.1? when  i trying to calculating elastic constant of Nanotube,  it starts but fails showing error "atk python has stopped working"  but i try using same procedure for bulk of Tic it successfully works. i have tried many times changing  various parameter but couldnot success. i m using Dft on gga with rpbe. plz suggest me the possible correct parameter to choose the calculation successful. also u can sens me script to run manually plz.

Offline Daniele Stradi

  • Supreme QuantumATK Wizard
  • *****
  • Posts: 286
  • Country: dk
  • Reputation: 3
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #3 on: October 19, 2016, 10:10 »
We have run your script using ATK 2015.1 without any issue. See attached log file. It is likely that the error you see is not related to ATK but to your machine, such as insufficient memory.

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #4 on: October 22, 2016, 09:51 »
hello sir
               i have calculated the elastic constant for TiC nanotube but dft ggives the negative values of elastic constant? what is the possible reason of the negative elastic constant values of bulk modulas , youngs modulas etc.. plz give me suggestion. here is my script file below.

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 160
  • Country: dk
  • Reputation: 25
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #5 on: October 22, 2016, 15:04 »
The bulk modulus and most elastic constants are physically meaningless, because you have a 1D-system, not a bulk system. The only quantity that might make sense to look at is the Young's modulus in z-direction. That value should not be negative.
Even then, the definition of the Young's modulus, being the derivative of the stress with respect to the strain in a certain direction, is strictly-speaking only well-defined for bulk systems. This is because the stress is normalized by the volume, which is not well-defined for a 1D-system. So, if you'd use a larger cell, with Lx ad Ly being twice as large, the volume increases by a factor 4, and consequently the stress, and therefore also the Young's modulus, would decrease by a factor of 1/4.0.
Since the elastic constants in ATK by default always refer to the bulk definition, you probably need to apply a correction factor cell_volume/actual_volume (actual_volume might e.g. be the length of the tube multiplied with some measure for its cross-sectional area) to the stress and the moduli to get reasonable results.
In the end, it might be more efficient to get the young's modulus from performing several stress calculations at different strains in z-direction and the applying a linear fit to the (volume corrected) stress_zz/strain_zz curve.

« Last Edit: October 22, 2016, 15:45 by Julian Schneider »

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #6 on: October 23, 2016, 09:11 »
yes, thank u for this important discription, and the last method may be very easiest  and logical for calculation of youngs modulas as its defination. But i cant find the option to change the strain in atk calculation.. how to extract/analise the stress report. can u plz help me to describe the procedure to calculation...
                                                                                            waiting for reply....

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 160
  • Country: dk
  • Reputation: 25
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #7 on: October 24, 2016, 10:01 »
In this case it is pretty simple, as you only have to change the z-component of the C-vector while keeping the fractional coordinates constant. You can do this in the builder in "Bulk Tools -> Lattice Parameters".
You can also do it in a script. I have attached an example script which calculates the stress at different strain values, and makes a linear fit ot get the Young's modulus in z-direction.
In the script I have made the rough assumption that the cross sectional area is the tube circumference times a sheet thickness of 2 Ang. Please reconsider this choice and use whatever you think is best.
Moreover, you probably may want to use DFT settings, which are pretty well-converged to get precise values of the stress, so you might have to go a bit beyond the default settings for "Iteration Control" and "Numerical Accuracy". Have a look at the elastic constants tutorial.

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #8 on: November 10, 2016, 11:13 »
thank u sir...  well i get the result using this idea

Offline puspa raj adhikari

  • Regular QuantumATK user
  • **
  • Posts: 17
  • Country: in
  • Reputation: 0
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #9 on: November 26, 2016, 11:44 »
again for small help :) :) :) :)
 i have calculated the young's modules  and Poisson ratio for nano-tube but out of three value of young's modules is reliable in case of nano tube.( all obtained values  are different) and how to take the Poisson ratio among given 6 values. what is the way to analyse. plz clarify me detail as in simple word.

( as discussed above for young's modules , from strain stress curve we found positive and high value of  young's modules but calculated  value shows negative young's modules. how to confirm with these results .)

Offline Julian Schneider

  • QuantumATK Staff
  • QuantumATK Guru
  • *****
  • Posts: 160
  • Country: dk
  • Reputation: 25
    • View Profile
Re: script for calculation of elastic constant and verious modulas
« Reply #10 on: November 28, 2016, 09:29 »
As explained above, you should only look at the Young's modulus in z-direction. Did you get meaningful values using the suggested script? In that case, I would recommend you use these instead of the output of the elastic constants analysis, because the elastic constants analysis object in VNL always assumes that the system is a bulk crystal, and the script is specially adapted for 1D-materials.
That's also why you should not use the output of the Poisson ratio from the elastic constant analysis object.
I don't know if there is a standard definition of the Poisson ratio for nanotubes, but I would look at the ratio of how the diameter D of the tube changes when you apply a tensile strain, i.e. dD / dL_z.