Moving mesh velocity with restarts
Posted: 20 Oct 2009, 12:23
Hi all,
I am currently trying to use Elmer as the cfd-side of an explicit fluid-structure coupling scheme with Code Aster. I cannot use elmer for the structure side because I need axisymmetry, hyperelasticity and contact.
The .sif is build from the structure solution, with an imposed motion on the FSI boundary, handled by the MeshSolve solver. The cfd problem is solved in one step time from a previously saved state. The problem is that the mesh velocity is not correctly computed between restarts: it is always 0 on the FSI boundary.
Restrarts seems to be fine, the .name file does contains all variables needed:
Variables in file: curve.dat
File started at: 2009/10/20 10:39:33
199 boundary nodes for each step
0 polyline nodes for each step
1: Time step
2: Iteration step
3: Boundary condition
4: Node index
5: velocity 1
6: velocity 2
7: pressure
8: mesh update 1
9: mesh update 2
10: coordinate 1
11: coordinate 2
12: coordinate 3
13: mesh velocity 1
14: mesh velocity 2
So I started to play with MeshSolve.src and found that the mesh velocity is computed with:
MeshVelocity = ( MeshUpdate - Solver % Variable % PrevValues(:,1) ) / dt
The fact is that "Solver % Variable % PrevValues(:,1)" contains the previously computed MeshUpdate variable, as expected, but on the FSI boundary it is updated with the current Dirichlet conditions. I tried to save the PrevValues solution right at the beginning of the MeshSolve solver but no luck, it seems to be modified elsewhere.
Then I started to look at the LoadRestartFile subroutine, but does not seems that there is any Dirichlet BC related stuff in it.
Well I'm stuck for the moment because of my near-to-zero F90 level, so if anybody has an idea of what appens to the variables between LoadRestartFile and MeshSolve, his advice will surely be very appreciated
Happy elmer-ing
Ect.
I am currently trying to use Elmer as the cfd-side of an explicit fluid-structure coupling scheme with Code Aster. I cannot use elmer for the structure side because I need axisymmetry, hyperelasticity and contact.
The .sif is build from the structure solution, with an imposed motion on the FSI boundary, handled by the MeshSolve solver. The cfd problem is solved in one step time from a previously saved state. The problem is that the mesh velocity is not correctly computed between restarts: it is always 0 on the FSI boundary.
Restrarts seems to be fine, the .name file does contains all variables needed:
Variables in file: curve.dat
File started at: 2009/10/20 10:39:33
199 boundary nodes for each step
0 polyline nodes for each step
1: Time step
2: Iteration step
3: Boundary condition
4: Node index
5: velocity 1
6: velocity 2
7: pressure
8: mesh update 1
9: mesh update 2
10: coordinate 1
11: coordinate 2
12: coordinate 3
13: mesh velocity 1
14: mesh velocity 2
So I started to play with MeshSolve.src and found that the mesh velocity is computed with:
MeshVelocity = ( MeshUpdate - Solver % Variable % PrevValues(:,1) ) / dt
The fact is that "Solver % Variable % PrevValues(:,1)" contains the previously computed MeshUpdate variable, as expected, but on the FSI boundary it is updated with the current Dirichlet conditions. I tried to save the PrevValues solution right at the beginning of the MeshSolve solver but no luck, it seems to be modified elsewhere.
Then I started to look at the LoadRestartFile subroutine, but does not seems that there is any Dirichlet BC related stuff in it.
Well I'm stuck for the moment because of my near-to-zero F90 level, so if anybody has an idea of what appens to the variables between LoadRestartFile and MeshSolve, his advice will surely be very appreciated
Happy elmer-ing
Ect.