Computation of a Simplified Centrifugal Blood Pump

Questions and remarks about code_saturne usage
Forum rules
Please read the forum usage recommendations before posting.
Yvan Fournier
Posts: 4208
Joined: Mon Feb 20, 2012 3:25 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by Yvan Fournier »

Hello,

Yes, simply load both cases under ParaView. For the Rotor, you might need to set the output writer mode to "transient connectivity" (same as what you did for the new method).
Also, using the same output frequency for both parts is recommended, to avoid confusing ParaView.

As for sweeping, it might be called "extrusion" under SALOME.

Regards,

Yvan
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello,

ok. Tomorrow i will have a look. If i understood it correctly in case of the boundary layer i would then have 2 layers of cells next to the boundary face. One layer next to the inner face (rotor) and one layer next to the outer face (stator)? How would you mesh these layers? Can I also use Netgen?

I would like to really thank you. Until now i could learn a lot due to your posts!

Best regards,

Sebastian
Yvan Fournier
Posts: 4208
Joined: Mon Feb 20, 2012 3:25 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by Yvan Fournier »

Hello,

As I said in my previous post:
Actually, even without defining a specific layer, just arranging for the surface meshes at the rotor/stator boundary to be built by a sweep of a 1D profile around the rotation axis should help have a much better joining behavior.
So you may not even need an additional layer: just build the 2D boundary meshes at the rotor-stator boundary using a sweep (extrusion) of a 1D mesh (this will provide you with a quadrangle mesh), build the other faces so that their edges are conforming with that (using appropriate meshing hypotheses), then use Netgen once you have closed the volume (make sure face normals are all oriented either inwards or outwards, otherwise Netgen may complain).

For meshing, you may also be able to get additional help on the Salome Forum http://www.salome-platform.org

Regards,

Yvan
Yvan Fournier
Posts: 4208
Joined: Mon Feb 20, 2012 3:25 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by Yvan Fournier »

Hello again,

I forgot also to add that for your current mesh, if you can use a different group name for faces of the rotor and stator that should be joined and faces that should remain on the boundary, when joining leads to different results, it may be possible to visualize the face where the error occurs.

Regards,

Yvan
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello Yvan,

thank you very much. I will probably need some time to do so, because i do not yet know how it works exactly. But i was able to refine my meshes quite a lot in the boundary region. Maybe the joining is also possible with tetrahedrons which are well arranged near the boundary face.

Regards,

Sebastian
Yvan Fournier
Posts: 4208
Joined: Mon Feb 20, 2012 3:25 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by Yvan Fournier »

Hello,

I have added some logic in cs_turbomachinery.c to also output some visualizable output of added boundary (non-joined) faces, to help with debugging. If you do not want to wait for 3.2.2 (maybe at the end of this week, otherwise early February), you can add it as usual to your user subroutines.

The faces causing issues are where I expected them, that is in the "double curvature" region. To visualize them, a simpler solution is to reduce the joining "plane" parameter from 25 to 15 degrees, in which case you have issues at the first time step. In that case, you should have a boundary condition error right away, or you can even run the code in "preprocessing" mode (Calculation Management/Prepare Batch Calculation in the GUI), in which case you can visualize the boundary groups using "extract blocks" under ParaView, withing needing to run a single time step. This may help you test your mesh.

I also thought of a simpler mesh modification you may try under SALOME. I don't know how your CAD is defined, but if the CAD face for the "double curvature" (top of rotor) region are topologically rectangular, and you use the same refinement on facing edges (quite probable), you can simply define a sub-mesh on that face using "quandrangle (mapped)" hypothesis. If this works, Netgen will happily add pyramids by itself to manage the junction between tetrahedra and quadrangles, so the change might require very little time. If you're not sure, to get a feel for it, just build a CAD of a box, explode at least one face, then under MESH, define a Netgen mesh on the box, and a "mapped quadrangle" submesh on one exploded face. Then apply the technique to your mesh.

Regards,

Yvan
Attachments
cs_turbomachinery.c
(39.52 KiB) Downloaded 275 times
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello Yvan,

thank you very very much. I think that the visualization will be help a lot so that i get an idea of the problem. Your explanation is very nice and will try it. Currently i am running a computation with version 3.0.3 (Sat/Sat Coupling). The information on variables seem to be same as in 3.2.1. But i would like to work with 3.2.1 or 3.2.2.

Hopefully i will manage it to create the kind of mesh you mentioned. A problem is maybe that i did not created the CAD files by myself, but they were shared by the FDA as .iges-files. This causes sometimes a bit trouble in Salome in terms of faces and so on. The only thing i did by myself was the boundary layer inbetween the rotor and the stator. Then i applied a Boolean Cut between stator and boundary and one bewteen the boundary and the rotor and meshed both.

Best regards,

Sebastian
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello Yvan,

with your explanation about the sub meshing of the double curved region it worked quite well. I attached pictures of the mesh which is at the moment still moderarte meshed. Did i do it correct? What do you think about the mesh?

Best regards,

Sebastian
Attachments
Rotor_SubMesh.tar.gz
(136.46 KiB) Downloaded 248 times
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello Yvan,

unfortunately it was not successful. I obtained again certain erros related to an insufficiently regular mesh. I was able to visualize one error in paraview that was relateted to an edge which was transversed twice. I tried to mesh the boundary layer with quadrangle pref, but this did not work.

Best regards,

Sebastian
SRIB
Posts: 63
Joined: Wed Nov 20, 2013 7:12 pm

Re: Computation of a Simplified Centrifugal Blood Pump

Post by SRIB »

Hello,

due to your renewed cs_turbomachinery.c i could figure out that the edge which was transversed twice was in the region of the rotor's shaft. I made a second sub mesh of that region and meshed it same as the double curvature. With a fraction of 0.2 and a plane of 20 i obtained one full rotation of the rotor (250 iterations) :D. Thank you so much for your help.

I have three questions, please:

1. In the listing i can see that the Courant Number stays nearly constant. Mean value is between 0.9 and 1 and max is approx. 20. But the Fourier number increases and deacreses all the time. Sometimes Max is 1000 sometimes 15. Is that normal? If not, can i do something against this? I attached the listing.

2. Have the values for fraction and plane any impact on the results for velocity, pressure and so on?

3. Should I further refine the mesh in terms of terms of the boundary layer?


Best regards,

Sebastian
Post Reply