CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Running, Solving & CFD (
-   -   Released RBF motion solver (

lr103476 February 12, 2009 06:02

Dear OpenFOAM users! I am
Dear OpenFOAM users!

I am proud to announce that we have released the new RBF motion solver in the OpenFOAM-1.5-dev version.

This RBF motion solver uses Radial Basis Functions to interpolate the motion of boundary points onto the whole domain. First an inverse of the connectivity matrix is obtained and secondly this matrix is applied on the internal nodes to obtain a newPoints field. To increase the efficiency of this method, all fixed outer boundary points are neglected and of the moving boundary points we only take a subset as moving control points (which is particular fast when the moving body does not deform).

This mesh motion solver comes in 3 parts:
1) /src/OpenFOAM/interpolations/RBFInterpolation
2) /src/dynamicMesh/meshMotion/RBFMotionSolver
3) /tutorials/icoDyMFoam/movingBlockRBF

In RBFInterpolation you will find different RBF functions, add your own if you like. In movingBlockRBF you will find a RBFMotionFunction object which calls the RBFMotionSolver for you when you use icoDyMFoam or moveDynamicMesh.

That's all for now. Enjoy this new RBF motion solver and thanks to Hrvoje.


Btw, it does work in parallel, as long as every processor has enough control points. This will be improved in the future.

rieuk February 26, 2010 01:18

Hey Frank, I hope your PhD presentation went well. I was just wondering whether you could offer any documentation or papers to help me to use the RBF motion solver in OF-1.5-dev (understanding the various coefficients and parameters) because at the moment I am clueless.


sandeepsubbu June 25, 2014 11:23

RBF mesh motion solver in parallel
When I try to run icoDyMFoam with RBF mesh motion solver in parallel, it shows the following message:

[1] Singular matrix
[1] From function scalarSquareMatrix::LUdecompose(scalarSquareMatrix & matrix, labelList& rowIndices)
[1] in file matrices/scalarMatrices/scalarSquareMatrix.C at line 94.
FOAM parallel run exiting
Inverting RBF motion matrix

Does anyone know the reason behind this?

Xiaoyao December 5, 2016 02:59

Hi, sandeepsubbu
Did you have solved this problem? And how to solve it?
Thank you!

sandeepsubbu December 5, 2016 11:15

I suggest you read this paper: Bos, Frank M., Bas W. van Oudheusden, and Hester Bijl. "Radial basis function based mesh deformation applied to simulation of flow around flapping wings." Computers & Fluids 79 (2013): 167-177 (Pg. 3 in particular).

The paper discusses how the RBF interpolation is done. The singular matrix arises while trying to find a solution to Eq.8. While decomposing the mesh for parallel run, you need to make sure each partition has atleast one boundary point that is on the moving boundary, if not you get a singular matrix while performing the interpolation.

If your domain is large and if you cannot have boundary points for each partition, then you can solve the problem by modifying the solver. I modified the solver by making the points on the moving boundary accessible to all the processors. Then I performed interpolation for each partition using all the boundary points. This ensures that the matrix in Eq.8 is always invertible for finding the interpolation coefficients.

Hope this helps.

Collin May 26, 2017 12:16

Thank you for the explanation, sandeepsubbu!

In regards to the implementation for large domains, I keep finding all sorts of information saying openFoam (and its derivatives) cannot share information across processor patches without a great deal of work. If you're willing to share, could you share some additional details on your implementation?

All times are GMT -4. The time now is 22:38.