diff --git a/DDCore/src/FieldTypes.cpp b/DDCore/src/FieldTypes.cpp index d5aa0b2dadb3718e0ff209660ff817553f315f6d..c864d33f0dec5d926c67a2accded5368f53ca282 100644 --- a/DDCore/src/FieldTypes.cpp +++ b/DDCore/src/FieldTypes.cpp @@ -99,16 +99,16 @@ void MultipoleField::fieldComponents(const double* pos, double* field) { double y2 = y*y; switch(coefficents.size()) { case 4: // Ocupole momentum - by += coefficents[3] * (x2*x - 3.0*x*y2) + skews[3]*(y2*y - 3.0*x*y2); + by += coefficents[3] * (x2*x - 3.0*x*y2) + skews[3]*(y2*y - 3.0*x2*y); bx += coefficents[3] * (3.0*x2*y - y2*y) + skews[3]*(x2*x - 3.0*x*y2); [[fallthrough]]; case 3: // Sextupole momentum: - by += -coefficents[2] * (x2 - y2) + skews[2] * 2.0 * xy; + by += coefficents[2] * (x2 - y2) - skews[2] * 2.0 * xy; bx += coefficents[2] * 2.0 * xy + skews[2] * (x2 - y2); [[fallthrough]]; case 2: // Quadrupole momentum: - bx += coefficents[1] * x - skews[1]*y; - by += coefficents[1] * y + skews[1]*x; + bx += coefficents[1] * y + skews[1]*x; + by += coefficents[1] * x - skews[1]*y; [[fallthrough]]; case 1: // Dipole momentum: bx += skews[0];