/* constraint relaxation */
if(crtt) {
+ // forces
basis_trafo(&(atom[i].f),FORWARD,
trafo_angle[2*i],trafo_angle[2*i+1]);
if(constraints[3*i])
atom[i].f.z=0;
basis_trafo(&(atom[i].f),BACKWARD,
trafo_angle[2*i],trafo_angle[2*i+1]);
+ // velocities
+ basis_trafo(&(atom[i].v),FORWARD,
+ trafo_angle[2*i],trafo_angle[2*i+1]);
+ if(constraints[3*i])
+ atom[i].v.x=0;
+ if(constraints[3*i+1])
+ atom[i].v.y=0;
+ if(constraints[3*i+2])
+ atom[i].v.z=0;
+ basis_trafo(&(atom[i].v),BACKWARD,
+ trafo_angle[2*i],trafo_angle[2*i+1]);
}
#ifndef QUENCH
/* constraint relaxation */
if(crtt) {
+ // forces
basis_trafo(&(atom[i].f),FORWARD,
trafo_angle[2*i],trafo_angle[2*i+1]);
if(constraints[3*i])
atom[i].f.z=0;
basis_trafo(&(atom[i].f),BACKWARD,
trafo_angle[2*i],trafo_angle[2*i+1]);
+ // velocities
+ basis_trafo(&(atom[i].v),FORWARD,
+ trafo_angle[2*i],trafo_angle[2*i+1]);
+ if(constraints[3*i])
+ atom[i].v.x=0;
+ if(constraints[3*i+1])
+ atom[i].v.y=0;
+ if(constraints[3*i+2])
+ atom[i].v.z=0;
+ basis_trafo(&(atom[i].v),BACKWARD,
+ trafo_angle[2*i],trafo_angle[2*i+1]);
}
/* again velocities [actually v(t+tau)] */