adhishm / dd2d_Matryoshka

A set of classes defining the behaviour of crystalline defects, with the final goal of carrying out dislocation dynamics simulations in two dimensions.
Other
5 stars 4 forks source link

Peach-Koehler force z-axis component #26

Closed adhishm closed 11 years ago

adhishm commented 11 years ago

According to the calculations shown in the wiki page on the Peach-Koehler force, there should be no z-axis component in the Peach-Koehler force. However, in the simulations the value of this component is non-zero.

It is suspected that this may be due to the fact that the dislocation bvec, lvec etc are expressed in the crystal system (ie, standard Burgers vectors like [110] etc). Perhaps these calculations should be changed to not only simplify the calculations but also to eliminate any evidently incorrect force vectors.

adhishm commented 11 years ago

The suspicion raised in the issue statement seems to be correct. The dislocations are now given Burgers vectors that are [1 0 0] or [-1 0 0] in the slip plane co-ordinate system. As a result, their line vectors are [0 1 0] or [0 -1 0]. This solves the problem of the z-component of the Peach-Koehler force expressed in the dislocation's local co-ordinate system.

However, this is not the end of the story. For proper representation of the applied stress, a global co-ordinate system is created which acts as the base for the slip-plane co-ordinate system. This seems to be functioning correctly. But when the Peach-Koehler force is converted from the dislocation to slip plane co-ordinate system, the force has all three components an non-zero terms when it should have the y-component equal to 0 as it is parallel to the dislocation line. This may be because incorrect calculation of the dislocation co-ordinate system rotation matrix Dislocation::coordinateSystem.rotationMatrix.

adhishm commented 11 years ago

Indeed, the problem was in the function CoordinateSystem::calculateRotationMatrix().

In the function, the base axes must be represented in the base system. They are thus always [100], [010] and [001]. The error in the function was that it was getting the axes represented in the base of the base, which is obviously wrong. This error is now corrected and the Peach-Koehler force has seemingly correct values in both the dislocation and slip plane co-ordinate systems.