Author Topic: Phonon Dispersion Spectrum of GNR (Geometry optimization and mode separation)  (Read 3029 times)

0 Members and 1 Guest are viewing this topic.

Offline Ji_BUF

  • Regular QuantumATK user
  • **
  • Posts: 7
  • Country: us
  • Reputation: 0
    • View Profile
Dear all,

I am trying to calculate the phonon spectrum of a 8-dimer armchair graphene nanoribbon by following the example given by: https://docs.quantumwise.com/tutorials/phonon_calcs/phonon_calcs.html.

1. I want to optimize the geometry of the GNR and followed the exact procedure in the tutorial, but ended up with the error messages says: "The underlying configuration must be equal for the input  DynamicMatrix and the object being calculated.".

2. I want to seperate the phonon spectrum calculated into longitudinal, transverse, and flexural modes. Has anyone done this before?

Thank you for your time!
« Last Edit: April 24, 2019, 02:58 by Ji_BUF »

Offline Petr Khomyakov

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 1290
  • Country: dk
  • Reputation: 25
    • View Profile
I am trying to calculate the phonon spectrum of a 8-dimer armchair graphene nanoribbon by following the example given by: https://docs.quantumwise.com/tutorials/phonon_calcs/phonon_calcs.html.

1. I want to optimize the geometry of the GNR and followed the exact procedure in the tutorial, but ended up with the error messages says: "The underlying configuration must be equal for the input  DynamicMatrix and the object being calculated.".

Please attach the script (and log) file that produced that error.

Offline Ji_BUF

  • Regular QuantumATK user
  • **
  • Posts: 7
  • Country: us
  • Reputation: 0
    • View Profile
# -*- coding: utf-8 -*-
# -------------------------------------------------------------
# Bulk Configuration
# -------------------------------------------------------------

# Set up lattice
vector_a = [20.0, 0.0, 0.0]*Angstrom
vector_b = [0.0, 30.0, 0.0]*Angstrom
vector_c = [0.0, 0.0, 4.26258]*Angstrom
lattice = UnitCell(vector_a, vector_b, vector_c)

# Define elements
elements = [Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon,
            Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon, Carbon]

# Define coordinates
fractional_coordinates = [[ 0.5           ,  0.356441566891,  0.666666666667],
                          [ 0.5           ,  0.397458262065,  0.833333333333],
                          [ 0.5           ,  0.356441566891,  0.333333333333],
                          [ 0.5           ,  0.438474957239,  0.666666666667],
                          [ 0.5           ,  0.479491652413,  0.833333333333],
                          [ 0.5           ,  0.397458262065,  0.166666666667],
                          [ 0.5           ,  0.438474957239,  0.333333333333],
                          [ 0.5           ,  0.520508347587,  0.666666666667],
                          [ 0.5           ,  0.561525042761,  0.833333333333],
                          [ 0.5           ,  0.479491652413,  0.166666666667],
                          [ 0.5           ,  0.520508347587,  0.333333333333],
                          [ 0.5           ,  0.602541737935,  0.666666666667],
                          [ 0.5           ,  0.643558433109,  0.833333333333],
                          [ 0.5           ,  0.561525042761,  0.166666666667],
                          [ 0.5           ,  0.602541737935,  0.333333333333],
                          [ 0.5           ,  0.643558433109,  0.166666666667]]

# Set up configuration
bulk_configuration = BulkConfiguration(
    bravais_lattice=lattice,
    elements=elements,
    fractional_coordinates=fractional_coordinates
    )

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------

potentialSet = Tersoff_C_2010()
calculator = TremoloXCalculator(parameters=potentialSet)
calculator.setVerletListsDelta(0.25*Angstrom)

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
bulk_configuration.update()
nlsave('Phonon_AGNR_W8.hdf5', bulk_configuration)

# -------------------------------------------------------------
# Calculator
# -------------------------------------------------------------

potentialSet = Tersoff_C_2010()
calculator = TremoloXCalculator(parameters=potentialSet)
calculator.setVerletListsDelta(0.25*Angstrom)

bulk_configuration.setCalculator(calculator)
nlprint(bulk_configuration)
nlsave('Phonon_AGNR_W8.hdf5', bulk_configuration)

