dynamic contact angle implementation q
The dynamic contact angle implementation in OF is:
const vectorField nf(patch().nf());
// Calculated the component of the velocity parallel to the wall
vectorField Uwall(Up.patchInternalField() - Up);
Uwall -= (nf & Uwall)*nf;
// Find the direction of the interface parallel to the wall
vectorField nWall(nHat - (nf & nHat)*nf);
// Normalise nWall
nWall /= (mag(nWall) + SMALL);
// Calculate Uwall resolved normal to the interface parallel to
// the interface
scalarField uwall(nWall & Uwall);
return theta0_ + (thetaA_ - thetaR_)*tanh(uwall/uTheta_);
1. What is Up?
2. nf & Uwall is inner product of nf and Uwall. Wont it give component normal instead of parallel to the wall?
With respect to question 2.
The definition used here is
Uwall -= (nf & Uwall)*nf;
a -= b is short for a = a - b
So in this case, the normal component is subtracted from the total vector, thus giving you the parallel component.
Thank you, Bernhard.
Actually I am trying to implement the famous expression for dynamic contact angle by Bracke et al. The expression is given in equation 12 in the image attached below.
In the attached plot for velocity, the velocity near the capillary wall (case I have run is the capillary tutorial of openfoam) and near the interface is not uniform. Even after the meniscus height becomes steady, the velocity near the wall remains non-zero. Ideally, as per the expression for dynamic contact angle, as the meniscus attains steady position, dynamic contact angle should equal static contact angle. But if we are to take the velocity of the cells right next to wall for calculation, dynamic contact angle will never equal static contact angle, even though meniscus height remains constant.
Either the velocity field should be zero on attaining equilibrium height, or by some way, the meniscus speed should be captured correctly, else dynamic contact angle simulation in OF will be difficult.
Thank you for your response. I really appreciate it. Btw, I am running validation cases for surface tension driven flow. I would really like to give feedback on the results and be in touch with developer to clarify all the why's and how's.
i also implemented/used some CA models but for a droplet impact. As you said, there are some issues about the velocity at the contactline. This is not the problem of the CA-model. Anyhow implementing new models is quite simpel. Just alter the line
return theta0_ + (thetaA_ - thetaR_)*tanh(uwall/uTheta_); with the equation you want. The needed parameters for the Ca-Number can be extracted from the velocity field and the transport properties.
you are right. But the expression for dynamic contact angle is such that at equilibrium, the dynamic contact angle should be equal to static contact angle. But at equilibrium also, if there are spurious velocities near the contact line, the dynamic contact angle will never equal the static contact angle and the equilibrium solution will have some error in it.
I did change the contact angle angle expression and implemented the expression by bracke et al. But the equilibrium height I am getting for capillary is way off than the analytical value.
Spurious currents also affect the solution when static contact angle is used. I did some test time ago and (as suggested in BrackBill et al.) using a smooth filter on the color function before the curvature calculation can improve the solution and reduce the magnitude of these non physical velocities. From my test, the difference from the analytical solution if no smooth filter is used is about 8-9% and it can be reduced to 2-3% using a smooth filter (The spurious currents are still present but their magnitude is reduced).
Maybe this can help you too.
To use the dynamic contact angle model in interFoam solver, we only need to specify the boundary conditions at 0 initial time, but we do not need to modify the library source file interphaseProperties.C, right? But I don't see how the dynamic contact angle has been calculate in the interphaseProperties.C. Could you tell me how the dynamic contact angle link to and work in the interphaseProperties.C file?
Could you please give me the steps about changing the method of calculation dynamic contact angle. Actually I created my oun solver from interFoam solver and gave it another name. the dynamic contact angle files does not come with the solver and calls it from the original source with we can not modify and save on it. So could you please show me the to do it?
|All times are GMT -4. The time now is 17:27.|