Hello everyone,
I am currently developing an API-based stem generation workflow in Altair EDEM and I am using Bonding V2 to create bonded stems (meta-particle-like chains made of segments and knots).
My stems are generated programmatically during the simulation using a factory-style approach. Each stem consists of multiple particles that should only bond with their direct neighbors inside the same stem. Each particle stores metadata such as:
The issue is the following:
If multiple new stems are generated within the same timestep (or the same bond-creation window), unwanted bonds can appear between particles belonging to different stems, because they are spatially close and share the same bonding time conditions.
What I would ideally like to achieve is:
- Allow bonds only between particles that belong to the same stem
- Prevent bonds between particles from different stems
- If prevention is not possible, detect and remove such unwanted bonds after creation
From the API/documentation I have found access to contact models, custom properties, and contact handling, but I have not yet found a clear way to directly inspect or delete already created bonds.
My questions are:
- Is there any API-supported way to inspect, break, or delete existing bonds created by Bonding V2?
- Is there a recommended way to prevent unwanted inter-stem bonds when generating multiple bonded structures during the same timestep?
- Would a custom contact model plugin be able to prevent Bonding V2 from creating bonds between particles with different StemIDs?
- Is there any best practice for this kind of workflow when creating bonded multi-particle structures through the API?
At the moment I am considering a purely preventive strategy, for example:
- generating only one new stem per bonding timestep
- enforcing a larger minimum spacing between newly generated stems
- blocking neighboring spawn cells in the same timestep
But I would like to know whether EDEM provides a cleaner or more direct solution since I might need the possibility to remove bonds in later situations again.
Any advice, best practices, or pointers to the correct API classes would be very helpful.
Thank you very much.