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

#1 
New Member
Join Date: Aug 2011
Posts: 6
Rep Power: 8 
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: 323
Rep Power: 11 
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: 8 
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: 323
Rep Power: 11 
Hi
I do not know 

August 7, 2011, 11:42 

#5 
Member
Michael Roth
Join Date: Mar 2009
Location: Guelph, Ontario, Canada
Posts: 49
Rep Power: 10 
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: 323
Rep Power: 11 
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: 438
Rep Power: 17 
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: 142
Rep Power: 10 
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, 17:36 

#10 
Senior Member
Mieszko Młody
Join Date: Mar 2009
Location: POLAND, USA
Posts: 142
Rep Power: 10 
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: http://www.cfdonline.com/Forums/ope...nproblem.html 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  18  May 21, 2017 08:15 
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 