CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Pre-Processing (http://www.cfd-online.com/Forums/openfoam-pre-processing/)
-   -   How to use constant alpha contact angle in OF 2.1.1 (http://www.cfd-online.com/Forums/openfoam-pre-processing/114288-how-use-constant-alpha-contact-angle-2-1-1-a.html)

sandy13 March 8, 2013 07:58

How to use constant alpha contact angle in OF 2.1.1
 
Dear foamers,
I am trying to simulate splashing droplet on a surface by using interFoam, OF 2.1.1. The problem is I did not get the same behavior for the experiment results. I did not use alpha contact angle, do you think it the problem? and If it is, how can I use it? Please help me because I am new in OF.
Sandy,

michielm March 9, 2013 11:22

Hi Sandy,
I guess you used the zeroGradient BC? That is indeed going to give pretty different results.

To use the constantAlphaContactAngle BC you need to specify it in 0/alpha1 on the patch where you want it like this:

Code:

walls
    {
        type          constantAlphaContactAngle;
        theta0        45;
        limit          gradient;
        value          uniform 0;
    }

For an example, check out the capillaryRise tutorial.

That said, I am pretty sure that the constantAlphaContactAngle BC is not going to work well either, because your problem is highly dynamic and the contact angle that you model should thus dependent on the local velocities.

sandy13 March 10, 2013 11:38

Quote:

Originally Posted by michielm (Post 412737)
Hi Sandy,
I guess you used the zeroGradient BC? That is indeed going to give pretty different results.

To use the constantAlphaContactAngle BC you need to specify it in 0/alpha1 on the patch where you want it like this:

Code:

walls
    {
        type          constantAlphaContactAngle;
        theta0        45;
        limit          gradient;
        value          uniform 0;
    }

For an example, check out the capillaryRise tutorial.

That said, I am pretty sure that the constantAlphaContactAngle BC is not going to work well either, because your problem is highly dynamic and the contact angle that you model should thus dependent on the local velocities.

Dear michielm,
Thank you so much for your response, I appreciate it so much. I took your advice and recommendation about my case..splashing bubble.. I implemented the boundary condition you recommended but with a theta0 = 163 , because I have a numerical study to compare with, any how, I did not get the same behavior as well as you expected. Please do you have any more suggestions about my case, do you think do I have to use dynamics alpha contact angle instead of the constant one. Any thoughts would help...
Sandy,:confused:

michielm March 11, 2013 04:26

I indeed think you need to use the dynamicAlphaContactAngle BC or, even better, a more realistic implementation for the dynamic contact angle like the Cox-Voinov model. The latter would require you to code it yourself, but it is not a difficult task.

What I am wondering is whether you could show the comparison for the constantAlphaContactAngle and your validation case, so we can get a feel for the difference.

sandy13 March 11, 2013 06:17

Quote:

Originally Posted by michielm (Post 413045)
I indeed think you need to use the dynamicAlphaContactAngle BC or, even better, a more realistic implementation for the dynamic contact angle like the Cox-Voinov model. The latter would require you to code it yourself, but it is not a difficult task.

What I am wondering is whether you could show the comparison for the constantAlphaContactAngle and your validation case, so we can get a feel for the difference.

Dear michielm,
I will change constannt to dynamic and see what happiness, but about changing the code model, I do not think I am cleaver enough to do it especially I am not any good in c++. If that is not that difficult, where shall I go to what dictionaries and what I have to change... If you can, just direct me when ever you have time.
Sandy,

laurent98 January 6, 2014 20:01

hi,
is there anybody how can give us a idea of the realistic dynamic contact angle values thetaA R and thetaU, for water-air-solid contact ???
thanks a lot Laurent

michielm January 7, 2014 02:26

The dynamicAlphaContactAngle is not a physically correct model for the dynamic contact angle so it will be hard to give you values that lead to physically correct behaviour without fitting experimental data for your particular system.

Moreover, in general you cannot say which contact angle a water-air-solid system has without knowing what the solid is, because the contact angle (i.e. thetaA and thetaR) are determined by the chemical and physical nature of the solid as well as by the water and air interfacial properties

laurent98 January 8, 2014 23:16

1 Attachment(s)
Hi Michiel,
thank very much for reply, i understand dependance of solid surface.
i would like if possible to predict a ventilation of a free surface piercing foil like on the picture attach.
i presume this phenomena is related to the contact angle.
very good question here, what is Uwall...
http://www.cfd-online.com/Forums/ope...interfoam.html
so should i give up with OF dynamicContactAngle ? try to build a Kistler model?
for now, the "funny" think is that my simulation crash with a constantContactAngle BC, and run with a zeroGradient or dynamicContactAngle...

thanks LL

gnoyeh525 January 22, 2015 12:54

Quote:

Originally Posted by michielm (Post 413045)
I indeed think you need to use the dynamicAlphaContactAngle BC or, even better, a more realistic implementation for the dynamic contact angle like the Cox-Voinov model. The latter would require you to code it yourself, but it is not a difficult task.

What I am wondering is whether you could show the comparison for the constantAlphaContactAngle and your validation case, so we can get a feel for the difference.

Dear michielm

I want to ask as well, how to specify the dynamicAlphaContactAngle BC, please? Can you give us an example? Many thanks.

michielm January 22, 2015 13:16

You can simply use
Code:

walls
    {
        type          dynamicAlphaContactAngle;
        theta0        45;
        thetaA        60;
        thetaR        30;
        uTheta        0.01;
        limit          gradient;
        value          uniform 0;
    }

The values that you put in are as follows:
theta0 for the contact angle at 0 velocity
thetaA-thetaR the offset from theta0 at infinite velocity
uTheta for how quickly the angle changes from theta0 to thetaA/thetaR (i just put in some random value)

The mathematical implementation is: theta =theta0 + (thetaA - thetaR)*tanh(uwall/uTheta);

Note that this is not a physically correct implementation of the dynamic contact angle, but for moderate velocity you can fit thetaA-thetaR and uTheta to experimental data and might get away with using it.

gnoyeh525 January 26, 2015 04:43

Quote:

Originally Posted by michielm (Post 528658)
You can simply use
Code:

walls
    {
        type          dynamicAlphaContactAngle;
        theta0        45;
        thetaA        60;
        thetaR        30;
        uTheta        0.01;
        limit          gradient;
        value          uniform 0;
    }

The values that you put in are as follows:
theta0 for the contact angle at 0 velocity
thetaA-thetaR the offset from theta0 at infinite velocity
uTheta for how quickly the angle changes from theta0 to thetaA/thetaR (i just put in some random value)

The mathematical implementation is: theta =theta0 + (thetaA - thetaR)*tanh(uwall/uTheta);

Note that this is not a physically correct implementation of the dynamic contact angle, but for moderate velocity you can fit thetaA-thetaR and uTheta to experimental data and might get away with using it.

Dear michielm

Many thanks for your reply; So, each time, for each case, we have have to choose the thetaA-thetaR-theta0 and uTheta according to experimental results, right?

cheers
m

gnoyeh525 January 27, 2015 09:23

Quote:

Originally Posted by michielm (Post 528658)
You can simply use
Code:

walls
    {
        type          dynamicAlphaContactAngle;
        theta0        45;
        thetaA        60;
        thetaR        30;
        uTheta        0.01;
        limit          gradient;
        value          uniform 0;
    }

The values that you put in are as follows:
theta0 for the contact angle at 0 velocity
thetaA-thetaR the offset from theta0 at infinite velocity
uTheta for how quickly the angle changes from theta0 to thetaA/thetaR (i just put in some random value)

The mathematical implementation is: theta =theta0 + (thetaA - thetaR)*tanh(uwall/uTheta);

Note that this is not a physically correct implementation of the dynamic contact angle, but for moderate velocity you can fit thetaA-thetaR and uTheta to experimental data and might get away with using it.

Dear michielm

I think the current exist model for dynamic contact angle is not so accurate, i so I decide to implement new alternative contact angle model for testing.

cheers
g

gnoyeh525 May 5, 2015 09:46

Dear michielm

Again, may I ask you one more question. 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?

I see in ./transportiModel/twoPhasePropersities/, there exist a dynamicAlphacontactangle.C which contain the dynamic contact model. but I do know how this contact angle model been used in the interphasePropersity.C to update the interface propersities.

many thanks
cheers
Ming

Quote:

Originally Posted by michielm (Post 412737)
Hi Sandy,
I guess you used the zeroGradient BC? That is indeed going to give pretty different results.

To use the constantAlphaContactAngle BC you need to specify it in 0/alpha1 on the patch where you want it like this:

Code:

walls
    {
        type          constantAlphaContactAngle;
        theta0        45;
        limit          gradient;
        value          uniform 0;
    }

For an example, check out the capillaryRise tutorial.

That said, I am pretty sure that the constantAlphaContactAngle BC is not going to work well either, because your problem is highly dynamic and the contact angle that you model should thus dependent on the local velocities.



All times are GMT -4. The time now is 11:48.