yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #21621
[Question #687862]: Assign avoidSelfInteractionMask while detecting contacts in compatible group masks
New question #687862 on Yade:
https://answers.launchpad.net/yade/+question/687862
Hi,
I am wondering what is the best way to avoid detecting self interactions for particles inside a group mask and at the same time keep interactions among particles with a different mask, which is compatible with the former one.
For example in the script cubePBscaled.py [1], I want to ignore interactions for the PBs assembling the box (bodies: bbb, bA, bB, bC, bD etc. with mask=3), but I want to keep interactions among bodies with b.mask=1, i.e. the falling cuboids.
Currently, if I set collider.avoidSelfInteractionMask = 3, the contacts among the bodies with b.mask=1 are not detected either, cause masks 1 and 3 have common bits.
To be clear, what I want is:
- to detect possible contact for particles in the group masks: 1-1 (cuboid-cuboid), 1-3 (cuboid-box) and
- to ignore possible contact for particles in the the group mask: 3-3 (box-box).
Looking in Collider.cpp [2], currently we have:
!( (b1->groupMask == b2->groupMask) && b1->maskCompatible(avoidSelfInteractionMask) )
and I can achieve what I need, using:
!( (b1->groupMask == b2->groupMask) && b1->groupMask == avoidSelfInteractionMask )
Is there a chance I can introduce a new flag to do this, e.g. "avoidSelfInteractionMaskOnly" or is there a workaround, without changing the collider?
Thanks in advance!
Vasileios
[1] https://gitlab.com/yade-dev/trunk/blob/master/examples/PotentialBlocks/cubePBscaled.py
[2] https://gitlab.com/yade-dev/trunk/blob/master/pkg/common/Collider.cpp#L40
--
You received this question notification because your team yade-users is
an answer contact for Yade.