From 3803b797c5ebb183e83574d663a6e527926ba1d2 Mon Sep 17 00:00:00 2001 From: Daniel Jeans <daniel.jeans@kek.jp> Date: Wed, 28 Feb 2018 11:49:07 +0900 Subject: [PATCH] correct expressions for multipole fields --- DDCore/src/FieldTypes.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DDCore/src/FieldTypes.cpp b/DDCore/src/FieldTypes.cpp index d5aa0b2da..c864d33f0 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]; -- GitLab