- **OpenFOAM Programming & Development**
(*http://www.cfd-online.com/Forums/openfoam-programming-development/*)

- - **surface and volume fields multiplication**
(*http://www.cfd-online.com/Forums/openfoam-programming-development/85629-surface-volume-fields-multiplication.html*)

surface and volume fields multiplicationGreetings !
I have two fields: volVectorField X and surfaceScalarField M. Is there any method to multiply them to get volume field on new time step like that : X(n+1,i) = X(n,i-1)*M(n,1-1/2)-X(n,i+1)*M(n,i+1/2) there n timestep index and i index of a cell. i+1/2 - right face of a cell i-1/2 - left face. I assumed that this will look like interpolate(interpolate(X)*M) with upwind interpolation schemes, but as i know there is no method for interpolating face field onto cell volumes. Is there any way to make such construction in solver ? Best regards ! |

Something along these lines should do the trick. You're going to have to sort out the the discretization and mathematical correctness of it all. Since the mesh is unstructured you'll probably need to use the face normal vector or something to get the direction. Also take a look at finiteVolume/finiteVolume/fvc/fvcReconstruct.C, which does something similar.
Code:
` vectorField& Xi = X.internalField();` |

This might be a much simpler alternative. Again, you need to sort out the discretization and mathematical correctness.
X = fvc::surfaceSum(fvc::interpolate(X.oldTime())*M.ol dTime()) |

Hi Ivor , thank you very much for your reply !
It was really helpful for me. I'm trying to add some another algorithms in OpenFoam like FLIC or Big particles method, but there is a very little information about classes and methods in OpenFoam and tutorials for their usage, except Doxygen documentation. Construction proposed by you in your second post looks to be that i need. I used it for coding 3rd step in FLIC method and solver is compiling well now. I will try to solve some test cases and work out correctness issue. Best regards ! |

All times are GMT -4. The time now is 11:40. |