← Back to team overview

yade-dev team mailing list archive

[Bug 1595450] [NEW] Cannot apply an angular velocity to aspherical objets

 

Public bug reported:

Yade versions : all

I am surprised to see that we can't apply an angular velocity to
aspherical objects like clumps. If we set angVel at time T, the
modification is overwritten at time T+DT, ignoring the entered value
(see attached script).

It is due to the rotation implementation for asphercial bodies, and a comment is present here in the code : https://github.com/yade/trunk/blob/master/pkg/dem/NewtonIntegrator.cpp#L242
It is not possible to workaround with aspherical body attribute, as passing an object from aspherical=False to aspherical=True resets all its state vectors to (0.,0.,0.).

If no algorithm is available to perform this, it would be nice to alert
the user that the angVel he has just set is not taken into account.

But the most disturbing element is here, in the clump tests : https://github.com/yade/trunk/blob/master/py/tests/clump.py#L56
1°) we set the clump translational and angular velocity
2°) we make one timestep
3°) we check the clump elements positions and velocities (angular and translational) according to the (updated, so mistakenly set to zero) values of angVel. Thus, these values do not correspond to the ones set in 1°) as they were overridden, and the test succeeds, with no real check of the angVel functionality.

Thanks to Gonzalo Cruz-Alcala and David Toe for the script and the bug
reporting.

** Affects: yade
     Importance: Undecided
         Status: New


** Tags: angvel aspherical clump

** Attachment added: "clump_angvel.py"
   https://bugs.launchpad.net/bugs/1595450/+attachment/4688943/+files/clump_angvel.py

-- 
You received this bug notification because you are a member of Yade
developers, which is subscribed to Yade.
https://bugs.launchpad.net/bugs/1595450

Title:
  Cannot apply an angular velocity to aspherical objets

Status in Yade:
  New

Bug description:
  Yade versions : all

  I am surprised to see that we can't apply an angular velocity to
  aspherical objects like clumps. If we set angVel at time T, the
  modification is overwritten at time T+DT, ignoring the entered value
  (see attached script).

  It is due to the rotation implementation for asphercial bodies, and a comment is present here in the code : https://github.com/yade/trunk/blob/master/pkg/dem/NewtonIntegrator.cpp#L242
  It is not possible to workaround with aspherical body attribute, as passing an object from aspherical=False to aspherical=True resets all its state vectors to (0.,0.,0.).

  If no algorithm is available to perform this, it would be nice to
  alert the user that the angVel he has just set is not taken into
  account.

  But the most disturbing element is here, in the clump tests : https://github.com/yade/trunk/blob/master/py/tests/clump.py#L56
  1°) we set the clump translational and angular velocity
  2°) we make one timestep
  3°) we check the clump elements positions and velocities (angular and translational) according to the (updated, so mistakenly set to zero) values of angVel. Thus, these values do not correspond to the ones set in 1°) as they were overridden, and the test succeeds, with no real check of the angVel functionality.

  Thanks to Gonzalo Cruz-Alcala and David Toe for the script and the bug
  reporting.

To manage notifications about this bug go to:
https://bugs.launchpad.net/yade/+bug/1595450/+subscriptions


Follow ups