|
[Sponsors] |
UDF-Specific heat as a function of Temperature |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
May 2, 2013, 22:35 |
UDF-Specific heat as a function of Temperature
|
#1 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
Hi,
I am trying to write a UDF for the Specific heat (Cp) as a function of Temperature. I used "curve fitting" technique to obtain the formula. my First question, am I not sure if I put the below formula correctly (the original one is attached) ? Cp=4.3568+27.57838*exp(-0.5*((K-19.08514)/2.00369)^2) Second question, why the code is not interrupting ("float" error)? please guide me if through the code is right or not. As its for a transient analysis so, I expected to call the temperature from current temperature. #include "udf.h" DEFINE_SPECIFIC_HEAT(my_user_cp,c,K,thread, position) { real cp; /*specific heat as a function of temperature*/ real K; /* Temperature*/ face_t f; begin_f_loop(f,thread) { F_CENTROID(K,f,thread); Cp = CURRENT_TEMPERATURE; Cp=4.3568+27.57838*exp(-0.5*((K-19.08514)/2.00369)^2) F_PROFILE(C, K, position) =Cp; } end_f_loop(C,K) } regards, |
|
May 2, 2013, 23:28 |
|
#2 |
Senior Member
|
As far as I can recall, the binary operator "^" in C means BIT-AND and it expects both operand to be integer, so you should replace
(...)^2 to pow( (...), 2.0 ) when you need to calculate the power of a float number. Correct me if I am wrong |
|
May 3, 2013, 06:27 |
|
#3 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
Thank you for reply,
Actually, I recived this error for the formula : pow: too few arguments supplied (argument 2) which its : cp=4.3568+27.57838*exp(-0.5*(pow((T-19.08514)/2.00369),2.0) |
|
May 3, 2013, 07:13 |
|
#5 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
thank you! the formula's error now solved.
but still have error "invalid type for binary expression: int + pointer to float" it belongs to the line after formula I guess. #include "udf.h" DEFINE_SPECIFIC_HEAT(my_user_cp,c,T,thread, position) { real cp; /*specific heat as a function of temperature*/ real T; /* Temperature*/ face_t f; begin_f_loop(f,thread) { cp=4.3568+27.57838*exp(-0.5*( pow( (T-19.08514)/2.00369,2.0) ) ); F_CENTROID(T,f,thread); y = CURRENT_TEMPERATURE; F_PROFILE(f, thread, position) =cp; } end_f_loop(C,T) } regards, |
|
May 3, 2013, 08:23 |
|
#6 |
Senior Member
|
Try this one, adapted from the fluent udf manual.
#include "udf.h" DEFINE_SPECIFIC_HEAT(my_user_cp, T, Tref, h, yi) { real cp=4.3568+27.57838*exp(-0.5*( pow( (T-19.08514)/2.00369,2.0) ) ); *h = cp*(T-Tref); return cp; } |
|
May 3, 2013, 08:32 |
|
#7 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
thank you very much,
It was hooked to the Fluent. As I have two UDF file, Is it possible to hook two UDF for analysis at same time ? it seems impossible as I tryied to do! what I should to do ? regards, |
|
May 3, 2013, 10:25 |
|
#9 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
I did and its work very well. I just paste the second code at the end of first code. let see the results...
many thanks, |
|
May 4, 2013, 09:14 |
|
#10 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
would you please tell me how to change inital temperature value in Fluent ? and in C program code as UDF file ?
as I can see the initial temperature (at step 0) for the model, its 26 C by default by Fluent. how can I change it ? where is the option menu in Fluent ? or in this such a case that in transient analysis I must define at UDF file which its already interrupted to the Fluent ? Note: when I am using hybrid initialization! regards, Last edited by ahvz; May 4, 2013 at 09:30. |
|
May 4, 2013, 10:11 |
|
#12 |
Senior Member
Moha
Join Date: Mar 2013
Location: EU
Posts: 103
Rep Power: 0 |
Done!
it works very well, thank you very much, best regards, |
|
October 19, 2014, 10:48 |
|
#13 | |
Senior Member
Rick
Join Date: Oct 2010
Posts: 1,016
Rep Power: 27 |
Quote:
Correct equation is integral of cp. |
||
May 28, 2015, 19:53 |
|
#14 |
New Member
tan
Join Date: Jun 2014
Posts: 4
Rep Power: 12 |
||
February 26, 2016, 06:14 |
udf for specific heat (cp) of water
|
#15 |
Member
Ram Kumar Pal
Join Date: Apr 2015
Posts: 38
Rep Power: 11 |
Dear friends, I have to write udf for specific heat of water as function of temperature. I have written according to DEFINE_PROPERTY macro, but it is not working. Specific heat of water as a function of temperature (in deg Celsius) is as follows:
cp = 4.2174356 - 0.0056181625*temp + 0.0012992528*pow(temp,1.5) - 0.00011535353*pow(temp,2.0) + 4.14964*pow(10.0,-6.0)*pow(temp,2.5) I have seen in UDF manual DEFINE_SPECIFIC_HEAT, but don't understand how can I write for above defined function. Please help me. Thanks in advance |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Simulation of a single bubble with a VOF-method | Suzzn | CFX | 21 | January 29, 2018 01:58 |
Compile problem | ivanyao | OpenFOAM Running, Solving & CFD | 1 | October 12, 2012 10:31 |
How to write udf for specific heat | nanoraja | ANSYS Meshing & Geometry | 1 | September 14, 2011 12:34 |
Error with Wmake | skabilan | OpenFOAM Installation | 3 | July 28, 2009 01:35 |
Droplet Evaporation | Christian | Main CFD Forum | 2 | February 27, 2007 07:27 |