
[Sponsors] 
August 5, 2011, 11:42 
modify laplacian: div(k*grad(a*u))

#1 
New Member
Join Date: Aug 2011
Posts: 6
Rep Power: 6 
Hello,
I am trying to solve a type of heat equation: The difference to the standard heat equation is the scalar field alpha. The problem is that the last term cannot be expressed as fvm::laplacian(k,alpha*u), because apparently alpha*u is not the right class for this argument, and the compiler fails. How can this PDE be solved? Thanks Gunnar Last edited by gunnar2; August 8, 2011 at 13:26. Reason: correction: replaced [math]\nabla\cdot\phi u[/math] with [math]\nabla\cdot\mathbf{v} u[/math] 

August 6, 2011, 05:00 

#2 
Senior Member
ata kamyabi
Join Date: Aug 2009
Location: Kerman
Posts: 322
Rep Power: 9 
Hi
I think you can define a new field newfield=alpha*u and use fvc::laplacian(k,new) good luck 

August 6, 2011, 06:11 

#3 
New Member
Join Date: Aug 2011
Posts: 6
Rep Power: 6 
But I need the implicit (fvm::laplacian), not the explicit (fvc::laplacian) term.
If there is no such term, it should be possible to use something like fvm::laplacian(k,u)*diag(alpha) for . diag(alpha) would be a sparse diagonal matrix with the entries of the field alpha on it's diagonal, but I don't think such matrix exists in Openfoam. What do you think, does it make sense to implement it? Thanks Gunnar 

August 7, 2011, 05:10 

#4 
Senior Member
ata kamyabi
Join Date: Aug 2009
Location: Kerman
Posts: 322
Rep Power: 9 
Hi
I do not know 

August 7, 2011, 11:42 

#5 
Member
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 46
Rep Power: 9 
How about a little chain rule? i.e. split into:
Code:
\nabla \cdot ( k \alpha \nabla u ) + \nabla \cdot ( k u \nabla \alpha ) 

August 7, 2011, 12:29 

#6 
Senior Member
ata kamyabi
Join Date: Aug 2009
Location: Kerman
Posts: 322
Rep Power: 9 
Hi
But you loose conservative form. 

August 8, 2011, 08:43 

#7 
Senior Member
Santiago Marquez Damian
Join Date: Aug 2009
Location: Santa Fe, Santa Fe, Argentina
Posts: 430
Rep Power: 15 
First of all the equation appears to be not consistent, the first and last terms are vectorial, meanwhile the second one is scalar.
Regards.
__________________
Santiago MÁRQUEZ DAMIÁN, Ph.D. Research Scientist Research Center for Computational Methods (CIMEC)  CONICET/UNL Tel: 543424511594 Int. 7032 Colectora Ruta Nac. 168 / Paraje El Pozo (3000) Santa Fe  Argentina. http://www.cimec.org.ar 

August 21, 2011, 14:53 

#8 
Senior Member
Mieszko Młody
Join Date: Mar 2009
Location: POLAND, USA
Posts: 135
Rep Power: 9 
Hi Gunnar,
If the only think you need is modification of the discretization matrix (by multiplying diag(alpha)), then you can change the matrix itself. See the PISO algorithm from icoFoam: http://openfoamwiki.net/index.php/IcoFoam You can do similar and: 1. discretize alpha 2. UEqn.A() = UEqn.A()*alpha_discretized maybe will work... ZMM 

August 21, 2011, 16:44 

#9 
Member
Kai
Join Date: May 2010
Location: Stockholm
Posts: 41
Rep Power: 7 
__________________
Kai 

August 21, 2011, 17:36 

#10 
Senior Member
Mieszko Młody
Join Date: Mar 2009
Location: POLAND, USA
Posts: 135
Rep Power: 9 
Hi Kai,
Of course, I would proceed using this transformation. Currently I have some issues with laplacian operator in OFoam as well. Could you see my post: laplacian problem Maybe you will have some suggestions... Thanks ZMM 

Thread Tools  
Display Modes  


Similar Threads  
Thread  Thread Starter  Forum  Replies  Last Post 
Modifying the laplacian operator  mlawson  OpenFOAM Running, Solving & CFD  11  September 7, 2011 12:30 
Modify mesh runtime  Daniele111  OpenFOAM Meshing & Mesh Conversion  8  December 19, 2010 16:43 
"=" or "==" when I modify BC (fixedGradient) during run ?  Cyp  OpenFOAM Programming & Development  0  December 14, 2010 09:12 
Crank Nicholson scheme for Laplacian failed  Cyp  OpenFOAM  3  July 19, 2010 07:58 
fluent add additional zones for the mesh file  SSL  FLUENT  2  January 26, 2008 12:55 