implicit div(k*grad(a*u))
Hello,
I have asked in "Running / Solving / CFD (http://www.cfd-online.com/Forums/ope...-k-grad-u.html)" before, but now this seems to be a programming question. How can I treat implicitly? - scalar field (known diffusivity) - scalar field (known mass fraction) - scalar field (unknown) fvm::laplacian(k,alpha*u) generates a compiler error. I think a possible solution is to right-multiply the fvMatrix fvm::laplacian(k,u) with a diagonal matrix made up of the values of on it's diagonal. But how do I write this in C++? Thank you Gunnar |
Is it really not possible to build a diagonal matrix?
Another possibility can be first to construct fvMatrix M=fvm::laplacian(k,u) In the next step I would have to multiply each row i of the matrix M with alpha[i]. However I don't understand the storage format of fvMatrix. May I ask if somebody would share a few lines of code, how to multiply one row of a fvMatrix with a scalar value? Thank you Gunnar |
|
Can you use the chain rule to seperate alpha and u?
|
Hi Gunnar!
You can use this function: Code:
namespace Foam{ namespace fvm{ Jakob |
Hi Jakob,
I read your post and it seems that you can know the answer for my question with laplacian operator. If you dont mind please read my post at: http://www.cfd-online.com/Forums/ope...n-problem.html |
All times are GMT -4. The time now is 21:18. |