# Womersley profile in CFX 11

 Register Blogs Members List Search Today's Posts Mark Forums Read

 August 13, 2008, 14:30 Womersley profile in CFX 11 #1 Chris Basciano Guest   Posts: n/a Hello Everyone, I am attempting to implement the transient Womersley profile as an inlet velocity boundary condition in CFX 11 and have begun to write some user Fortran sub-routines to accomplish this task. My google searches of implementing this profile in CFX have not resulted in any substantial results. Thus, I was wondering if any of the CFX users in this forum have successfully implemented this profile within CFX (versions 5 through 11) and if they have any tips, tricks, pointers, or snippets they would be willing to share. Thanks in advance for any assistance you can provide.

 August 15, 2008, 02:48 Re: Womersley profile in CFX 11 #2 Liza Guest   Posts: n/a Why not use a CEL-expression instead? The Bessel function is available under Expressions/CEL/besselJ What are you modelling? Blood flow? Cheers Liza

 August 15, 2008, 11:27 Re: Womersley profile in CFX 11 #3 Chris Basciano Guest   Posts: n/a Thanks for the response Liza. Yeah, you guessed it, modeling blood flow. I have looked into using a CEL-expression but my equations for the Womersley profile require imaginary numbers and an array of values that would represent the Fourier transform of a physiological pressure pulse. To my knowledge, CEL-expressions are not able to include these two features in the expression language. I had been trying to think of a method to side-step these issues and still use a CEL-expression, but havenot had any success and since then switched to begin a user fortran function. Let me know if you have any ideas or suggestions to overcome these two issues because I would prefer using a CEL-expression.

 August 15, 2008, 19:30 Re: Womersley profile in CFX 11 #4 Rogerio Fernandes Brito Guest   Posts: n/a Hi Sir Chris Basciano, do you use fixed and static (without moving) boundary condition for your blood vessel? How is the boundary condition for blood vessel? (wall=adiabatic?,...). Best regards. "A Womersley number is a dimensionless number in biofluid mechanics. It is a dimensionless expression of the of pulsatile flow frequency in relation to viscous effects. It is named after John R. Womersley (1907-1958). The Womersley number, usually denoted α, can be written as α = R (ω μ^-1)^0.5 = R (ω ρ μ^-1)^0.5 where R is an appropriate length scale (for example the radius of a pipe), ω (omega) is the angular frequency of the oscillations, and ν (ni), ρ, μ are the kinematic viscosity, density, and dynamic viscosity of the fluid, respectively. It can also be written in terms of the dimensionless Reynolds number (Re) and Strouhal number (Sr): α = (2 pi Re Sr)^0.5, being pi = 3.1415. The Womersley number arises in the solution of the linearized Navier Stokes equations for oscillatory flow (presumed to be laminar and incompressible) in a tube. When α is small (1 or less), it means the frequency of pulsations is sufficiently low that a parabolic velocity profile has time to develop during each cycle, and the flow will be very nearly in phase with the pressure gradient, and will be given to a good approximation by Poiseuille's law, using the instantaneous pressure gradient. When α is large (10 or more), it means the frequency of pulsations is sufficiently large that the velocity profile is relatively flat or plug-like, and the mean flow lags the pressure gradient by about 90 degrees. In a flow distribution network that progresses from a large tube to many small tubes (e.g. a blood vessel network), the frequency, density, and dynamic viscosity are (usually) the same throughout the network, but the tube radii change. Therefore the Womersley number is large in large vessels and small in small vessels. It has been argued (West et al., 1997) that universal biological scaling laws (power-law relationships that describe variation of quantities such as metabolic rate, lifespan, length, etc., with body mass) are a consequence of the need for energy minimization, the fractal nature of vascular networks, and the crossover from high to low Womersley number flow as one progresses from large to small vessels. References: Nichols, W. W., and O'Rourke, M. F., 2005, "McDonald's Blood Flow in Arteries", London, Hodder-Arnold. West, G. B., Brown, J. H., and Enquist, B. J., 1997, "A General Model for the Origin of Allometric Scaling Laws in Biology", Science, Vol. 276, pp. 122-126. Womersley, J. R., 1955, "Method for the Calculation of Velocity, Rate Flow, and Viscous Drag in Arteries when the Pressure Gradient is Known", Journal of Physiology, Vol. 127, pp. 553â€"563." Source: from Wikipedia, the free world encyclopedia through the internet: http://en.wikipedia.org/wiki/Womersley_number/

 August 18, 2008, 10:04 Re: Womersley profile in CFX 11 #5 Chris Basciano Guest   Posts: n/a Rogerio, Thank-you for your response. I am confused by your first question if my boundary conditions (BCs) are fixed, but I will provide as much details as I can. My first round of simulations will be transient simulations with physiological flow waveforms for the average velocity implemented on the inlet boundary and physiological pressure waveforms implemented on the outlet/opening boundary. They will not include any wall motion in the first round of experiments so, measuring wave reflection is not the goal of the study. Eventually, the walls will include fluid-structure interaction (FSI) which results in mesh displacement/motion, but this will not be implemented in these first round results, and will focus on the displacement normal to the wall rather than axial displacement required for wave reflection analysis. Also, the Womersley profile is different than the Womersley number. The profile is an expression for the velocity across the the radial distance of a tube. It is a dynamic equilibrium state that is achieved after a certain length and time of transient flow in a tube. The goal of the profile is to be more representative of the blood velocity as it enters my region of interest (abdominal aorta) rather than a uniform or parabolic velocity profile. While on a large scale, the actual profile and oscillatory effects may not be overtly significant. However, my study is focusing on the local velocity field where the inlet profile will play a large role in determining fluid streamlines. Thanks again for the response.

 September 9, 2008, 21:52 Re: Womersley profile in CFX 11 #6 HekLeR Guest   Posts: n/a I am assuming you have and expression for v = f(radius,time) that is given as a fourier series. I suppose if there are only a few harmonics in the series then you could type the fully expanded expression in CEL. Otherwise you need a bit of user fortran. Just write a User FORTRAN function where you pass the radius and time in as arguments. By default the solver uses "r = sqrt(x*x+y*y)" so if your boundary is perpendicular to the z-axis then you can just use "r" and "t" as arguments. Otherwise you need to define a local coordinate system.

 August 12, 2009, 04:46 #7 Senior Member   Lance Join Date: Mar 2009 Posts: 598 Rep Power: 12 Hi, Does anyone have a Womersley Fortran code to share? I would write it myself, if I knew how to... :/

 August 12, 2009, 07:28 #8 Super Moderator   Glenn Horrocks Join Date: Mar 2009 Location: Sydney, Australia Posts: 12,714 Rep Power: 99 Hi, Hekler's post pretty much sums it up - most functions can be done as CEL expressions or possibly interpolation functions. If that does not give you enough power only then consider fortran. The tutorial examples explain both using CEL expressions and fortran subroutines which could be adapted to this task. Glenn Horrocks

 August 12, 2009, 07:43 #9 Senior Member   Lance Join Date: Mar 2009 Posts: 598 Rep Power: 12 Hi Glenn, Yes, I've read Hekler's post and I know in principle how to do it, it's just that my Fortran skills could be better. I didnt find the tutorials on Fortran to be useful at all, since the .F files were already written. So before I take a Fortran training course I just wanted to ask if someone done this before. Fortran in neccessary since CEL cannot handle imaginary numbers... Lance

 August 18, 2009, 10:04 Womersley profile #10 New Member   Syed Mushahid Hashmi Join Date: Aug 2009 Location: Hamburg, Germany Posts: 9 Rep Power: 9 the answer for your question is exacting. I just can give you a little tip, to the best of my knowledge the program named Mathcad may produce Fortran and C++ codes from Mathcad Interface( which I guess very user friendly) and then you can utilize that code in the subroutine which is good for CFX. I wish some day you will be able to implement the Wormsely velocity profile, then you must share on this forum. I feel this velocity profile(having Bessel functions) is the analytical solution of some unsteady Navier stokes problem. wishing u good luck Hashmi

