factorization in multipoles

This commit is contained in:
Anthony Scemama 2020-07-09 23:06:24 +02:00
parent 0f86ece4f3
commit 16658180f3
1 changed files with 16 additions and 16 deletions

View File

@ -133,25 +133,25 @@ let contracted_class shell_a shell_b : float Zmap.t array =
let x2 = h0 +. xa *. (2. *. x -. xa *. f0) in
let y2 = h1 +. ya *. (2. *. y -. ya *. f1) in
let z2 = h2 +. za *. (2. *. z -. za *. f2) in
let x3 = j0 +. xa *. f0 *. (3. *. x2 -. 3. *. x *. xa +. xa *. xa) in
let y3 = j1 +. ya *. f1 *. (3. *. y2 -. 3. *. y *. ya +. ya *. ya) in
let z3 = j2 +. za *. f2 *. (3. *. z2 -. 3. *. z *. za +. za *. za) in
let x4 = l0 +. xa *. f0 *. ( 4. *. x3 -. 6. *. x2 *. xa +. 4. *. x *. xa *. xa -. xa *. xa *. xa) in
let y4 = l1 +. ya *. f1 *. ( 4. *. y3 -. 6. *. y2 *. ya +. 4. *. y *. ya *. ya -. ya *. ya *. ya) in
let z4 = l2 +. za *. f2 *. ( 4. *. z3 -. 6. *. z2 *. za +. 4. *. z *. za *. za -. za *. za *. za) in
let x3 = j0 +. xa *. f0 *. (3. *. x2 +. xa *. ( -. 3. *. x +. xa)) in
let y3 = j1 +. ya *. f1 *. (3. *. y2 +. ya *. ( -. 3. *. y +. ya)) in
let z3 = j2 +. za *. f2 *. (3. *. z2 +. za *. ( -. 3. *. z +. za)) in
let x4 = l0 +. xa *. f0 *. (4. *. x3 +. xa *. ( -. 6. *. x2 +. xa *. (4. *. x -. xa))) in
let y4 = l1 +. ya *. f1 *. (4. *. y3 +. ya *. ( -. 6. *. y2 +. ya *. (4. *. y -. ya))) in
let z4 = l2 +. za *. f2 *. (4. *. z3 +. za *. ( -. 6. *. z2 +. za *. (4. *. z -. za))) in
let c = contracted_class in
let d = coef_prod *. norm in
c.(0).(i) <- c.(0).(i) +. d *. x *. f1 *. f2;
c.(1).(i) <- c.(1).(i) +. d *. f0 *. y *. f2;
c.(2).(i) <- c.(2).(i) +. d *. f0 *. f1 *. z;
c.(3).(i) <- c.(3).(i) +. d *. x2 *. f1 *. f2;
c.(4).(i) <- c.(4).(i) +. d *. f0 *. y2 *. f2;
c.(5).(i) <- c.(5).(i) +. d *. f0 *. f1 *. z2;
c.(6).(i) <- c.(6).(i) +. d *. x *. y *. f2;
c.(7).(i) <- c.(7).(i) +. d *. f0 *. y *. z;
c.(8).(i) <- c.(8).(i) +. d *. x *. f1 *. z;
c.(9).(i) <- c.(9).(i) +. d *. x3 *. f1 *. f2;
c.( 0).(i) <- c.( 0).(i) +. d *. x *. f1 *. f2;
c.( 1).(i) <- c.( 1).(i) +. d *. f0 *. y *. f2;
c.( 2).(i) <- c.( 2).(i) +. d *. f0 *. f1 *. z;
c.( 3).(i) <- c.( 3).(i) +. d *. x2 *. f1 *. f2;
c.( 4).(i) <- c.( 4).(i) +. d *. f0 *. y2 *. f2;
c.( 5).(i) <- c.( 5).(i) +. d *. f0 *. f1 *. z2;
c.( 6).(i) <- c.( 6).(i) +. d *. x *. y *. f2;
c.( 7).(i) <- c.( 7).(i) +. d *. f0 *. y *. z;
c.( 8).(i) <- c.( 8).(i) +. d *. x *. f1 *. z;
c.( 9).(i) <- c.( 9).(i) +. d *. x3 *. f1 *. f2;
c.(10).(i) <- c.(10).(i) +. d *. f0 *. y3 *. f2;
c.(11).(i) <- c.(11).(i) +. d *. f0 *. f1 *. z3;
c.(12).(i) <- c.(12).(i) +. d *. x4 *. f1 *. f2;