# -------------------------------------------------------------
# Dynamical Matrix
# -------------------------------------------------------------
dynamical_matrix = DynamicalMatrix(
    bulk_configuration,
    filename=u'Phonon_AGNR_W8.hdf5',
    object_id='dynamical_matrix',
    repetitions=Automatic,
    atomic_displacement=0.01*Angstrom,
    acoustic_sum_rule=True,
    finite_difference_method=Central,
    force_tolerance=1e-08*Hartree/Bohr**2,
    processes_per_displacement=1,
    log_filename_prefix='forces_displacement_',
    use_wigner_seitz_scheme=False,
    )
dynamical_matrix.update()

# -------------------------------------------------------------
# Optimize Geometry
# -------------------------------------------------------------

constraints = [FixStrain(x=True, y=True, z=False)]

bulk_configuration = OptimizeGeometry(
    bulk_configuration,
    max_forces=0.01*eV/Ang,
    max_stress=0.0001*eV/Ang**3,
    max_steps=200,
    max_step_length=0.2*Ang,
    constraints=constraints,
    trajectory_filename=None,
    optimizer_method=LBFGS(),
    constrain_bravais_lattice=False,
)
nlsave('Phonon_AGNR_W8.hdf5', bulk_configuration)
nlprint(bulk_configuration)

# -------------------------------------------------------------
# Phonon Bandstructure
# -------------------------------------------------------------
phonon_bandstructure = PhononBandstructure(
    configuration=bulk_configuration,
    dynamical_matrix=dynamical_matrix,
    route=['G', 'Z'],
    points_per_segment=100,
    number_of_bands=All
    )
nlsave('Phonon_AGNR_W8.hdf5', phonon_bandstructure)

Offline Ji_BUF

  • Regular QuantumATK user
  • **
  • Posts: 7
  • Country: us
  • Reputation: 0
    • View Profile
I am trying to calculate the phonon spectrum of a 8-dimer armchair graphene nanoribbon by following the example given by: https://docs.quantumwise.com/tutorials/phonon_calcs/phonon_calcs.html.

1. I want to optimize the geometry of the GNR and followed the exact procedure in the tutorial, but ended up with the error messages says: "The underlying configuration must be equal for the input  DynamicMatrix and the object being calculated.".

Please attach the script (and log) file that produced that error.

Log file:

+------------------------------------------------------------------------------+
|                                                                              |
| QuantumATK 2018.06-SP1-1[Build 3f8f0aa]                                      |
|                                                                              |
+------------------------------------------------------------------------------+
+----------------------------------------------------------+
| Bulk Bravais lattice                                     |
+----------------------------------------------------------+
Type:
UnitCell

Lattice constants:

Primitive vectors:
u_1 =     20.000000      0.000000      0.000000 Ang
u_2 =      0.000000     30.000000      0.000000 Ang
u_3 =      0.000000      0.000000      4.262580 Ang

+----------------------------------------------------------+
| Bulk: Cartesian (Angstrom) / fractional                  |
+----------------------------------------------------------+
16
Bulk
C     1.000000e+01  1.069325e+01  2.841720e+00    0.50000  0.35644  0.66667
C     1.000000e+01  1.192375e+01  3.552150e+00    0.50000  0.39746  0.83333
C     1.000000e+01  1.069325e+01  1.420860e+00    0.50000  0.35644  0.33333
C     1.000000e+01  1.315425e+01  2.841720e+00    0.50000  0.43847  0.66667
C     1.000000e+01  1.438475e+01  3.552150e+00    0.50000  0.47949  0.83333
C     1.000000e+01  1.192375e+01  7.104300e-01    0.50000  0.39746  0.16667
C     1.000000e+01  1.315425e+01  1.420860e+00    0.50000  0.43847  0.33333
C     1.000000e+01  1.561525e+01  2.841720e+00    0.50000  0.52051  0.66667
C     1.000000e+01  1.684575e+01  3.552150e+00    0.50000  0.56153  0.83333
C     1.000000e+01  1.438475e+01  7.104300e-01    0.50000  0.47949  0.16667
C     1.000000e+01  1.561525e+01  1.420860e+00    0.50000  0.52051  0.33333
C     1.000000e+01  1.807625e+01  2.841720e+00    0.50000  0.60254  0.66667
C     1.000000e+01  1.930675e+01  3.552150e+00    0.50000  0.64356  0.83333
C     1.000000e+01  1.684575e+01  7.104300e-01    0.50000  0.56153  0.16667
C     1.000000e+01  1.807625e+01  1.420860e+00    0.50000  0.60254  0.33333
C     1.000000e+01  1.930675e+01  7.104300e-01    0.50000  0.64356  0.16667
+----------------------------------------------------------+
| Bulk Bravais lattice                                     |
+----------------------------------------------------------+
Type:
UnitCell

