Merge branch release-2020 into master
[alexxy/gromacs.git] / src / gromacs / modularsimulator / constraintelement.cpp
index 8e96e6068b19e7ddc336c044c31a509c7b31ffcc..fcd03cd8d0868215746a5436932aebff6ab4df18 100644 (file)
@@ -126,7 +126,10 @@ void ConstraintsElement<variable>::apply(Step step, bool calculateVirial, bool w
 {
     tensor vir_con;
 
-    rvec *x, *xprime, *min_proj, *v;
+    ArrayRefWithPadding<RVec> x;
+    ArrayRefWithPadding<RVec> xprime;
+    ArrayRef<RVec>            min_proj;
+    ArrayRefWithPadding<RVec> v;
 
     const real lambdaBonded = freeEnergyPerturbationElement_
                                       ? freeEnergyPerturbationElement_->constLambdaView()[efptBONDED]
@@ -136,16 +139,14 @@ void ConstraintsElement<variable>::apply(Step step, bool calculateVirial, bool w
     switch (variable)
     {
         case ConstraintVariable::Positions:
-            x = as_rvec_array(statePropagatorData_->previousPositionsView().paddedArrayRef().data());
-            xprime   = as_rvec_array(statePropagatorData_->positionsView().paddedArrayRef().data());
-            min_proj = nullptr;
-            v = as_rvec_array(statePropagatorData_->velocitiesView().paddedArrayRef().data());
+            x      = statePropagatorData_->previousPositionsView();
+            xprime = statePropagatorData_->positionsView();
+            v      = statePropagatorData_->velocitiesView();
             break;
         case ConstraintVariable::Velocities:
-            x      = as_rvec_array(statePropagatorData_->positionsView().paddedArrayRef().data());
-            xprime = as_rvec_array(statePropagatorData_->velocitiesView().paddedArrayRef().data());
-            min_proj = as_rvec_array(statePropagatorData_->velocitiesView().paddedArrayRef().data());
-            v        = nullptr;
+            x        = statePropagatorData_->positionsView();
+            xprime   = statePropagatorData_->velocitiesView();
+            min_proj = statePropagatorData_->velocitiesView().unpaddedArrayRef();
             break;
         default: gmx_fatal(FARGS, "Constraint algorithm not implemented for modular simulator.");
     }