Ignore:
Timestamp:
Jul 4, 2012, 6:10:39 PM (13 years ago)
Author:
Julian Iseringhausen <isering@…>
Children:
0260d3
Parents:
290aa3
Message:

vmg: Fix force calculation.

git-svn-id: https://svn.version.fz-juelich.de/scafacos/trunk@1900 5161e1c8-67bf-11de-9fd5-51895aff932f

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/units/particle/interpolation.cpp

    r290aa3 ref94e7  
    3030#include "units/particle/particle.hpp"
    3131
     32#include "mg.hpp"
     33#include "comm/comm.hpp"
     34
    3235using namespace VMG;
    3336
     
    5457  Index i;
    5558
    56   const Index begin = index - deg/2 - 1;
     59  const Index begin = index - deg/2;
    5760
    5861  h = grid.Extent().MeshWidth();
     
    105108void Particle::Interpolation::Evaluate(Particle& p)
    106109{
    107  Vector offset;
     110  const Vector& pos = p.Pos();
     111  vmg_float& pot = p.Pot();
     112  Vector& field = p.Field();
    108113
    109  const Vector& pos = p.Pos();
    110  vmg_float& pot = p.Pot();
    111  Vector& field = p.Field();
     114  pot = 0.0;
     115  field = 0.0;
    112116
    113  pot = 0.0;
    114  field = 0.0;
    115 
     117  Vector offset = pos - pos_begin;
    116118  buffer[0] = 1.0;
    117   offset = pos - pos_begin;
    118   for (int i=1; i<deg_1; ++i) {
    119     buffer[i] = buffer[i-1] * offset;
    120     offset -= h;
    121   }
    122 
    123   offset = pos - pos_begin;
    124119  for (int i=0; i<deg; ++i) {
     120    buffer[i+1] = buffer[i] * offset;
    125121    for (int j=0; j<i; ++j)
    126122      buffer_diff[i][j] = buffer_diff[i-1][j] * offset;
     
    145141        field[2] -= _access_coeff(i, j, k+1) * buffer[i][0] * buffer[j][1] * buffer_diff[k][0][2];
    146142      }
    147 
    148143}
    149144
Note: See TracChangeset for help on using the changeset viewer.