Lattice constants:

Primitive vectors:
u_1 =     20.000000      0.000000      0.000000 Ang
u_2 =      0.000000     30.000000      0.000000 Ang
u_3 =      0.000000      0.000000      4.262580 Ang

+----------------------------------------------------------+
| Bulk: Cartesian (Angstrom) / fractional                  |
+----------------------------------------------------------+
16
Bulk
C     1.000000e+01  1.069325e+01  2.841720e+00    0.50000  0.35644  0.66667
C     1.000000e+01  1.192375e+01  3.552150e+00    0.50000  0.39746  0.83333
C     1.000000e+01  1.069325e+01  1.420860e+00    0.50000  0.35644  0.33333
C     1.000000e+01  1.315425e+01  2.841720e+00    0.50000  0.43847  0.66667
C     1.000000e+01  1.438475e+01  3.552150e+00    0.50000  0.47949  0.83333
C     1.000000e+01  1.192375e+01  7.104300e-01    0.50000  0.39746  0.16667
C     1.000000e+01  1.315425e+01  1.420860e+00    0.50000  0.43847  0.33333
C     1.000000e+01  1.561525e+01  2.841720e+00    0.50000  0.52051  0.66667
C     1.000000e+01  1.684575e+01  3.552150e+00    0.50000  0.56153  0.83333
C     1.000000e+01  1.438475e+01  7.104300e-01    0.50000  0.47949  0.16667
C     1.000000e+01  1.561525e+01  1.420860e+00    0.50000  0.52051  0.33333
C     1.000000e+01  1.807625e+01  2.841720e+00    0.50000  0.60254  0.66667
C     1.000000e+01  1.930675e+01  3.552150e+00    0.50000  0.64356  0.83333
C     1.000000e+01  1.684575e+01  7.104300e-01    0.50000  0.56153  0.16667
C     1.000000e+01  1.807625e+01  1.420860e+00    0.50000  0.60254  0.33333
C     1.000000e+01  1.930675e+01  7.104300e-01    0.50000  0.64356  0.16667
+------------------------------------------------------------------------------+
| Automatically detected repetitions = [1 1 5]                                 |
+------------------------------------------------------------------------------+
+------------------------------------------------------------------------------+
| Geometry optimization using the LBFGS optimizer                              |
| Bravais Lattice: Unit Cell                                                   |
| External pressure: 0.000 GPa                                                 |
+------------------------------------------------------------------------------+
|       Step Step Length      Volume  Max. Force  Stress Error        Enthalpy |
|                  (Ang)    (Ang**3)    (eV/Ang)         (GPa)            (eV) |
+------------------------------------------------------------------------------+
| OPT      0  0.0000e+00    2557.548  5.5243e+00       0.83145     -121.497730 |
| OPT      1  9.2472e-02    2558.753  5.3353e+00       2.68902     -122.713293 |
| OPT      2  2.8905e-02    2560.234  1.3066e+00       2.06302     -123.296440 |
| OPT      3  1.6400e-02    2561.853  8.5016e-01       2.16680     -123.399393 |
| OPT      4  4.3608e-02    2566.991  5.1449e-01       2.13606     -123.513356 |
| OPT      5  5.6166e-02    2573.608  6.4237e-01       2.11419     -123.590251 |
| OPT      6  1.5705e-01    2592.110  7.8095e-01       1.88566     -123.751844 |
| OPT      7  4.1238e-02    2596.969  1.8093e+00       1.36723     -123.837476 |
| OPT      8  2.0723e-02    2599.410  5.6559e-01       1.46715     -123.885159 |
| OPT      9  2.8268e-03    2599.742  3.1653e-01       1.46115     -123.899648 |
| OPT     10  3.2920e-02    2603.620  3.6119e-01       1.39116     -123.939097 |
| OPT     11  9.4446e-02    2614.747  8.3807e-01       1.18355     -124.012071 |
| OPT     12  6.3825e-03    2615.499  4.5679e-01       1.24264     -124.037156 |
| OPT     13  6.4570e-03    2616.260  2.0636e-01       1.19434     -124.046906 |
| OPT     14  2.8009e-02    2619.560  3.0971e-01       1.08235     -124.068346 |
| OPT     15  4.8660e-02    2625.293  5.1829e-01       0.95292     -124.096410 |
| OPT     16  1.5392e-01    2643.426  7.7098e-01       0.59868     -124.169607 |
| OPT     17  9.0755e-03    2644.037  9.1345e-01       0.75792     -124.197892 |
| OPT     18  3.5366e-03    2644.453  1.9246e-01       0.68689     -124.212586 |
| OPT     19  5.2099e-03    2645.067  1.1090e-01       0.65509     -124.216511 |
| OPT     20  9.1618e-03    2646.146  1.6924e-01       0.62024     -124.220626 |
| OPT     21  3.1811e-02    2649.894  3.1806e-01       0.53683     -124.231473 |
| OPT     22  7.5396e-02    2658.777  4.3653e-01       0.38509     -124.252428 |
| OPT     23  1.4255e-01    2675.572  7.4041e-01       0.05542     -124.276380 |
| OPT     24  1.3229e-01    2691.157  6.1915e-01       0.13664     -124.283709 |
| OPT     25  5.3963e-02    2684.800  1.5280e-01       0.02938     -124.296767 |
| OPT     26  8.1788e-03    2683.836  4.7432e-02       0.00456     -124.297950 |
| OPT     27  1.5293e-03    2684.016  8.5408e-03       0.00130     -124.298067 |
+------------------------------------------------------------------------------+
| Geometry optimization converged in 27 steps.                                 |
+------------------------------------------------------------------------------+
+----------------------------------------------------------+
| Bulk Bravais lattice                                     |
+----------------------------------------------------------+
Type:
UnitCell

