| 64 |
|
namespace OpenMD { |
| 65 |
|
|
| 66 |
|
DumpWriter::DumpWriter(SimInfo* info) |
| 67 |
< |
: info_(info), filename_(info->getDumpFileName()), eorFilename_(info->getFinalConfigFileName()){ |
| 67 |
> |
: info_(info), filename_(info->getDumpFileName()), |
| 68 |
> |
eorFilename_(info->getFinalConfigFileName()){ |
| 69 |
|
|
| 70 |
|
Globals* simParams = info->getSimParams(); |
| 71 |
|
needCompression_ = simParams->getCompressDumpFile(); |
| 73 |
|
needParticlePot_ = simParams->getOutputParticlePotential(); |
| 74 |
|
needFlucQ_ = simParams->getOutputFluctuatingCharges(); |
| 75 |
|
needElectricField_ = simParams->getOutputElectricField(); |
| 76 |
+ |
needSitePotential_ = simParams->getOutputSitePotential(); |
| 77 |
|
|
| 78 |
< |
if (needParticlePot_ || needFlucQ_ || needElectricField_) { |
| 78 |
> |
if (needParticlePot_ || needFlucQ_ || needElectricField_ || |
| 79 |
> |
needSitePotential_) { |
| 80 |
|
doSiteData_ = true; |
| 81 |
|
} else { |
| 82 |
|
doSiteData_ = false; |
| 124 |
|
needParticlePot_ = simParams->getOutputParticlePotential(); |
| 125 |
|
needFlucQ_ = simParams->getOutputFluctuatingCharges(); |
| 126 |
|
needElectricField_ = simParams->getOutputElectricField(); |
| 127 |
+ |
needSitePotential_ = simParams->getOutputSitePotential(); |
| 128 |
|
|
| 129 |
< |
if (needParticlePot_ || needFlucQ_ || needElectricField_) { |
| 129 |
> |
if (needParticlePot_ || needFlucQ_ || needElectricField_ || |
| 130 |
> |
needSitePotential_) { |
| 131 |
|
doSiteData_ = true; |
| 132 |
|
} else { |
| 133 |
|
doSiteData_ = false; |
| 175 |
|
needParticlePot_ = simParams->getOutputParticlePotential(); |
| 176 |
|
needFlucQ_ = simParams->getOutputFluctuatingCharges(); |
| 177 |
|
needElectricField_ = simParams->getOutputElectricField(); |
| 178 |
+ |
needSitePotential_ = simParams->getOutputSitePotential(); |
| 179 |
|
|
| 180 |
< |
if (needParticlePot_ || needFlucQ_ || needElectricField_) { |
| 180 |
> |
if (needParticlePot_ || needFlucQ_ || needElectricField_ || |
| 181 |
> |
needSitePotential_) { |
| 182 |
|
doSiteData_ = true; |
| 183 |
|
} else { |
| 184 |
|
doSiteData_ = false; |
| 717 |
|
line += tempBuffer; |
| 718 |
|
} |
| 719 |
|
} |
| 713 |
– |
|
| 720 |
|
|
| 721 |
+ |
if (needSitePotential_) { |
| 722 |
+ |
if (storageLayout & DataStorage::dslSitePotential) { |
| 723 |
+ |
type += "s"; |
| 724 |
+ |
RealType sPot = sd->getSitePotential(); |
| 725 |
+ |
if (isinf(sPot) || isnan(sPot) ) { |
| 726 |
+ |
sprintf( painCave.errMsg, |
| 727 |
+ |
"DumpWriter detected a numerical error writing the" |
| 728 |
+ |
" site potential for object %s", id.c_str()); |
| 729 |
+ |
painCave.isFatal = 1; |
| 730 |
+ |
simError(); |
| 731 |
+ |
} |
| 732 |
+ |
sprintf(tempBuffer, " %13e ", sPot); |
| 733 |
+ |
line += tempBuffer; |
| 734 |
+ |
} |
| 735 |
+ |
} |
| 736 |
+ |
|
| 737 |
|
if (needParticlePot_) { |
| 738 |
|
if (storageLayout & DataStorage::dslParticlePot) { |
| 739 |
|
type += "u"; |