# Enthalpy to temperature

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

 November 1, 2010, 06:25 Enthalpy to temperature #1 Senior Member   Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 Sponsored Links Hi all, I am new to OpenFOAM. I was looking at where OpenFOAM does the h to T (or hs top T) conversion, and I noted that they use a Newton iteration mthod. But when I try to trace the sepcific heat they use in this equation, they seem to use Cp=Cp(T) and not Cp=Cp(T,Yi). This is the file I am talking about:- $FOAM/src/thermophysicalModels/specie/thermo/janaf Can anyone confirm/explain this? Thanks in advance.  Sponsored Links  July 17, 2011, 04:39 h to T conversion #2 Member Farshad Join Date: Oct 2010 Posts: 76 Rep Power: 8 Hi, I have exactly the same question. Thanks Farshad  July 17, 2011, 10:37 Enthalpy to T #3 Senior Member Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 I have dug deep since this post, and have the answers. When they go for the h->T conversion they hold the composition fixed, and define a new 'gas' with the composition averaged thermal properties. It is the Cp of this mixture gas that is (rightly) used to compute T.  February 13, 2012, 11:51 #4 Senior Member isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 10 Hi all, I am looking for the extract of the code where the conversion from h to T is done but I do not find it. Can anybody tell me where it is? February 13, 2012, 18:35 #5 Senior Member Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 Check under Quote: $FOAM_SRC/thermophysicalModels/specie/thermo/specieThermo

 February 14, 2012, 04:44 #6 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 10 Thank you very much. I found the iteration in these lines: // return the temperature corresponding to the value of the // thermodynamic property f, given the function f = F(T) and dF(T)/dT template inline scalar specieThermo::T ( scalar f, scalar T0, scalar (specieThermo::*F)(const scalar) const, scalar (specieThermo::*dFdT)(const scalar) const ) const { scalar Test = T0; scalar Tnew = T0; scalar Ttol = T0*tol_; int iter = 0; do { Test = Tnew; Tnew = Test - ((this->*F)(Test) - f)/(this->*dFdT)(Test); if (iter++ > maxIter_) { FatalErrorIn ( "specieThermo::T(scalar f, scalar T0, " "scalar (specieThermo::*F)(const scalar) const, " "scalar (specieThermo::*dFdT)(const scalar) const" ") const" ) << "Maximum number of iterations exceeded" << abort(FatalError); } } while (mag(Tnew - Test) > Ttol); return Tnew; } There is something I do not understhand. What does “this->” means? mm.abdollahzadeh likes this.

 February 14, 2012, 10:25 #7 Member   Tibo Join Date: Jun 2011 Posts: 68 Rep Power: 8 I might be wrong but I don´t think this is an OF-specific function. Ecosia (instead of googling it) "this pointer" or "this pointer c++" or such. Tibo

 February 14, 2012, 10:43 #8 Senior Member   Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 It is a C++ keyword. "this" acts like a pointer to the object whose member function is under consideration.

 February 15, 2012, 10:15 #9 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 10 Dear friends, I have another doubt about these files. Where are defined the functions F and dFdT?

 February 15, 2012, 10:25 #10 Senior Member   Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 They are the function and its derivative. The Newton iteration in this case calculates T, given F(T) and dF/dT(T). The function gets pointers to the functions F and dF/dt. If the energy variable is enthalpy h, then F=h(T) and dF/dt=Cp(T). If it is internal energy e, then F=e and dF/dT=Cv(T). The code resolves these at runtime, and sends the appropriate pointers to the Newton iteration routine. Sun, mgg, akionux and 2 others like this.

 February 16, 2012, 05:32 #11 Senior Member   isabel Join Date: Apr 2009 Location: Spain Posts: 171 Rep Power: 10 Dear friends, Thank you very much for your help. I need to simulate melting of a solid. In that case, the enthalpy is given by the following equation: where L is the latent heat and alpha_l the mass fraction of the liquid phase. How do I implement the term alpha_l*L in the functions F and dFdT? Last edited by isabel; February 16, 2012 at 06:11.

 March 21, 2012, 19:58 #12 Senior Member   Adhiraj Join Date: Sep 2010 Location: Maryland, United States Posts: 104 Rep Power: 8 Hi, I would use Code:  F=H dFdT=Cp This is because, H=H(T) is the relationship you are trying to invert. And, at that point you will typically hold the composition fixed, so that \alpha, L and H_{ref} are fixed. So, dFdT=Cp. This of course assumes that L is not a function of T.

 July 20, 2012, 22:00 A Little question? #13 Member     Luis Felipe Gutierrez Marcantoni Join Date: Oct 2010 Location: Cordoba-Argentina Posts: 47 Rep Power: 8 Hi, I have a little question, I understand that if i.e, the energy variable is enthalpy F=h(T) and dF/dT=Cp(T), my question is in where it is defined in the code that F and dF/dt take these variables as arguments. Thanks in advance. qjh888 likes this. __________________ Felipe G Last edited by lfgmarc; July 21, 2012 at 09:14.

