ttadano / alamode

Ab initio simulator for thermal transport and lattice anharmonicity
http://sourceforge.net/projects/alamode
MIT License
143 stars 54 forks source link

Symmetrization of the Dynamical Matrix for the Thermal Property Calculation #168

Closed ksauni closed 7 months ago

ksauni commented 9 months ago

Dear All,

Can I ask a question about the construction of the dynamical matrix with the force constant matrix?

To compute the thermal transmission coefficient with non-equilibrium green function (NEGF) method, the surface green function of the lead needs to be calculated and the off-diagonal part of the dynamical matrix is required.

On the other hand, I also heard that the dynamical matrix needs to be symmetrized so that the upper and lower triangle blocks in the dynamical matrix are hermitian conjugate to each other.

Would you please tell me how to symmetrize the dynamical matrix, which is built with the force constant matrix?

Thank you in advance.

Kind regards,

Kieran

ttadano commented 9 months ago

Hi,

If you set PRINTEVEC = 1, the anphon code will generate PREFIX.evec file, which containts the eigenvalues and eigenvectors of the dynamical matrices on the given k points. Please read these data and reconstruct the dynamical matrix.

The dynamical matrix is Hermite, so you don't have to symmetrize it by yourself.

ksauni commented 9 months ago

Hi,

If you set PRINTEVEC = 1, the anphon code will generate PREFIX.evec file, which containts the eigenvalues and eigenvectors of the dynamical matrices on the given k points. Please read these data and reconstruct the dynamical matrix.

The dynamical matrix is Hermite, so you don't have to symmetrize it by yourself.

Dear Tadano,

Thank you for the reply.

I want to construct the dynamical matrix on a dense k point mesh. If I use the eigenvalue and eigenvector to construct the dynamical matrix on a dense k point mesh, I have to output a lot of data on different k points, which would occupy a lot of space on the hard drive.

Therefore, I want to use the force constant matrix, multiplied by a phase factor, to construct the dynamical matrix. In this way, I just need to output one set of data (one force constant matrix) and it would save a lot of space on the hard drive.

I am not sure whether the dynamical matrix is hermitian or not, if I construct it through the force constant matrix from ALAMODE code. Would you please give me more explanations?

Thank you again.

Kieran

ksauni commented 9 months ago

Dear Tadano,

Thank you for the reply.

I want to construct the dynamical matrix on a dense k point mesh. If I use the eigenvalue and eigenvector to construct the dynamical matrix on a dense k point mesh, I have to output a lot of data on different k points, which would occupy a lot of space on the hard drive.

Therefore, I want to use the force constant matrix, multiplied by a phase factor, to construct the dynamical matrix. In this way, I just need to output one set of data (one force constant matrix) and it would save a lot of space on the hard drive.

I am not sure whether the dynamical matrix is hermitian or not, if I construct it through the force constant matrix from ALAMODE code. Would you please give me more explanations?

Thank you again.

Kieran


From: Terumasa TADANO @.> Sent: 14 February 2024 05:56 To: ttadano/alamode @.> Cc: ksauni @.>; Author @.> Subject: Re: [ttadano/alamode] Symmetrization of the Dynamical Matrix for the Thermal Property Calculation (Issue #168)

Hi,

If you set PRINTEVEC = 1, the anphon code will generate PREFIX.evec file, which containts the eigenvalues and eigenvectors of the dynamical matrices on the given k points. Please read these data and reconstruct the dynamical matrix.

The dynamical matrix is Hermite, so you don't have to symmetrize it by yourself.

— Reply to this email directly, view it on GitHubhttps://github.com/ttadano/alamode/issues/168#issuecomment-1943130107, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AMCK5L4HURE4SJNVMLFNREDYTRGZJAVCNFSM6AAAAABDGQDJKKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNBTGEZTAMJQG4. You are receiving this because you authored the thread.

ttadano commented 9 months ago

In alm, you can save the force constant matrix by setting HESSIAN = 1 in the &general field. From this information, you can construct the dynamical matrix at arbitrary k points by multiplying the phase factor and mass factor.