Computation of a Simplified Centrifugal Blood Pump
Posted: Thu Dec 12, 2013 8:51 pm
Hi everybody,
currently I am working in Prof. Behbahani's group on a CFD benchmark study released by the Food and Drug Administration USA that is related to a simplified centrifugal blood pump. The purpose of this project is to determine how computational fluid dynamics can be effectively used to characterize fluid flow and to predict blood damage in medical devices. This pump consists out of two parts, one rotor and one housing. In addition i created a boundary cylinder which surrounds the rotor.
The groups of the stator are inlet, outlet, fixed wall and boundary. The groups of the rotor are wall (the rotor itself, also fixed) and boundary. To get a rotation i set OmegaZ in „Coriolis Source Terms“ to a certain rotation in s-1.
In order to let the flow compute i created the following study:
./code_saturne –s Pump –c Rotor –c Stator
then i set the parameter in the GUI for both rotor and stator. In the subroutine cs_user_coupling.c i set the following for the stator:
/*-------------------------------------------------------------------------
* Example 2: coupling with instance "SATURNE_03".
*
* - coupled faces of groups "coupled_faces"
* - coupled cells (every cell overlapping the distant mesh)
* - all cells available as location support
*-------------------------------------------------------------------------*/
if (true)
cs_sat_coupling_define("Rotor",
"coupled_boundary",
"all[]",
NULL,
"all[]",
verbosity);
}
END_C_DECLS
Fort he rotor i changed the cs_sat_coupling definition to Stator. Checking the listing file the sat/sat coupling seems to work. But after 2 iterations i recieved the following error:
Jacobi [VelocityX]: divergence after 2 iterations:
initial residual: 1.5700e+18; current residual: 3.6045e+23
/home/caelinux/opt/installer/code_saturne-3.0.1/src/alge/cs_sles.c:2583: Fatal error.
Jacobi: error (divergence) solving for VelocityX
Call stack:
1: 0x7f2659e44f1b <reslin_+0x4bb> (libsaturne.so.0)
2: 0x7f2659e641a6 <invers_+0x1f6> (libsaturne.so.0)
3: 0x7f2659c53097 <coditv_+0x1a7b> (libsaturne.so.0)
4: 0x7f2659d329d3 <predvv_+0x56bb> (libsaturne.so.0)
5: 0x7f2659d174ae <navstv_+0x19f6> (libsaturne.so.0)
6: 0x7f2659d53a85 <tridim_+0x45d9> (libsaturne.so.0)
7: 0x7f2659c30014 <caltri_+0x30e0> (libsaturne.so.0)
8: 0x7f2659c06905 <cs_run+0xa35> (libsaturne.so.0)
9: 0x7f2659c05dea <main+0x14a> (libsaturne.so.0)
10: 0x7f265981176d <__libc_start_main+0xed> (libc.so.6)
11: 0x400769 <> (cs_solver)
End of stack
I am reletivly new in code_saturne. So, maybe someone of you has an idea how to fix this problem. Thank you very much for any kind of relevant comments.
currently I am working in Prof. Behbahani's group on a CFD benchmark study released by the Food and Drug Administration USA that is related to a simplified centrifugal blood pump. The purpose of this project is to determine how computational fluid dynamics can be effectively used to characterize fluid flow and to predict blood damage in medical devices. This pump consists out of two parts, one rotor and one housing. In addition i created a boundary cylinder which surrounds the rotor.
The groups of the stator are inlet, outlet, fixed wall and boundary. The groups of the rotor are wall (the rotor itself, also fixed) and boundary. To get a rotation i set OmegaZ in „Coriolis Source Terms“ to a certain rotation in s-1.
In order to let the flow compute i created the following study:
./code_saturne –s Pump –c Rotor –c Stator
then i set the parameter in the GUI for both rotor and stator. In the subroutine cs_user_coupling.c i set the following for the stator:
/*-------------------------------------------------------------------------
* Example 2: coupling with instance "SATURNE_03".
*
* - coupled faces of groups "coupled_faces"
* - coupled cells (every cell overlapping the distant mesh)
* - all cells available as location support
*-------------------------------------------------------------------------*/
if (true)
cs_sat_coupling_define("Rotor",
"coupled_boundary",
"all[]",
NULL,
"all[]",
verbosity);
}
END_C_DECLS
Fort he rotor i changed the cs_sat_coupling definition to Stator. Checking the listing file the sat/sat coupling seems to work. But after 2 iterations i recieved the following error:
Jacobi [VelocityX]: divergence after 2 iterations:
initial residual: 1.5700e+18; current residual: 3.6045e+23
/home/caelinux/opt/installer/code_saturne-3.0.1/src/alge/cs_sles.c:2583: Fatal error.
Jacobi: error (divergence) solving for VelocityX
Call stack:
1: 0x7f2659e44f1b <reslin_+0x4bb> (libsaturne.so.0)
2: 0x7f2659e641a6 <invers_+0x1f6> (libsaturne.so.0)
3: 0x7f2659c53097 <coditv_+0x1a7b> (libsaturne.so.0)
4: 0x7f2659d329d3 <predvv_+0x56bb> (libsaturne.so.0)
5: 0x7f2659d174ae <navstv_+0x19f6> (libsaturne.so.0)
6: 0x7f2659d53a85 <tridim_+0x45d9> (libsaturne.so.0)
7: 0x7f2659c30014 <caltri_+0x30e0> (libsaturne.so.0)
8: 0x7f2659c06905 <cs_run+0xa35> (libsaturne.so.0)
9: 0x7f2659c05dea <main+0x14a> (libsaturne.so.0)
10: 0x7f265981176d <__libc_start_main+0xed> (libc.so.6)
11: 0x400769 <> (cs_solver)
End of stack
I am reletivly new in code_saturne. So, maybe someone of you has an idea how to fix this problem. Thank you very much for any kind of relevant comments.