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

Windkessel UDF using F_UDMI

Register Blogs Community New Posts Updated Threads Search

 
 
LinkBack Thread Tools Search this Thread Display Modes
Prev Previous Post   Next Post Next
Old   June 4, 2020, 10:35
Unhappy Windkessel UDF using F_UDMI
  #1
New Member
 
Connacht
Join Date: Feb 2020
Posts: 2
Rep Power: 0
tomdillon97 is on a distinguished road
Hi everyone,

I'm working on writing a UDF for a windkessel model (a flow-dependent pressure outlet boundary condition). This model can be thought of as an elastic bag, whose pressure increases as flow is integrated at the outlet at each timestep. To perform this integration, I am using user defined memory function F_UDMI to update the pressure from one time iteration to the next. I am reserving memory, initialising memory values, initialising my pressure using define_init, applying the windkessel model, and saving my pressure at the end of each iteration.

However, when I run the solver, define_profile always thinks the initial value of F_UDMI(f,thread,0) is 0, despite the fact that I have initialised it to be 980 Pa in the functions below. Why would the solver be ignoring my initialisation functions / am I using F_UDMI correctly? Thanks so much
Tom


#include "udf.h"

#define NUM_UDM 1
static int udm_offset = UDM_UNRESERVED;

DEFINE_EXECUTE_ON_LOADING(on_loading, libname)
{
if (udm_offset == UDM_UNRESERVED)
udm_offset = Reserve_User_Memory_Vars(NUM_UDM);

if (udm_offset == UDM_UNRESERVED)
Message("\nYou need to define up to %d extra UDMs in GUI and "
"then reload current library %s\n", NUM_UDM, libname);
else
{
Message("%d UDMs have been reserved by the current "
"library %s\n", NUM_UDM, libname);

Set_User_Memory_Name(udm_offset, "lib2-UDM-0");

}
Message("\nUDM Offset for Current Loaded Library = %d", udm_offset);
}


DEFINE_ON_DEMAND(set_udms)
{
Domain* d;
Thread* ft;
face_t f;
int i;

d = Get_Domain(1);

if (udm_offset != UDM_UNRESERVED)
{
Message("Setting UDMs\n");

for (i = 0; i < NUM_UDM; i++)
{
thread_loop_f(ft, d)
{
begin_f_loop(f, ft)
{
if (NUM_UDM > 0 && BOUNDARY_FACE_THREAD_P(ft))
{
F_UDMI(f, ft, udm_offset + i) = 980.0;
printf("The UDM value is %g \n ", F_UDMI(f, ft, udm_offset + i));
}

}
end_f_loop(f, ft)
}


}

}
else
Message("UDMs have not yet been reserved for library 1\n");
}

DEFINE_INIT(init_func, domain)
{
face_t f;

Thread* ft = Lookup_Thread(domain, 7);

begin_f_loop(f,ft)
{
F_P(f,ft)= 980.0;

}
end_f_loop(f,ft)
}

DEFINE_PROFILE(unsteady_pressure, thread, position)
{

face_t f;
real flow = 0.0f;
real C = 1.0f;
real deltat = CURRENT_TIMESTEP; //should be current timestep?
real R = 0.3f;

real integrated;



begin_f_loop(f, thread)
{
flow += F_FLUX(f, thread);
}
end_f_loop(f, thread);



begin_f_loop(f, thread)
{

integrated = F_UDMI(f,thread,0) + ((1 / C) * (flow * deltat) * (10 ^ 4));
F_PROFILE(f, thread, position) = integrated;

}
end_f_loop(f, thread);

}


DEFINE_EXECUTE_AT_END(pressure_save)
{
Domain* domain = Get_Domain(1);
Thread* thread = Lookup_Thread(domain, 7);
face_t f;

begin_f_loop(f, thread)
{
F_UDMI(f, thread, 0) = F_P(f, thread);
}
end_f_loop(f, thread)
printf("Step Pressure Recorded!");
}
tomdillon97 is offline   Reply With Quote

 

Tags
f_udmi, udf, udm, user defined memory, windkessel


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
udf for one dimensional linear motion based on force maccheese Fluent UDF and Scheme Programming 2 September 1, 2019 02:18
Save output of udf in another udf! JuanJoMex FLUENT 0 February 8, 2018 12:43
UDF Compilation Error - Loading Library - COMMON Problem! Help! robtheslob Fluent UDF and Scheme Programming 8 July 24, 2015 00:53
UDF parallel error: chip-exec: function not found????? shankara.2 Fluent UDF and Scheme Programming 1 January 16, 2012 22:14
UDF, UDF, UDF, UDF Luc SEMINEL Main CFD Forum 0 November 25, 2002 04:01


All times are GMT -4. The time now is 13:47.