Changeset 05fec0 for pcp/src


Ignore:
Timestamp:
Apr 21, 2008, 2:19:26 PM (17 years ago)
Author:
Frederik Heber <heber@…>
Children:
08a794b
Parents:
6590194
git-author:
Frederik Heber <heber@…> (04/18/08 16:19:24)
git-committer:
Frederik Heber <heber@…> (04/21/08 14:19:26)
Message:

UpdateIonsU(): included contraint motion

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pcp/src/ions.c

    r6590194 r05fec0  
    941941    a = delta_t*0.5/IonMass;                            // (F+F_old)/2m = a and thus: v = (F+F_old)/2m * t = (F + F_old) * a
    942942    for (ia=0; ia < I->I[is].Max_IonsOfType; ia++) {
    943       FIon = &I->I[is].FIon[NDIM*ia];
    944       FIon_old = &I->I[is].FIon_old[NDIM*ia];
    945943      U = &I->I[is].U[NDIM*ia];
    946       if (I->I[is].IMT[ia] == MoveIon)
    947                                 for (d=0; d<NDIM; d++) {
    948                                         U[d] += a * (FIon[d]+FIon_old[d]);
    949                                 }
     944      if (I->I[is].Constraints[ia] != NULL) { // override current resulting R and U if constrained is given
     945        fprintf(stderr, "(%i) Setting constrained motion U at step %d on ion (%i,%i)\n", P->Par.me, I->I[is].Constraints[ia]->step, is, ia);
     946        if ((I->I[is].Constraints[ia]->step != P->R.OuterStep) && (P->Par.me == 0))
     947          fprintf(stderr, "(%i) WARNING: constraint step %d does not match Outerstep %d for ion (%d,%d)\n", P->Par.me, I->I[is].Constraints[ia]->step, P->R.OuterStep, is, ia);
     948        for (d=0; d<NDIM; d++)
     949          U[d] = I->I[is].Constraints[ia]->U[d];
     950        RemoveConstraintItem(&I->I[is],ia); // and remove this first item from the list
     951      } else {
     952        FIon = &I->I[is].FIon[NDIM*ia];
     953        FIon_old = &I->I[is].FIon_old[NDIM*ia];
     954        //if (I->I[is].IMT[ia] == MoveIon)
     955                        for (d=0; d<NDIM; d++) {
     956                                U[d] += a * (FIon[d]+FIon_old[d]);
     957                        }
     958      }
    950959    }
    951960  }
Note: See TracChangeset for help on using the changeset viewer.