changing Mesh with known new points for shape
I am working on one-shot shape optimisation method using OpenFoam.
I need to change mesh during runtime acording to new shape I define.
I can define only the new position of the shape points I need to change.
I found way to move those points but this does not change all mesh.
I used some part of the modifyMesh.C code for that.
Does anybody have an idea how to change all mesh according to those new known points? I've looked into some motion solvers but I think it is not a good way, but maybe I'm wrong.
I would appreciate any kind of help.
You can do it using RBF Morph. Currently you need fluent GUI for set-up but once you have stored your solutions you can morph your mesh inside foam (learn more at our web site www.rbf-morph.com and on our youtube channel http://www.youtube.com/user/RbfMorph check also http://www.cfd-online.com/Wiki/RBF_Morph for a short summary).
Radial Basis Functions are a very powerful tool that can be successfully (RBF Morph is the first industrial example) applied for mesh morphing problems.
Radial Basis Function mesh motion is already implemented in the development release of OpenFOAM-1.5-dev, including a tutorial.
It is really powerful, but the implementation needs some improvements.
I did the basic implementation and used it for deforming three-dimensional wings.
thank You for Your help, I'll have a look into this, for now I use laplacianDisplacment for moving mesh, and I define first pointDisplacement boundary conditions for my shape, it is not perfect but works at least
You could also try to use the SBRStress displacement mesh motion solver. Just take for example dynamicBodyFvMesh and modify it to use your desired mesh motion solver and a boundary deformation you like.....it is pretty straightforward....
Our current implementation allows to fit very large RBF problems. The bottle neck is the fitting of RBF because the smoothing is done at solution stage in parallel.
This table summarizes the results of a complexity benchmark (our fastest method running on a 4 cores PC).
2629 0 (1s)
10276 0 (5s)
40636 1 (44s)
644644 4 22
Consider that our first industrial implementation (two years ago at the beginning of the project) was limited to about 10000 sources taking 2 hours (5s with current implementation) to fit such size of problem!
Interesting, what kind of acceleration methods do you use to solve the RBF system?
Btw, Meb and Kilerkill, please post your real names. This OpenFOAM forum has always been a decent forum, so don't be afraid.
my name is Marco Evangelos Biancolini (MEB). I'm a researcher in Machine Design at the University of Rome, I have experience in 1D gas-dynamic FSI (Fluent UDF) and shape optimisation. I have developed RBF Morph as a private consultant for a F1 team because nothing available on the market was enough for they huge models.
Now I'm a partner of ANSYS (http://www.ansys.com/corporate/partn.../rbf-morph.asp) and I sell the tool as an add on for Fluent.
Currently you need Fluent GUI for set-up but you can use your solutions everywhere (easily inside Foam) thanks to an external library.
So you have my full presentation!
Accelerating RBF is a mess (aformentioned performances are the result of two years of applied research). Our recipe is an industrial secret (we use a proprietary Local Correction Method) but the accelerating path is quite similar to other methods: use of iterative solver, preconditiioning, space partitioning, parallelism, fast neighbours search.
Take a look to this presentation
(you can find further material on the download area of our site).
The RBF Morph stuff that you did looks very impressive, it seems like a robust implementation. Considering the examples that I have seen, are the possibilities similar as the current OpenFoam mesh motion solvers (not only RBF). There are very robust, efficient and parallel. Besides, they have been used on mesh with millions of cells.
So, mesh motion is OpenFOAM was already very good. The reason that we implemented RBF mesh motion, was the possibility to perform extreme body motion, like a 180 degree rotation or something like that. I miss this aspect in your RBFMorph adverticement. Do you have some examples of very extreme body motion in parallel and efficient.
With your experience and knowledge, we could improve our implementation. Are you interested?
Find enclosed also the link to the paper to which the presentation is related:
Anyone interested to all downloads on RBF Morph site can register here:
we did extreme morphing. We moved up to 300 millions cells using 1 million of source points. We have also a new sequential morph in RBF Morph 1.2 that after the first set-up allows a very fast morphing. Such tool was designed for animations (it is capable to preview 300.000 points running in serial in real time) but we have discovered that it's the key to extend RBF Morph applications. The primary goal is mesh morphing for shape optimisation (i.e. do the parallel morph, close the morpher and run the CFD simulation); using the fast smoother we are able to move the mesh during a transient analysis with a negligible calculation overhead.
As far the very large movements involved I can answer with an anecdote: during a formal presentation of RBF Morph I did the set-up on the fly for a modifier asked by the attendees (changing the driver height moving the helmet); after that they asked me to illustrate how the negative cell detector tool works; I used several do and undo steps to corrupt the mesh producing a monster (looking like a long-neck dinosaur) to have an invalid mesh!
About your last point I can reply that if you have a challenging benchmark I'm open to make a test; I can also contribute for embedding the library within Foam (but this could be interesting after a stand alone tool for set-up will be ready or for fluent users that are also Foam users). Unfortunately I cannot directly contribute for the development because RBF Morph is a commercial tool and has behind a lot of investments. However I can help you for understanding the range of applicability of the technology.
Moving and deforming meshes for flapping flight at low Reynolds numbers
Find here cited presentation:
I had a look to the site of Frank, interesting application about FSI.
How many sources for moving wings in 3d?
I'm currently starting a research about FSI using RBF.
I have studied FSI using Fluent (with internal remeshing).
We have recently presented a 3D application about reed valves:
Dear Marco and Frank,
I found in OpenFOAM, the RBF does not work very well in parallel.
Which means different sub domains after decomposing, their movements do not coincide at the interfaces.
I found it works quite well in serial. So what would be wrong here?
My second question, in RBF interpolation, you need to first get the control points on the moving boundaries, but how to handle it in parallel? what would you do,
1) to let all the subdomains have the same control points? or
2) to let each subdomains have different control points, part of the moving b.c.?
Thanks for your help.
RBF Morph for flapping wings
Using RBF Morph you first set-up the morphing problem in serial; stored RBF solution can then be used during the calculation to deform the mesh (serial or parallel).
The parallel is not a concern because RBF are meshless and so the same field can be applied to any kind of mesh (of the same geometry of course); parallel meshes are properly managed because each partition use the same global RBF field and so congruence at boundary is implicitly guaranteed.
FSI can be more complicated, especially if CFD and FEM mesh are not conformal. However the meshless nature of RBF allows to deform the CFD model once the FEM solution is known: each FEM node is used as a source point with prescribed movement (the FEM solution).
We have successfully tested this approach on an industrial application:
I'm thinking to use RBF in OF 1.6-ext as morphing tool for optimization analysis.
I tried the tutorial movingBlockRBF. I can rotate and translate the block but I still haven't found how to morph the block surface with control points (for example increase the length or give a curvature).
Could anyone help me how to set the RBF for morphing or where I can find some examples?
Thanks in advance
|All times are GMT -4. The time now is 09:38.|