CFD Online Logo CFD Online URL
Home > Forums > FLUENT

Question about modeling an elastic wall in Fluent

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

LinkBack Thread Tools Display Modes
Old   June 22, 2011, 12:47
Question Question about modeling an elastic wall in Fluent
New Member
Aaron Mosher
Join Date: Jun 2011
Location: St. Louis
Posts: 5
Rep Power: 6
Mosheraa is on a distinguished road

I've noticed that several other people have posted questions about modeling flow through elastic walls in the past, but I haven't seen any answers.

I'm trying to model blood flow around a stenosis in a compliant artery, using a 2D axisymmetric model with a thin-wall, linearly elastic fluid wall interaction. From what I've read, Fluent definitely has the capability to model this with dynamic mesh. However, I'm a bit stuck on how to correctly implement a DEFINE_GEOMETRY(name,domain,dynamic_thread,positio n) function.

My approach so far is to use a DEFINE_ADJUST function to read pressure data into either a file or user defined memory. Then, I want to use the DEFINE_GEOMETRY to compute the deflection as r_new = r_old*( 1 + D*( P_wall - P_ref ) ) at each point on wall.

I run into problems however, because the DEFINE_GEOMETRY function has some implicit loop over the dynamic face (which I don't know how to access) but the pressure data is accessed/stored through an explicit face loop.

Does anyone have any advice on how to connect the pressure on a face to the displacement of that face? Has anyone had any particular experience using DEFINE_GEOMETRY?

Any thoughts or suggestions would be awesome.


Mosheraa is offline   Reply With Quote

Old   June 24, 2011, 17:10
Join Date: Apr 2011
Posts: 30
Rep Power: 6
skullCFD is on a distinguished road
That's interesting! I used COMSOL or CFD-ACE+ previously for strongly bidirectionally coupled FSI problems. Could you please update the status of your problem here if you get successful with Fluent? Thanks.
skullCFD is offline   Reply With Quote

Old   June 24, 2011, 18:47
Default Limited Success using DEFINE_GRID_MOTION
New Member
Aaron Mosher
Join Date: Jun 2011
Location: St. Louis
Posts: 5
Rep Power: 6
Mosheraa is on a distinguished road
Dear SkullCFD,

I have made a little bit of progress with an elastic-wall boundary by using the DEFINE_GRID_MOTION macro instead of DEFINE_GEOM. The code seems to properly adjust the boundary according to the relation
dr/r = Dw*( P - Pref), Dw = r*(1-vp^2)/(E*h)
However, while the boundary seems to be deforming properly, the rest of my mesh is remaining static =(. Hopefully, this just means I need to read a little more documentation about how to set up a dynamic mesh zone.

Another possible problem my code may have, is that it may have convergence problems if it is simultaneously reading pressure and adjusting the boundary with each iteration. This can be easily fixed by using a DEFINE_ADJUST to read pressure data into F_UDMI to prevent any unsteady solver coupling.

As I've said above, my code still has a few bugs, but here's what I have so far:

#include "udf.h"

/*Define Wall Deformation*/
DEFINE_GRID_MOTION( elastic_wall, domain, dynamic_thread, time, dtime)
    /*Model Constants*/

        /*Elasticity Parameters*/
        real E = 400000;                                        /*Young's Modulus (Pa)*/
        real vp = .499;                                            /*Poisson's Ratio*/
        real h = .0055;                                            /*Wall Thinkness (m)*/

        /*Reference Values*/
        real Pref = 0;

    /*Variable Declarations*/

        /*Fluent Data Access*/
        Thread *tf = DT_THREAD(dynamic_thread);
        face_t f;
        Node *v;
        int n;

        /*Model Variables*/
        real P;                                                /*Wall Pressure*/
        real r;                                                /*Radius at wall*/
        real NV_VEC(dr);                                  /*Wall Increment*/
        real Dw;                                            /*Wall Distensibility*/

    /*Set deforming flag on adjacent cell zone */

        SET_DEFORMING_THREAD_FLAG(THREAD_T0(tf));            /*??Need to look up exacty what this is doing??*/

    /*Loop Over Faces*/

    begin_f_loop( f, tf )
        /*Compute Pressure on the face*/
        P = -F_P( f, tf );                                    /*??Minus sign to account for face orientation??*/
        Message ("Face Pressure = %f\n", P);

        /*Loop Over Nodes*/
            /*Assign Node Value*/
            v = F_NODE(f,tf,n);                                

            /*Check if node needs to be updated*/
            if (NODE_POS_NEED_UPDATE (v))
                /* Indicate that node position has been updated*/

                /*Compute Wall Distensibility*/
                r = NODE_Y(v);                                /*??Does NODE_Y(v) access radial positiion in axisymmetric??*/
                Dw = r*(1-vp*vp) / (E*h);

                /*Increment Wall*/
                NV_D( dr, =, 0, r*Dw*( P - Pref ),0 );
                NV_V( NODE_COORD(v), +=, dr);

                Message ("Radius: %f, Deflection: %f\n", r, dr[1] );

            }/*end if statement*/

        }/*end node loop*/

    }/*end face loop*/
    end_f_loop( f, tf )

Mosheraa is offline   Reply With Quote


deformable boundary, dynamic mesh, elastic wall

Thread Tools
Display Modes

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 Off
Trackbacks are On
Pingbacks are On
Refbacks are On

Similar Threads
Thread Thread Starter Forum Replies Last Post
Viscoelastic flow modeling in Fluent Ankur Navra FLUENT 3 July 26, 2013 05:56
Water subcooled boiling Attesz CFX 7 January 5, 2013 04:32
Errors running allwmake in OpenFOAM141dev with WM_COMPILE_OPTION%3ddebug unoder OpenFOAM Installation 11 January 30, 2008 21:30
Quick Question - Wall Function D.Tandra Main CFD Forum 2 March 16, 2004 05:29
Flux depending on wall shear stress in Fluent 5.2 Andreas Borg FLUENT 0 June 7, 2000 06:27

All times are GMT -4. The time now is 02:45.