make checks for exceeding length of variable-length vectors more consistent

This commit is contained in:
Steve Plimpton
2024-04-04 14:11:13 -06:00
parent 2c26586b1a
commit 66d042a0ee
5 changed files with 22 additions and 9 deletions

View File

@ -562,7 +562,8 @@ void FixAveTime::invoke_scalar(bigint ntimestep)
scalar = val.val.f->compute_vector(val.argindex-1);
// evaluate equal-style or vector-style variable
// ensure no out-of-range access to vector-style variable
// if index exceeds vector length, use a zero value
// this can be useful if vector length is not known a priori
} else if (val.which == ArgInfo::VARIABLE) {
if (val.argindex == 0)
@ -570,7 +571,7 @@ void FixAveTime::invoke_scalar(bigint ntimestep)
else {
double *varvec;
int nvec = input->variable->compute_vector(val.val.v,&varvec);
if (nvec < val.argindex) scalar = 0.0;
if (val.argindex > nvec) scalar = 0.0;
else scalar = varvec[val.argindex-1];
}
}