Collision and Contact

Fatemeh Hosseini_22198
Fatemeh Hosseini_22198 Altair Community Member
edited February 2023 in Community Q&A

Hello everybody,
As far as I know, Collision is a completed contact in EDEM.(contact that takes one time step). So, I expect that the number of contact always be more than number of collision. However, in my case, the number of contact is almost half of the number of collision! I don't understand it!
I want to ask you, Is there any misunderstanding that I have made?

Regards,
Fatemeh

Tagged:

Best Answer

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited January 2023 Answer ✓

    Hi Fatemeh,

     

    The Collisions occur over time and the Contacts are instantaneous events.  One Collision typically will comprise of multiple Contacts however when you see the data this depends on the save frequency.

     

    If you were saving data every time-step you would capture every Contact however if you save every 100 time-steps then you only save the contact data at that point in time, but the Collisions are stored in memory and written out at the next save data point.

     

    For example if you had a two particles that were vibrating at 10 Hz such that they were constantly impacting each other and then loosing contact they could start and end 10 Collisions in 1 second, each collision could for example comprise of 20 Contacts however if you saved data once per second you would see 0 or 1 Contact at that save point and 10 completed Collisions.

     

    Regards

    Stephen

Answers

  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited January 2023 Answer ✓

    Hi Fatemeh,

     

    The Collisions occur over time and the Contacts are instantaneous events.  One Collision typically will comprise of multiple Contacts however when you see the data this depends on the save frequency.

     

    If you were saving data every time-step you would capture every Contact however if you save every 100 time-steps then you only save the contact data at that point in time, but the Collisions are stored in memory and written out at the next save data point.

     

    For example if you had a two particles that were vibrating at 10 Hz such that they were constantly impacting each other and then loosing contact they could start and end 10 Collisions in 1 second, each collision could for example comprise of 20 Contacts however if you saved data once per second you would see 0 or 1 Contact at that save point and 10 completed Collisions.

     

    Regards

    Stephen

  • Fatemeh Hosseini_22198
    Fatemeh Hosseini_22198 Altair Community Member
    edited January 2023

    Hi Fatemeh,

     

    The Collisions occur over time and the Contacts are instantaneous events.  One Collision typically will comprise of multiple Contacts however when you see the data this depends on the save frequency.

     

    If you were saving data every time-step you would capture every Contact however if you save every 100 time-steps then you only save the contact data at that point in time, but the Collisions are stored in memory and written out at the next save data point.

     

    For example if you had a two particles that were vibrating at 10 Hz such that they were constantly impacting each other and then loosing contact they could start and end 10 Collisions in 1 second, each collision could for example comprise of 20 Contacts however if you saved data once per second you would see 0 or 1 Contact at that save point and 10 completed Collisions.

     

    Regards

    Stephen

     

     

     

     

    image

    Many thanks for your response.
    As I noticed, the number of contact depends on the target save interval but the number of collisions are saved in every timesteps. 
    I want to compare the number of collision in two different case. Thats why these details are so important for me.

    One of the other confusing issue is that, In one simulation, when I changed Number of Intervals, the number of collision changed!
    Please see the attached picture. In Orange case the number of interval is 50 and in the blue case, the number of interval is 16. 
    Can you explain me the reason of this difference too?

    I should know the condition that I should use for comparison of two different cases.
    (For example, I have two different simulation that should be compared. The first simulation lasts 3 seconds, while the second lasts 8 seconds. Should I set the intervals to for example 0.1 s in both case? (30 intervals for first and 80 intervals for the second one)

    Your help is really appreciated,
    Regards,
    Fatemeh



  • Stephen Cole
    Stephen Cole
    Altair Employee
    edited January 2023

     

     

     

     

    image

    Many thanks for your response.
    As I noticed, the number of contact depends on the target save interval but the number of collisions are saved in every timesteps. 
    I want to compare the number of collision in two different case. Thats why these details are so important for me.

    One of the other confusing issue is that, In one simulation, when I changed Number of Intervals, the number of collision changed!
    Please see the attached picture. In Orange case the number of interval is 50 and in the blue case, the number of interval is 16. 
    Can you explain me the reason of this difference too?

    I should know the condition that I should use for comparison of two different cases.
    (For example, I have two different simulation that should be compared. The first simulation lasts 3 seconds, while the second lasts 8 seconds. Should I set the intervals to for example 0.1 s in both case? (30 intervals for first and 80 intervals for the second one)

    Your help is really appreciated,
    Regards,
    Fatemeh



    Hi Fatemeh,

    The Collisions are written to the file at the next available time point after it is completed, so if you have the 10 collisions per second and save every second you would get approximately 10 Collisions each save point.  However if you increased the save point to every 0.1 s you would get 1 collision per save point.

     

    If you add up the total Collisions over the time period it should be the same, or if you divide the number of Collisions by the save frequency it should also give you the same result.

    Regards

    Stephen

  • Fatemeh Hosseini_22198
    Fatemeh Hosseini_22198 Altair Community Member
    edited February 2023

    Hi Fatemeh,

     

    The Collisions occur over time and the Contacts are instantaneous events.  One Collision typically will comprise of multiple Contacts however when you see the data this depends on the save frequency.

     

    If you were saving data every time-step you would capture every Contact however if you save every 100 time-steps then you only save the contact data at that point in time, but the Collisions are stored in memory and written out at the next save data point.

     

    For example if you had a two particles that were vibrating at 10 Hz such that they were constantly impacting each other and then loosing contact they could start and end 10 Collisions in 1 second, each collision could for example comprise of 20 Contacts however if you saved data once per second you would see 0 or 1 Contact at that save point and 10 completed Collisions.

     

    Regards

    Stephen

    Dear Stephan,
    I have a problem that I think I think it might be because of the number of collision. 
    I previously posed the following query regarding duplicated points in deposition:


    https://community.altair.com/community?id=community_question&sys_id=3dcb00f49704a550e3b0361e6253afd3&view_source=searchResult

    Based on @Richard Wood  suggestion I just deleted duplicated points (based on their position.)
    Now, with a saving interval of 0.1 seconds and 50000 particles in the tube. I observed the deposition of 750000.
    As I used collision for the deposition code, I thought that the issue would arise depending on the number of collisions are employed.
     I calculate normal velocities based on the normal direction and velocities in the code bellow:

    ID_particle=deck.timestep[t].collision.surfGeom.getFirstIds() 
    velocities = deck.timestep[t].collision.surfGeom.getFirstVelocity()
    normal_direction =  deck.timestep[t].collision.surfGeom.getUnitcpVector()
    Position =  deck.timestep[t].collision.surfGeom.getPosition()

    Do you think I need to save the data for each time step if I want to use this code to calculate the normal velocities in a particle-wall collision? (which, in my case, is e-6).


    Regards,
    Fatemeh