--- trunk/src/perturbations/UniformField.cpp 2014/09/22 19:18:35 2020 +++ trunk/src/perturbations/UniformField.cpp 2014/10/22 12:23:59 2026 @@ -58,14 +58,28 @@ namespace OpenMD { } void UniformField::initialize() { + + std::vector ef; + if (simParams->haveElectricField()) { doUniformField = true; - EF = simParams->getElectricField(); + ef = simParams->getElectricField(); } if (simParams->haveUniformField()) { doUniformField = true; - EF = simParams->getUniformField(); + ef = simParams->getUniformField(); } + if (ef.size() != 3) { + sprintf(painCave.errMsg, + "UniformField: Incorrect number of parameters specified.\n" + "\tthere should be 3 parameters, but %lu were specified.\n", ef.size()); + painCave.isFatal = 1; + simError(); + } + EF.x() = ef[0]; + EF.y() = ef[1]; + EF.z() = ef[2]; + int storageLayout_ = info_->getSnapshotManager()->getStorageLayout(); if (storageLayout_ & DataStorage::dslParticlePot) doParticlePot = true; initialized = true;