What equation is used to evaluate normal physical contact area

Hello
When two particles are in contact with each other and there is a bit of overlap, what equation is used to determine the value of the normal physical contact area (contact.getNormalPhysicalOverlap())
is this equal to Ac in eq33 as shown in the image?
If not, how is this variable contact.getNormalPhysicalOverlap() determined? Please give me the equation or a geometrical explanation for the same
Answers
-
Hi,
Is this for Spheres or Polyhedral?
The Normal Overlap is different to the overlap area. The Normal Overlap is defined in the Attribute Definitions:
I don't believe the overlap area is provided in the API, however you could calculate it from the particle positions and area.
Regards
Stephen
0 -
For spherical particles I can estimate but what if I have spheroCyl
0 -
Hey, I don't understand this. In the "attribute definition" link that you put.
I do not see this parameter at all
How are you evaluating this for the sphero-cylinder particle?
0 -
Hello, does anyone know how the term contact.getContactNormalArea(), is defined in Altair?
0 -
Hi,
The getContactNormalArea is for Polyhedral particles only, it doesn't apply to Spheres or Sphero-Cylinders:
For ContactNormalArea we dont have the algorithm published but it's essentially as the description states, the polyhedral particles will overlap and if we project each face that is inside another polyhedral in the normal direction and sum the area of these faces we get the contact normal area.
0 -
Ohh I see. Thank you for letting me know that.
So let's say I will use the equation (33) in the image above
I want to compute the change in that value for different time steps can you please suggest how I could do that?
I have it as a custom prop but what is confusing is the custom property gets accumulated at every time step and if I reset the custom property I will not know what it's value was in the previous time step.
Let's say I have a custom property called changeArea
i evaluate area of contact based on eq33
customPropReal* contADl = element1.getCustomPropertyDelta(DelA_INDEX);
const customPropReal* contAVl = element1.getCustomPropertyValue(DelA_INDEX);areaOfCont = pi * pow(((REAL_CONST(5.0) * eqMas * eqRad * eqRad) / (REAL_CONST(4.0) * eqYng)), REAL_CONST(0.4)) * pow(relVelNMg, REAL_CONST(0.8));
DelA = areaOfCont - *contAVl; *contADl = DelA;
I want to compute how the change in area in (n+1)th time step from nth time step. but if i do this eventually the contAVl will keep accumulating the previous time step area and i will not get correct delta area
or will i get the correct deltaA i am confused. Can you please suggest what the correct approach to computeing delta A is in (CUDA)
0 -
Hi Shyam,
The change in the custom property Value should only take effect for the next time-step.So when you are querying *contAVl in the code this is from the the current time-step t
and the calculation areaOfCont is for the next time-step t+1
So your DelA value should be the difference between the current and previous time-step, so the code does look correct in it's current format, but I notice the custom property is 'element 1' so this is calculated and stored on the Particle.
If the particle has more than 1 contact then each contact would contribute to the DeltA value per time-step, so I would expect it to work OK for two particles creating 1 contact but anything involving multiple contacts would cause problems.
You could look at custom Contact properties rather than Particle properties, so this way you are storing the information per contact not per particle and might be easier to manage this way.
0 -
Sounds good. I thought of using contact custom property but i have a confusion.
I have 6custom property in bonds then i use the hertz mindlin contact API CUDA version. in there should i define the contact property as 7th custom property?
because i already have 6 bond properties. and another confusion is should i use contact or contactResult to access the contact property? Is there an example of CUDA that shows more about using contact custom property?
0 -
in custom properties with CUDA tutorial i see these
I cant find these functions anywhere.
I want to calculate the change in area when contacting with particle and with geometry. so do i need to use them saperately?
as of now i am trying to do this, not sure if it's correct
customPropReal* contADl = contact.getCustomPropertyDelta(ctDa_INDEX);
const customPropReal* contAVl = contact.getCustomPropertyValue(ctDa_INDEX);0 -
The parameterData isn't directly related to custom properties as this is a mechanism for passing preference file data from CPU to GPU (typically used for reading a .txt file with inputs for the model).
For the definition what you have as
contact.getCustomPropertyDelta
is correct. You can see an example with both Particle and Contact custom properties here:
Regards
Stephen
0 -
Hello Stephen,
Thank you for suggesting that.
Please tell me this.
I have a model where i already have custom properties from another api say the bond API (35 version). this has 7 particle property and 6 contact property and particle replacement API this has 7 particle properties. Now i bring in hertz mindlin api cuda version If i introduce a contact custom property in this should i intorduce 8 custom property and i need to access the 8th contact custom property to get the contact area.
Should i do this or it does not matter?
Please tell me how to look at these custom properties. in the above example there is only one api in the model i am not sure how to go about if i have multiple apis
0 -
Its set per physics type. So if you have a Contact Model with 10 Custom Contact Properties these should be properties ID 0-9. If the same Contact Model has 5 Custom Particle Properties these particle properties will be 0-4.
Then if you add a second Contact Model which needs access to only one of these Custom Properties it will always be ID 0 in the second model.
Same if you added a Body Force that needed access to two of the Particle Properties, these two Particle Properties would be ID 0 and 1.
So the ID's maybe different but EDEM identifies the custom properties by the name so long as the property name and definition matches (like number of elements and unit type) it will be able to use the same property across models.
0 -
I am little confused about this statement -
Then if you add a second Contact Model which needs access to only one of these Custom Properties it will always be ID 0 in the second model.
So you are trying to say
if i have
bond35model -(7pt,6ct)
hzMd- (7pt,(1)ct)
in hzMd model i dont have to worry about 6ct of bond35 ?
so if i want to access the one ct i can access the 0th ct and it will not re write the 0th ct of bond35?
the reason i ask this is i am getting some explainable results if i declare the 1property of hzMd as a 7th property only. else i get strange numbers
0