June 13, 2014, 11:07
Enthalpy-temperature for melting problem
#14
Senior Member

Join Date: Oct 2012
Location: AUS
Posts: 132
Rep Power: 7
Hi isabel ,
Will you please guide me how you implemented the melting problem ?

Quote:
 Originally Posted by isabel Dear friends, Thank you very much for your help. I need to simulate melting of a solid. In that case, the enthalpy is given by the following equation: where L is the latent heat and alpha_l the mass fraction of the liquid phase. How do I implement the term alpha_l*L in the functions F and dFdT?

October 31, 2016, 10:36
function "f"
#15
New Member

Mahdi Nabil
Join Date: Sep 2015
Posts: 7
Rep Power: 3
Hi All,

I just don't know where that "f" is coming from in OpenFOAM??? I know "F" and "dFdT", but I don't understand "f" in the Newton's routine!!

Quote:
 Originally Posted by adhiraj They are the function and its derivative. The Newton iteration in this case calculates T, given F(T) and dF/dT(T). The function gets pointers to the functions F and dF/dt. If the energy variable is enthalpy h, then F=h(T) and dF/dt=Cp(T). If it is internal energy e, then F=e and dF/dT=Cv(T). The code resolves these at runtime, and sends the appropriate pointers to the Newton iteration routine.

October 31, 2016, 10:38
Newton's Routine
#16
New Member

Mahdi Nabil
Join Date: Sep 2015
Posts: 7
Rep Power: 3
What is that "f" in the routine?! Where does it come from?

Quote:
 Originally Posted by isabel Thank you very much. I found the iteration in these lines: // return the temperature corresponding to the value of the // thermodynamic property f, given the function f = F(T) and dF(T)/dT template inline scalar specieThermo::T ( scalar f, scalar T0, scalar (specieThermo::*F)(const scalar) const, scalar (specieThermo::*dFdT)(const scalar) const ) const { scalar Test = T0; scalar Tnew = T0; scalar Ttol = T0*tol_; int iter = 0; do { Test = Tnew; Tnew = Test - ((this->*F)(Test) - f)/(this->*dFdT)(Test); if (iter++ > maxIter_) { FatalErrorIn ( "specieThermo::T(scalar f, scalar T0, " "scalar (specieThermo::*F)(const scalar) const, " "scalar (specieThermo::*dFdT)(const scalar) const" ") const" ) << "Maximum number of iterations exceeded" << abort(FatalError); } } while (mag(Tnew - Test) > Ttol); return Tnew; } There is something I do not understhand. What does “this->” means?

 May 31, 2017, 02:26 #17 Member   Janry Join Date: Oct 2015 Posts: 46 Rep Power: 3 Could anybody help me to find where it is defined in the code that F and dF/dt take these variables as arguments?? Thanks!

 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 cboss OpenFOAM 10 March 5, 2015 07:57 Mihail CFX 7 September 7, 2014 06:27 astein OpenFOAM Programming & Development 0 June 28, 2010 07:10 La S. Hyuck CFX 1 May 23, 2001 00:07 sheng Main CFD Forum 5 January 22, 1999 10:40