August 18, 2009, 18:30
#11
Super Moderator

Glenn Horrocks
Join Date: Mar 2009
Location: Sydney, Australia
Posts: 12,714
Rep Power: 99
Quote:
 Originally Posted by Lance Hi Glenn, Yes, I've read Hekler's post and I know in principle how to do it, it's just that my Fortran skills could be better. I didnt find the tutorials on Fortran to be useful at all, since the .F files were already written. So before I take a Fortran training course I just wanted to ask if someone done this before. Fortran in neccessary since CEL cannot handle imaginary numbers... Lance
True, CEL cannot handle imaginary numbers. But you use a separate CEL expression to hold the real and imaginary part of the variable and expand the imaginary functions out. Not as nice as doing it directly in imaginary numbers but if you only have a few imaginary functions this is much easier than doing it in fortran.

Glenn

 December 7, 2009, 22:48 #12 New Member   Join Date: Dec 2009 Posts: 10 Rep Power: 8 Hi Chris I am also attempting to model womersley flow in a vessel, using ANSYS CFX. It would be a great help to me if you could briefly let me know if you made any progress.

 December 8, 2009, 03:24 #13 Senior Member   Lance Join Date: Mar 2009 Posts: 598 Rep Power: 12 I tried to do it in Fortran, but ended up doing it in Matlab instead and exported the profile to a.csv file which was read into CFX using "initialize profile data". I would give you the matlab hack if I could find it... Lance

 December 8, 2009, 14:48 #14 New Member   Join Date: Dec 2009 Posts: 10 Rep Power: 8 I have my own program to generate womersley flow profile as a .csv file. However, how is it that you entered the .csv as an initial condition? At the moment, I use an oscillating pressure gradient as the boundary conditions, and want to apply womersley flow profile as an initial condition, so I can simulate womersley flow as it develops from halfway through its period.

 December 9, 2009, 09:33 #15 Senior Member   Lance Join Date: Mar 2009 Posts: 598 Rep Power: 12 I didnt enter the womersley profile as an inital condition. I assigned it to the inlet and then let the simulation run for a couple of pulses.

 February 23, 2010, 23:59 #16 New Member   rofluent Join Date: Feb 2010 Posts: 10 Rep Power: 8 Hi Lance, I am also trying to run a blood flow simulation using the Womersley velocity profile( in fluent though). In fluent, I am supposed to write a user defined function for the Womersley velocity profile, but I am confused about the bessel function terms. Therefore, I was wondering if you have figured out the problem by now? Thanks, Rohini

 February 24, 2010, 01:27 #17 New Member   Join Date: Dec 2009 Posts: 10 Rep Power: 8 "I am also trying to run a blood flow simulation using the Womersley velocity profile( in fluent though). In fluent, I am supposed to write a user defined function for the Womersley velocity profile, but I am confused about the bessel function terms. Therefore, I was wondering if you have figured out the problem by now?" Just a quick tip, that may or may not help. If your Wormersley number is fairly low (<3 or ~2 which is about right for smaller animal blood flow) you can approximate it using a parabola, there is less that 1% difference, I found.

 February 24, 2010, 13:11 #18 New Member   rofluent Join Date: Feb 2010 Posts: 10 Rep Power: 8 Thanks ylm054. Do you mean that instead of using the bessel function term, I use the parabolic velocity term? I believe there are scientific libraries for incorporating the bessel function terms. Has anyone used those? Thank you Rohini

 February 24, 2010, 17:14 #19 New Member   Join Date: Dec 2009 Posts: 10 Rep Power: 8 yup, instead of bessel functions I used a parabola, because it was much simpler. Later I did implement Womersley profile since I wanted to look at higher Womersley numbers, but I used CFX not fluent, so I'm not sure how to do it.

 February 2, 2011, 11:19 #20 Senior Member   ali Join Date: Oct 2009 Posts: 186 Rep Power: 9 Hi ylm054 How did you implement womersley profile in your simulation? Did you use CEL or user fortran?

 Thread Tools Display Modes Linear Mode

 Posting Rules You may not post new threads You may not post replies You may not post attachments You may not edit your posts BB code is On Smilies are On [IMG] code is On HTML code is OffTrackbacks are On Pingbacks are On Refbacks are On Forum Rules

 Similar Threads Thread Thread Starter Forum Replies Last Post Far CFX 52 December 26, 2014 19:11 safikhani_hamed CFX 6 July 21, 2011 08:20 Far FLUENT 3 May 27, 2011 03:02 Atit Koonsrisuk CFX 4 July 26, 2006 11:59 Pandu Sattvika CFX 1 December 1, 2001 05:07

All times are GMT -4. The time now is 09:06.