Prise en compte de l'angle de contact

L'initialisation de la goutte avec funkySetFields écrase le fichier alpha1, comme on l'a dit précédemment. Mais dans certains cas, il peut être nécessaire d'imposer un angle de contact sur les wall du domaine. Or dans ce cas, l'option funkySetFields ne permet pas de garder l'angle de contact définit dans alpha1.org. Il faut alors modifier à la main le fichier alpha1 pour imposer l'angle de contact. Comme on lance beaucoup de simulation, on a choisi de faire un script qui prend toutes les commandes en compte sauf le lancement du calcul (interFoam).

  • Imposer un angle de contact statique : Un angle de contact statique doit être imposé lorsque la ligne de contact est immobile. Il faut, sur les frontières où l'on souhaite imposer cette contrainte, choisir :
    • type constantAlphaContactAngle : angle de contact statique,
    • theta0 : valeur de l'angle de contact en degré (ici 90°)
  • Imposer un angle de contact dynamique: Lorsque la ligne de contact bouge, il faut alors imposer un angle dynamique, ce qui est plus compliqué, il y a plus de champs à compléter. Cet angle dynamique a un angle d'avancement et de recul, et nécessite d'imposer la vitesse de la ligne de contact :
    • type dynamicAlphaContactAngle : angle de contact dynamique
    • theta0 : ici, c'est l'angle de contact "à l'équilibre", c'est -à-dire l'angle de contact final lorsque la goutte a fini de se propager
    • uTheta : vitesse de la ligne de contact
    • thetaA : angle d'avancement
    • thetaR : angle de recul (lors des phénomènes d'hysteresis, la goutte s'étale et se rétracte)

Pour  cet angle de contact dynamique, la formule sur laquelle se base OpenFOAM est $$ \theta = \theta_0  + (\theta_A - \theta_R) tanh (\frac{u_{wall}}{u_\theta}) $$

  • Imposer un angle de contact dynamique avec dépendance temporelle :
    • type dynamicAlphaContactAngle : angle de contact dynamique
    • thetae : angle de contact "à l'équilibre"
    • te : temps final
    • t0 : temps initial
    • theta0 : angle de contact initiale

La formule sur laquelle se base OpenFOAM est $$ \theta = \theta_0 + (t - t_0)* \frac{\theta_e - \theta_0}{t_e - t_0}$$.

Le choix de la condition sur l'angle de contact est délicat est demande une étude physique approfondie sur ce problème de mouillage de la goutte.

  • Script pour garder l'angle de contact dans alpha1 :Ce script simplifie les lancements des calculs :
    • il va nettoyer le dossier principal en supprimant tous les dossiers créés précédemment : foamCleanTutorials
    • puis générer le maillage : blockMesh
    • copier alpha1.org dans alpha : cp 0/alpha1.org 0/alpha1
    • initialiser la goutte : funkySetFields -latestTime
    • modifier le fichier alpha1 de manière à prendre en compte l'angle de contact