Skip to content

Commit

Permalink
Improved the format of PR and APS
Browse files Browse the repository at this point in the history
  • Loading branch information
ttadano committed Feb 22, 2016
1 parent 293b53d commit be5915b
Showing 1 changed file with 61 additions and 17 deletions.
78 changes: 61 additions & 17 deletions anphon/write_phonons.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1552,27 +1552,42 @@ void Writes::write_participation_ratio()
dynamical->calc_participation_ratio_all(dynamical->evec_phonon, participation_ratio, atomic_participation_ratio);

ofs_pr << "# Participation ratio of each phonon modes at k points" << std::endl;

if (kpoint->kpoint_mode == 1) {

ofs_pr << "# kpoint, mode, PR[kpoint][mode]" << std::endl;

for (i = 0; i < nk; ++i) {
ofs_pr << "#" << std::setw(10) << i + 1;
ofs_pr << "#" << std::setw(8) << i + 1;
ofs_pr << " xk = ";
for (j = 0; j < 3; ++j) {
ofs_pr << std::setw(15) << kpoint->xk[i][j];
}
ofs_pr << std::endl;
for (j = 0; j < nbands; ++j) {
ofs_pr << std::setw(8) << i + 1;
ofs_pr << std::setw(5) << j + 1;
ofs_pr << std::setw(15) << participation_ratio[i][j];
ofs_pr << std::endl;
}
ofs_pr << std::endl;
}

} else if (kpoint->kpoint_mode == 2) {

ofs_pr << "# irred. kpoint, mode, frequency[kpoint][mode] (cm^-1), PR[kpoint][mode]" << std::endl;

for (i = 0; i < kpoint->nk_reduced; ++i) {
knum = kpoint->kpoint_irred_all[i][0].knum;
ofs_pr << "#" << std::setw(10) << i + 1;
ofs_pr << "#" << std::setw(8) << i + 1;
ofs_pr << " xk = ";
for (j = 0; j < 3; ++j) {
ofs_pr << std::setw(15) << kpoint->xk[knum][j];
}
ofs_pr << std::endl;
for (j = 0; j < nbands; ++j) {
ofs_pr << std::setw(8) << i + 1;
ofs_pr << std::setw(5) << j + 1;
ofs_pr << std::setw(15) << in_kayser(dynamical->eval_phonon[knum][j]);
ofs_pr << std::setw(15) << participation_ratio[knum][j];
ofs_pr << std::endl;
Expand All @@ -1585,27 +1600,56 @@ void Writes::write_participation_ratio()

ofs_apr << "# Atomic participation ratio of each phonon modes at k points" << std::endl;

for (i = 0; i < kpoint->nk_reduced; ++i) {
knum = kpoint->kpoint_irred_all[i][0].knum;
if (kpoint->kpoint_mode == 1) {

ofs_apr << "# kpoint, mode, atom, APR[kpoint][mode][atom]" << std::endl;

ofs_apr << "#" << std::setw(10) << i + 1;
for (j = 0; j < 3; ++j) {
ofs_apr << std::setw(15) << kpoint->xk[knum][j];
for (i = 0; i < nk; ++i) {
ofs_apr << "#" << std::setw(8) << i + 1;
ofs_apr << " xk = ";
for (j = 0; j < 3; ++j) {
ofs_apr << std::setw(15) << kpoint->xk[i][j];
}
ofs_apr << std::endl;
for (j = 0; j < nbands; ++j) {
for (k = 0; k < natmin; ++k) {
ofs_apr << std::setw(8) << i + 1;
ofs_apr << std::setw(5) << j + 1;
ofs_apr << std::setw(5) << k + 1;
ofs_apr << std::setw(15) << atomic_participation_ratio[i][j][k];
ofs_apr << std::endl;
}
}
ofs_apr << std::endl;
}
ofs_apr << std::endl;
for (j = 0; j < nbands; ++j) {
for (k = 0; k < natmin; ++k) {
ofs_apr << std::setw(5) << i + 1;
ofs_apr << std::setw(5) << j + 1;
ofs_apr << std::setw(5) << k + 1;
ofs_apr << std::setw(15) << in_kayser(dynamical->eval_phonon[knum][j]);
ofs_apr << std::setw(15) << atomic_participation_ratio[knum][j][k];
ofs_apr << std::endl;
} else if (kpoint->kpoint_mode == 2) {

ofs_apr << "# irred. kpoint, mode, atom, frequency[kpoint][mode] (cm^-1), APR[kpoint][mode][atom]" << std::endl;

for (i = 0; i < kpoint->nk_reduced; ++i) {
knum = kpoint->kpoint_irred_all[i][0].knum;

ofs_apr << "#" << std::setw(8) << i + 1;
ofs_apr << " xk = ";
for (j = 0; j < 3; ++j) {
ofs_apr << std::setw(15) << kpoint->xk[knum][j];
}
ofs_apr << std::endl;
for (j = 0; j < nbands; ++j) {
for (k = 0; k < natmin; ++k) {
ofs_apr << std::setw(8) << i + 1;
ofs_apr << std::setw(5) << j + 1;
ofs_apr << std::setw(5) << k + 1;
ofs_apr << std::setw(15) << in_kayser(dynamical->eval_phonon[knum][j]);
ofs_apr << std::setw(15) << atomic_participation_ratio[knum][j][k];
ofs_apr << std::endl;
}
}
ofs_apr << std::endl;
}
ofs_pr << std::endl;
}


memory->deallocate(participation_ratio);
memory->deallocate(atomic_participation_ratio);

Expand Down

0 comments on commit be5915b

Please sign in to comment.