CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > ANSYS > FLUENT

Question about modeling an elastic wall in Fluent

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

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

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.

Thanks,

Aaron
Mosheraa is offline   Reply With Quote

Old   June 24, 2011, 17:10
Default
  #2
Member
 
Join Date: Apr 2011
Posts: 30
Rep Power: 15
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
  #3
New Member
 
Aaron Mosher
Join Date: Jun 2011
Location: St. Louis
Posts: 5
Rep Power: 15
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:

Code:
#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*/
        f_node_loop(f,tf,n)
        {
            /*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*/
                NODE_POS_UPDATED(v);

                /*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);

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

            }/*end if statement*/

        }/*end node loop*/

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

}/*end DEFINE_GRID_MOTION*/
Mosheraa is offline   Reply With Quote

Reply

Tags
deformable boundary, dynamic mesh, elastic wall

Thread Tools Search this Thread
Search this Thread:

Advanced Search
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 Off
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 03:32
Errors running allwmake in OpenFOAM141dev with WM_COMPILE_OPTION%3ddebug unoder OpenFOAM Installation 11 January 30, 2008 20:30
Quick Question - Wall Function D.Tandra Main CFD Forum 2 March 16, 2004 04: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 19:32.