## Computational methods for dealing with geometrically complicated solid boundaries in fluid-air interface problems

### Remember to vote up questions/answers you find interesting or helpful (requires 15 reputation points)

Hello,

I am a PhD student who does not have extensive computational experience seeking advice from those experienced with computational modelling as to which method would be most appropriate for solving my particular problem.

Background

Physical Scenario

The Salvinia is a small floating fern. Its leaves have upon them a forest-like structure of fronds, with a particular shape and particular regions of hydrophobia and hydrophilia. This structure, also found elsewhere in nature, allows the Salvinia to maintain a persistent, stable air layer on its surface due to the phenomenon of surface tension.

For those familiar with the phenomenon of capillary action, this physical scenario is closely related, and involves many of the same considerations.

Mathematics

In brief, the interface between the air and the water is often constructed according to the method of Gauss. Operating on a variational principle, this method involves writing the free surface energy, the "wetting energy" due to contact with the solid boundaries (fronds) and gravitational potential (if desired) as action functionals to be minimised. It is also usually desirable to impose a condition on the volume bounded by the surface, specifying that it should not change under the variation, in order to fix a unique surface with respect to translations.

Classical formulations have viewed the surface as a height function over a euclidean domain. This can cause problems when the surface curves back on itself, as in the case of some sessile drops, for example. Thus, I have written the action functionals in terms of functions $X^A$ (where $A=1,2,3$) which define the embedding of the surface into three-dimensional euclidean space.

Why is this a problem?

The difficulty I have encountered is that the solid boundaries (fronds) do not have a simple geometry. Take, for example, the case where the fronds are cylinders. It is then possible to define the surface as a function $u(x,y)$ over a domain $\Omega$. The functional is can then be decomposed into an interior term and a boundary term using the divergence theorem, and solved using a finite element method.

Now consider the (still relatively simple) case where the frond is a cone, rather than a cylinder. Now, as the surface moves up and down vertically, the location and shape of the boundary as viewed in the $(x,y)$ plane changes, depending on the height and curvature of the surface.

What I have already tried

I have produced solutions for the cylinder case using FEMLAB, and replicated those results with COMSOL. However, I was unable to think of a way to incorporate more complicated boundary structures (even simple ones such as a cone).

I have had slightly more success with the Surface Evolver, developed by Ken Brakke. This is also a finite-element-style scheme, which works by evolving an initial surface using a gradient descent method. The software is stable and well-written, and I have been able to produce results for a cylinder, a cone and hyperboloid. However, as the solid boundaries must be defined as level-set constraints, I assume that building more complex solid boundaries would require overlapping level-set constraints and some criteria for switching between them appropriately.

Notes

I am aware of several different methods which may be applicable, including: Volume-of-Fluid methods, Level-Set Methods (Osher & Sethian), Finite Element Methods for PDEs and the Dorfmeister-Pedit-Wu algorithm. I have been endeavouring to determine for myself whether any or all of these might be appropriate, but due to my limited computational experience, I am quite unsure as to what method might be appropriate.

Important Comment

I am not attempting, in any way, to avoid the long and possibly laborious process of learning the ins and outs of a computational method. If referred by consensus or expert advice to an appropriate method, I will most happily plow into every piece of material I can find on the subject until I am able to address my problem. At this stage, I simply do not have the breadth of knowledge necessary to investigate every possible method and assess each for its strengths and weaknesses with respect to my problem.

Summary

Is there a computational method, or already-existing software package, which is appropriate for modelling fluid-air interfaces with solid boundaries of complicated geometry?

With thanks in anticipation,

Christopher Laing

-

Some level-set work of Fedkiw and collaborators seems to be similar to what you want, but I do not know about software availability.  You can look at physbam.stanford.edu/~fedkiw – S. Carnahan♦ Aug 31 2011 at 5:56
Dear Dr. Carnahan,  Thank you very much for your response. I have just today taken Prof. Fedkiw's book (co-authored with level set pioneer Stanley Osher) from the library, with the intention of investigating it fully should the level-set method be recommended here.  Regards, Christopher Laing – Christopher Laing Aug 31 2011 at 6:05

## 2 Answers

In addition to level set methods, there a couple other things you might want to look into.

One possibility is isogeometric analysis (T.J.R. Hughes and collaborators), which is designed for taking complicated smooth surfaces and discretizing them for finite-element-like computations.

Another thing to think about for fluid-structure interaction is the immersed boundary method (Charles Peskin and collaborators), which models the effect of the solid structure as a "force" on the fluid.

There are also arbitrary Lagrangian-Eulerian methods that allow you to track a moving surface with a moving mesh by modifying some terms in the underlying equations appropriately.

-

Dear Mr Barker,  Thank you for your reply. I will go and do some basic reading on each of your suggestions. I have seen some problems which have been solved with ALE methods, but I am still somewhat in the dark as to how complicated solid geometries might be expressed. It seems to me at first glance that such methods rely on the computation of boundary integrals to represent the energy contributed by the solid boundary, however perhaps I do not have a good mental picture of how such solid bodies could be dealt with.  Do you perhaps have a good reference/example? – Christopher Laing Aug 31 2011 at 23:01
Usually you discretize the geometry (say, with finite elements) so that the boundary integral is approximated by a sum of integrals, where each one can be represented nicely (say, with a polynomial).  The standard reference for ALE is Donea, Giuliani, Halleux, Comp. Meth. Appl. Mech. Engrg. 33 (1982) pp. 689-723, but I'm not sure it will be quite what you're looking for. – Andrew T. Barker Sep 1 2011 at 13:47

### You can accept an answer to one of your own questions by clicking the check mark next to it. This awards 15 reputation points to the person who answered and 2 reputation points to you.

You may also consider the immersed boundary method, and its variants. It was specifically developed for situations involving complex fluid/structure interactions. The method is quite successful for solid structures (complexity is not a problem); it's a bit trickier for porous media. In essence one write down the interaction forces experienced by the particles in the solid body, and integrates.

The methods do indeed rely on the computation of integrals, but fast quadratures work quite well here.

A really great starting point for this field is the Acta Numerica paper by Charles Peskin (2002). He also has some nice course notes, and code, online:

http://math.nyu.edu/faculty/peskin/ib_lecture_notes/index.html

-
{"extraction_info": {"found_math": true, "script_math_tex": 0, "script_math_asciimath": 0, "math_annotations": 0, "math_alttext": 0, "mathml": 0, "mathjax_tag": 0, "mathjax_inline_tex": 5, "mathjax_display_tex": 0, "mathjax_asciimath": 0, "img_math": 0, "codecogs_latex": 0, "wp_latex": 0, "mimetex.cgi": 0, "/images/math/codecogs": 0, "mathtex.cgi": 0}, "config": {"markdown_headings": true, "markdown_code": true, "boilerplate_config": {"ratio_threshold": 0.3, "absolute_threshold": 10, "end_threshold": 15, "enable": true}, "remove_buttons": true, "remove_image_figures": true, "remove_link_clusters": true, "table_config": {"min_rows": 2, "min_cols": 3, "format": "github"}, "remove_chinese": true, "remove_edit_buttons": true, "extract_latex": true}, "english_confidence": 0.9416616559028625, "perplexity_flag": "middle"}