Hi,
I have some questions regarding the implementation of the “cohesion_model_easo_capillary_viscous.h” (or for that matter washino) which I would really appreciate your reply to help me understand the algorithm and to properly apply the code. My main questions are with regards to the criteria to evaluate the three possible cases of no-bridge, active, breakage of the liquid bridge force.
Thank you for your time and consideration.
Ali
If I look at criteria to limit the viscous part of the liquid bridge model when the two particles come too close, the minSeperationDistanceRation is proportional to disp/Rp (Rp = particle radius), line 402:
[CODE BEGIN]
const double FviscN = stokesPreFactor*vn/MathExtraLiggghts::max(minSeparationDistanceRatio,dist/rEff)
[CODE END]
But when checking if liquid bridge exists, in lines 319-326:
[CODE BEGIN]
if (dist > (maxSeparationDistanceRatio-1.0)*(radi+radj) && MathExtraLiggghts::compDouble(contflag[0],1.0,1e-6)) // in this case always break
{
bridge_breaks = true;
}
else if (dist < distMax && dist < (maxSeparationDistanceRatio-1.0)*(radi+radj) )
bridge_active = true;
else if(MathExtraLiggghts::compDouble(contflag[0],1.0,1e-6)) // can only break if exists
bridge_breaks = true;
[CODE END]
we notice that the maxSeperationDistanceRatio is proportional to disp/2Rp.
Q1) Is there a reason for the factor 2 difference between the two min and max Separation limits?
Q2) In the documentation it is mentioned that “The model uses a parameter, maxSeparationDistanceRatio, to apply a cut-off to the liquid bridge force, i.e. radius***maxSeparationDistanceRatio is the effective contact radius of the particles.” First, I’m assuming that should be only one star for multiplication, right?
Second, the text implies that the liquid bridge force would be applied when the distance between the two particles is Rp apart if maxSeparationDistanceRatio=1. But looking at the code at setting maxSeperationDistanceRatio=1, the criteria will represents an extreme case where the liquid bridge is only applied when disp<0 , i.e. the two particles are physically in contact. So doesn’t seem to correspond to the text in the documentation.
Q3) So following Q2, then this means that the liquid bridge force continues to be applied even when the particles are going under deformation.
Q4) Also in the first if statement in which the bond always breaks, why not use distMax instead of “maxSeparationDistanceRatio-1.0)*(radi+radj)”.
Q5)
Q5a)In the input script, if I want to use a cut off radius, twice the particle size (i.e particle diameter), aside from the maxSeperationDistanceRatio, I also need to adjust the bin size to at least 1 particle diameter. Is this correct?
“neighbor 1dp bin”
Q5b) Also I do not need to modify the contact_distance_factor as is done in the input script in one of contributors tutorials (https://www.cfdem.com/system/files/in.capillary.txt):
“neigh_modify delay 0 check no contact_distance_factor 1.5”
I assume this would conflict with the lines 173-181 of the code:
https://github.com/CFDEMproject/LIGGGHTS-PUBLIC/blob/master/src/cohesion...
Now a few even more trivial questions, which still need to clarify for myself:
Q6) In line 202 of the code, we have:
[CODE BEGIN]
// store for noCollision
contflag[0] = 1.0;
[CODE END]
but doesn’t a value of “0” represent no collision? See next question.
Q7) the statement for case (i) of no bridge, lines 286-291
[CODE BEGIN]
// case (i) no bridge
if(!MathExtraLiggghts::compDouble(contflag[0],1.0,1e-6))
{ if(scdata.contact_flags) *scdata.contact_flags &= ~CONTACT_COHESION_MODEL;
return;
}
[CODE END]
Where the compDouble is defined in:
https://github.com/CFDEMproject/LIGGGHTS-PUBLIC/blob/master/src/math_ext...
Q7a) So for the if-statement to be true, conflag[0]=0 should represent no contact.
Q7b) Also there is a “return” at end of if the statement which means the remainder of the code in surfaceClose won’t be evaluated. So then what is the reason for the “case (i)” in line 293 (https://github.com/CFDEMproject/LIGGGHTS-PUBLIC/blob/master/src/cohesion...):
[CODE BEGIN]
// cases (i) and (ii)
[CODE END]
Q8) I know this one is just to trivial for you, but what’s the purpose of defining a surfaceIntersect member if surfaceClosed seem to include the actual implementation of the (three possible cases of no-bridge, active, breakage) of liquid bridge model.
AliBlues | Wed, 10/18/2017 - 10:20
UNDERSTANDING IMPLEMENTED MAX CUT OFF CRITERIA IN LIQUID BRIDGE
I would really appreciate your response.
Thank you.
Ali
AliBlues | Thu, 10/19/2017 - 16:30
UNDERSTANDING IMPLEMENTED MAX CUT OFF CRITERIA IN LIQUID BRIDGE
Eagerly waiting for your reply!
Thanks
Ali