modernize check for fix drude. print warning about order of fixes with rigid.
This commit is contained in:
@ -50,11 +50,22 @@ FixDrudeTransform<inverse>::~FixDrudeTransform()
|
||||
template <bool inverse>
|
||||
void FixDrudeTransform<inverse>::init()
|
||||
{
|
||||
int ifix;
|
||||
for (ifix = 0; ifix < modify->nfix; ifix++)
|
||||
if (strcmp(modify->fix[ifix]->style,"drude") == 0) break;
|
||||
if (ifix == modify->nfix) error->all(FLERR, "fix drude/transform requires fix drude");
|
||||
fix_drude = (FixDrude *) modify->fix[ifix];
|
||||
fix_drude = nullptr;
|
||||
std::string substyle = "direct";
|
||||
if (inverse) substyle = "inverse";
|
||||
|
||||
auto fixes = modify->get_fix_by_style("^drude");
|
||||
if (fixes.size() > 0) fix_drude = dynamic_cast<FixDrude *>(fixes[0]);
|
||||
if (!fix_drude)
|
||||
error->all(FLERR, "fix drude/transform/{} requires fix drude", substyle);
|
||||
|
||||
int before_or_after = -1;
|
||||
for (auto &ifix : modify->get_fix_list()) {
|
||||
if ((ifix == this) && (before_or_after < 0)) before_or_after = 0;
|
||||
if (utils::strmatch(ifix->style, "^rigid") && (before_or_after < 0)) before_or_after = 1;
|
||||
}
|
||||
if ((comm->me == 0) && (before_or_after > 0))
|
||||
error->warning(FLERR, "fix drude/transform/{} should come before any rigid fixes", substyle);
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------- */
|
||||
|
||||
Reference in New Issue
Block a user