Lattice constants:

Primitive vectors:
u_1 =     20.000000      0.000000      0.000000 Ang
u_2 =      0.000000     30.000000      0.000000 Ang
u_3 =      0.000000      0.000000      4.473361 Ang

+----------------------------------------------------------+
| Bulk: Cartesian (Angstrom) / fractional                  |
+----------------------------------------------------------+
16
Bulk
C     1.000000e+01  1.085563e+01  2.880052e+00    0.50000  0.36185  0.64382
C     1.000000e+01  1.186827e+01  3.787804e+00    0.50000  0.39561  0.84675
C     1.000000e+01  1.085563e+01  1.593309e+00    0.50000  0.36185  0.35618
C     1.000000e+01  1.313061e+01  2.987488e+00    0.50000  0.43769  0.66784
C     1.000000e+01  1.438038e+01  3.735839e+00    0.50000  0.47935  0.83513
C     1.000000e+01  1.186827e+01  6.855571e-01    0.50000  0.39561  0.15325
C     1.000000e+01  1.313061e+01  1.485873e+00    0.50000  0.43769  0.33216
C     1.000000e+01  1.561962e+01  2.974202e+00    0.50000  0.52065  0.66487
C     1.000000e+01  1.686939e+01  3.722553e+00    0.50000  0.56231  0.83216
C     1.000000e+01  1.438038e+01  7.375217e-01    0.50000  0.47935  0.16487
C     1.000000e+01  1.561962e+01  1.499159e+00    0.50000  0.52065  0.33513
C     1.000000e+01  1.813173e+01  2.922237e+00    0.50000  0.60439  0.65325
C     1.000000e+01  1.914437e+01  3.829989e+00    0.50000  0.63815  0.85618
C     1.000000e+01  1.686939e+01  7.508077e-01    0.50000  0.56231  0.16784
C     1.000000e+01  1.813173e+01  1.551123e+00    0.50000  0.60439  0.34675
C     1.000000e+01  1.914437e+01  6.433717e-01    0.50000  0.63815  0.14382

Offline Ulrik G. Vej-Hansen

  • QuantumATK Staff
  • Supreme QuantumATK Wizard
  • *****
  • Posts: 425
  • Country: dk
  • Reputation: 8
    • View Profile
This happens because you optimize the structure after calculating the Dynamical matrix and before calculating the phonon bandstructure. So what you do is this:

1. Calculate the dynamical matrix for your structure
2. Optimize, i.e. change the structure
3. Calculate the phonon bandstructure based on your DM and configuration, which no longer match.

You need to optimize the structure first, otherwise the rest does not really make sense.