CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Has the adpativemesh feature be implemented in FOAM (

Luckyluke (Luckyluke) January 5, 2005 23:08

If no, I want to built it. So
If no, I want to built it. Somebody will give me advice? I am a newbie.

Hrvoje Jasak (Hjasak) January 6, 2005 03:34

Heya (BTW, I prefer real name
Heya (BTW, I prefer real names, there's no reason to hide your identity here)

Yup, I have done it in 1995-6 - see my Thesis for details. It has been done on a shape-based mesh, it's been very hard and it lived a remarkably long time. However, it's dead now but it has caused me to develop the polyMesh approach foam is now using.

polyMesh now supports topological mesh changes and the rest of the code is written to automatically handle it, i.e. do the field mapping and such like automatically. There still may be some top-level issues, but have a look at icoTopoFoam to see how it's done.

Writing your own mesh refinenemt should now be very comfortable. There is a set of 9 primitive operations you can do on the mesh:

add/modify/remove point/face/cell

Based on these, you shoud specify your topological mesh change based on the above primitive operations, pack it into a polyTopoChange and the rest is easy. BEWARE: nobody at this level will check that the change you introduce makes any sense, i.e. you are allowed to do whatever you like. If the result is not a valid mesh, the code will fall over.

polyMeshModifiers, like attact/detach boundaries, layer addition/removal and sliding interfaces are all implemented using this approach. If you are serious about doing this, you will need to study IN DETAIL (!!! don't tell me I didn't warn you) the dynamic mesh library. I would pick up layer addition/removal or attach/detach and study the code until I really understand what is going on before proceeeding.

May I also recommend my excellent (and cleaned up) error estimation tools, also available in foam. :-)

There is a bunch of mesh manipulation tools which use a new approach - have a look at OpenFOAM-1.0/applications/utilities/mesh/advanced

Good luck,


P.S. There is a lot of comments in my code and this kind of stuff is very difficult to explain in a news group. Please read the code and comments in detail before asking questions.

Luckyluke (Luckyluke) January 6, 2005 07:10

Thank you for your kindness,J
Thank you for your kindness,Jasak. In your thesis, you have simulated a supersonic flow using the adaptive refinement feature.Can you give me a example of sovler with adaptive mesh?Am I greedy? If that, I am sorry.
My mother language is not english and I could not precisely understand the comments in code and the other documents. Sigh.

Henry Weller (Henry) January 6, 2005 11:15

Hi Luke, you might want to
Hi Luke,

you might want to have a look at aforementioned mesh utilities (utilities/mesh/) and in particular manipulation/refineMesh which refines a mesh by cell splitting.


Vatant (Vatant) January 6, 2005 19:50

In the solving velocity proce
In the solving velocity procedure in interFoam module, surfaceScalarField UBLendingfactor is being introduced. I tried to figure out the reason behind creating such a scalar field but am unclear about it. Why does it appear in the Ueqn.h procedure?

Eugene de Villiers (Eugene) January 11, 2005 08:21

Hi Vatant The "(fieldName)
Hi Vatant

The "(fieldName)BlendingFactor" field is a top level specification of the blending coefficient field for the "localBlended" convection differencing scheme.

To put it more plainly, if you want to use the "localBlended" meta-scheme, to blend say the Gamma and central differencing schemes, you have to specify the the local blending factor at each face in the domain. When used, the "localBlended" scheme will search the database for a surfaceScalarField called to "(fieldName)BlendingFactor", where "(fieldName)" corresponds to the name of the convected property. Being able to specify this blending factor in the top level code gives you an enormous amount of flexibility in terms of its distribution at the cost of some generality.

In the case of interFoam, I calculate the UblendingFactor such that it is close to one at the interface (i.e. where the VOF fraction is neither 0 nor 1). Thus I can use the more bounded and stable gamma2V differencing scheme for the momentum convection at the fluid-fluid interface and the more accurate central differencing scheme away from this area.

This approach is especially useful in LES where energy conserving differencing schemes are essential, but accuracy sometimes needs to be compromised locally to maintain the boundedness of the solution. I have also used this approach to run LES calculations on extremly bad meshes by locally blending CD and Gamma schemes depending on mesh quality and CFL numbers.

Hopefully I will get around to producing some documentation for this feature in the not to distant future.


All times are GMT -4. The time now is 23:13.