
[Sponsors] 
November 1, 2010, 06:25 
Enthalpy to temperature

#1 
Senior Member
Adhiraj
Join Date: Sep 2010
Location: Maryland, United States
Posts: 104
Rep Power: 9 
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. 

July 17, 2011, 04:39 
h to T conversion

#2 
Member
Farshad
Join Date: Oct 2010
Posts: 76
Rep Power: 9 
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: 9 
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: 9 
Check under
Quote:


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<class thermo> inline scalar specieThermo<thermo>::T ( scalar f, scalar T0, scalar (specieThermo<thermo>::*F)(const scalar) const, scalar (specieThermo<thermo>::*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<thermo>::T(scalar f, scalar T0, " "scalar (specieThermo<thermo>::*F)(const scalar) const, " "scalar (specieThermo<thermo>::*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? 

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 OFspecific 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: 9 
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: 9 
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. 

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: 9 
Hi,
I would use Code:
F=H dFdT=Cp 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

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.
__________________
Felipe G Last edited by lfgmarc; July 21, 2012 at 09:14. 

June 13, 2014, 11:07 
Enthalpytemperature for melting problem

#14  
Senior Member
Mohammad Shakil Ahmmed
Join Date: Oct 2012
Location: AUS
Posts: 132
Rep Power: 8 
Hi isabel ,
Will you please guide me how you implemented the melting problem ? thanks in advance. Quote:


October 31, 2016, 10:36 
function "f"

#15  
New Member
Mahdi Nabil
Join Date: Sep 2015
Posts: 8
Rep Power: 4 
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:


October 31, 2016, 10:38 
Newton's Routine

#16  
New Member
Mahdi Nabil
Join Date: Sep 2015
Posts: 8
Rep Power: 4 
What is that "f" in the routine?! Where does it come from?
Quote:


May 31, 2017, 02:26 

#17 
Member
Janry
Join Date: Oct 2015
Posts: 46
Rep Power: 4 
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  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Problem with zeroGradient wall BC for temperature  Total temperature loss  cboss  OpenFOAM  10  March 5, 2015 07:57 
Calculation of the Governing Equations  Mihail  CFX  7  September 7, 2014 06:27 
temperature / enthalpy fields depending on type of fvPatchField  astein  OpenFOAM Programming & Development  0  June 28, 2010 07:10 
chemical reaction  decompostition  La S. Hyuck  CFX  1  May 23, 2001 00:07 
Solve Enthalpy or Temperature?  sheng  Main CFD Forum  5  January 22, 1999 10:40 