|
[Sponsors] |
October 12, 2011, 03:15 |
tetDecompositionMotionSolver
|
#1 |
Senior Member
Hannes Kröger
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 124
Rep Power: 18 |
Hello,
in my FSI application, I use the tetDecompositionMotionSolver. According to what Hrv and Zeljko have reported in their paper, I have also noted that the fvMotionSolver quickly degrades the grid quality in my case while the tetFEM-Solver performs much better. Unfortunately it is quite slow. The solver spends very much time in solving the FEM system (I guess 30 to 50% of the overall time). As i unterstand (please correct me, if I'm wrong), in each time step the FEM equation system is build up from scratch and solved iteratively. To speed up the process, I wonder if it would be wise to build up the FEM equation system, invert the stiffness matrix and store the inverted matrix. In each time step only a matrix-vector multiplication would be required, to get the new grid motion. Of course this would imply some kind of linearization of the grid motion, but at least in my case, the displacements are rather small compared to the overall grid dimensions. Has anyone already done some work in this direction or is there even already something implemented? I would be glad to know... Best regards, Hannes |
|
October 14, 2011, 08:11 |
|
#2 |
Senior Member
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,907
Rep Power: 33 |
This depends on your geometry: in many cases you will have a large fluid domain and only a small region actually moving. I use the subsetMotion for this sort of thing, confining the motion of the mesh only in a region close to the moving wall. Depending on the case, this will give you a MASSIVE sped-up, without any of the stupid side-effects you get from solving the mesh motion equation on cell centres.
Hrv
__________________
Hrvoje Jasak Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk |
|
October 21, 2011, 10:10 |
|
#3 |
Senior Member
Hannes Kröger
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 124
Rep Power: 18 |
Hi Hrv,
thanks very much for this hint. I'm currently about to try this but I just got stuck on the following issue: I have a pointVectorField named "pointDisplacement" on the global mesh with a fixedValue BC which contains the boundary values for the motion solver. Now I want to transfer this into a pointVectorField "subsetPointDisplacement" on the MeshSubset by doing: Code:
pointVectorField subsetPointDisplacement ( IOobject ( "pointDisplacement", mesh.subsetMesh().time().timeName(), mesh.subsetMesh().subMesh(), IOobject::NO_READ, IOobject::AUTO_WRITE ), mesh.subsetMesh().subPointMesh(), dimensionedVector("pointDisplacement", dimless, vector::zero), fixedValueFvPatchVectorField::typeName ); /* ..... */ subsetPointDisplacement=mesh.subsetMesh().interpolate(pointDisplacement); Thanks in advance, Hannes |
|
November 9, 2011, 05:12 |
|
#4 |
Senior Member
Arne Stahlmann
Join Date: Nov 2009
Location: Hanover, Germany
Posts: 209
Rep Power: 18 |
... sorry, put my question into an own thread: http://www.cfd-online.com/Forums/ope...-parallel.html
Last edited by Arnoldinho; November 9, 2011 at 08:47. Reason: ... put my question into a new thread. |
|
|
|