CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Programming & Development (http://www.cfd-online.com/Forums/openfoam-programming-development/)
-   -   modify fvMatrix / coupled equations / higher order diffusion (http://www.cfd-online.com/Forums/openfoam-programming-development/88062-modify-fvmatrix-coupled-equations-higher-order-diffusion.html)

 Jinming May 7, 2011 06:20

modify fvMatrix / coupled equations / higher order diffusion

Dear OpenFOAM community,

I've just started using OpenFOAM, trying to solve an equation of the type

df/dt = laplacian(laplacian(f))

for higher order diffusion

To my limited knowledge (please correct if I am wrong), simple diffusion

df/dt = laplacian(f) is already implemented and
Code:

```fvScalarMatrix fEqn (     fvm::ddt(f) - fvm::laplacian(f) );```
creates an equation of the type (for the implicit case)

(F - F0)*V/deltaT - A*F

where F is a vector/list containing the cell values of f to be calculated, F0 those of the previous time step, V is the volume, deltaT is the time step, and A denotes the "discretized laplacian" (coefficient matrix).

A naive solution of

df/dt = laplacian(laplacian(f))

would be creating an equation of the type

(F - F0)*V/deltaT - A*A*F,

i.e. multiplying the fvMatrix A obtained from fvm::laplacian(f) by itself.

I would be grateful if someone could give me a hint on the implementation or how to solve the coupled problem

df/dt == laplacian(g)
laplacian(f) == g