# Create a biharmonic operator

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

 January 21, 2011, 16:58 Create a biharmonic operator #1 Member   Pascal Join Date: Jun 2009 Location: Montreal Posts: 65 Rep Power: 15 Hi all, I would like to use a biharmonic operator for implicit calculation. I tried to use the laplacian of the laplacian but it didn't work. So should I implement a new operator? If yes, does anyone could help me to get started. I took a look at the laplacian scheme : /OpenFOAM/OpenFOAM-1.6.x/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme and I'm a little confused with the oriented object programming. Any help would be greatly appreciated. Pascal

 August 1, 2011, 17:55 #2 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 Hi Pascal, I am facing the same problem right now. Did you were able to implement biharmonic operator ? Or maybe you know some other solution for this problem ? Thanks ZM

 August 1, 2011, 21:45 #3 Member   Pascal Join Date: Jun 2009 Location: Montreal Posts: 65 Rep Power: 15 Hi, No solution have been found yet, but if you find one let me know. Pascal

 August 2, 2011, 16:35 #4 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 Hi Pascal, The only solution I can think about is just explicit discretization. If you want to calculate laplacian(laplacian(f(x,y))) = fxxxx + 2fxxyy + fyyyy then you can make it like that: fvc::laplacian(fvc::laplacian(f)) -ZM

 August 2, 2011, 17:23 #5 Member   Pascal Join Date: Jun 2009 Location: Montreal Posts: 65 Rep Power: 15 Hi Ziemowit, I tried this one but the stability condition on such explicit discretization seems very restrictive. I think it has for consequence that you need to reduce dt a lot. No? Pascal

 August 2, 2011, 17:48 #6 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 yes, it is very possible...

 October 19, 2011, 06:28 #7 Member   Eysteinn Helgason Join Date: Sep 2009 Location: Gothenburg, Sweden Posts: 53 Rep Power: 14 Hi all, Have you managed to get working the laplacian(laplacian)? Using the explicit formulation my simple case blows up very quickly. /Eysteinn

 October 24, 2011, 10:29 #8 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 Hi Eysteinn, I think that the best solution is just to solve two equations instead on one: laplacian(laplacian(f)) = g can be solves as: 1) laplacian(h) = g 2) laplacian(f) = h ZM

October 31, 2011, 07:50
#9
Member

Eysteinn Helgason
Join Date: Sep 2009
Location: Gothenburg, Sweden
Posts: 53
Rep Power: 14
Quote:
 Originally Posted by ziemowitzima Hi Eysteinn, I think that the best solution is just to solve two equations instead on one: laplacian(laplacian(f)) = g can be solves as: 1) laplacian(h) = g 2) laplacian(f) = h ZM

This does not seem to solve my problem. Yes it runs but diverges
for the simplest cases.
btw. my equation also includes time derivative + extra terms:

/Eysteinn

 October 31, 2011, 10:29 #10 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 Hi , As far as I know OF has only linear solvers for algebraic equations. So it means that it is impossible to discretized non-linear terms in the implicit way (using fvm:: ). In my opinion (but I am not an OF expert) it seems that in your equation: you have to treat first and third term explicitly and only second can be treated implicitly. Of course third term is not-linear but as far as I know there is no biharmonic operator in OF. In general I was dealing with biharmonic operator as well, and I solved it the way I posted before. But I was solving it in Matlab using FFT not in OF. The only idea I have now is : and because diffusion-like terms are treated explicitly then you have to pay attention to the time step, it has to be small enough to fulfill the condition: I think that it should work. I would recommend for the beginning to solve:

 October 31, 2011, 10:31 #11 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 sorry, it should be: ... Of course third term is not nolinear but as far as I know there ... ...

 May 20, 2016, 19:43 #12 New Member   Kareem Abdelshafy Join Date: Feb 2016 Location: Boston MA USA Posts: 4 Rep Power: 8 I think Mieszko algorithm for solving the fourth order equation is not right. fvm::laplacian (h) =c fvm::ddt(c) = -fvc::laplacian (D, h) This is equal to fvm::ddt(c) = D*c

 May 22, 2016, 06:02 #13 Senior Member   Mieszko Młody Join Date: Mar 2009 Location: POLAND, USA Posts: 144 Rep Power: 15 yes, you are right, it should be: h = fvc::laplacian (c) fvm::ddt(c) = -fvm::laplacian (D, h) This is equal to fvm::ddt(c) = -fvm::laplacian (D, fvc::laplacian (c))

 Tags biharmonic, hyper viscosity, operator, scheme