- **OpenFOAM Running, Solving & CFD**
(*https://www.cfd-online.com/Forums/openfoam-solving/*)

- - **Adding a momentum source term**
(*https://www.cfd-online.com/Forums/openfoam-solving/60304-adding-momentum-source-term.html*)

Hi,
I'm trying to model air fHi,
I'm trying to model air flow through vegetation and need to add a negative source term to the momentum equation in simpleFoam. I would appreciate some advice to get this right (I'm quite new to OpenFOAM...). For the different directions the source term is: Sx = -0.5*rho*Cd*abs(u)*u Sy = -0.5*rho*Cd*abs(v)*v Sz = ... ,where Cd is a constant. My questions are: 1. After I have created a volScalarField for Cd, how can I express the term in OpenFOAM in a nice way? ( S = -0.5*rho*Cd*U&U gives me the wrong sign I guess...) 3. Is it correct to insert the source term in simpleFoam.C as: solve(UEqn() == S -fvc::grad(p)); Do I have to include the source term anywhere else in the SIMPLE algorithm? 3. If I want the term to be explicit, are there any advantage in using the SuSp(..,..) function? Regards David |

Basically you are adding a draBasically you are adding a drag term in which case you should make it implicit using fvm::Sp. Is the drag coefficient a scalar or should it be tensorial to take into account anisotropy? If scalar I think your source term should be
-fvm::Sp(0.5*rho*Cd*mag(U), U) and remember to include it in the momentum equation construction not in solve(UEqn() == S -fvc::grad(p)); otherwise the pressure equation will not "see" the drag term at all. |

hi,
I added the energy equatihi,
I added the energy equation in icoFoam, this equation depends, obviously, the rates of flow: u, v and w. my questions are: 1- how to add a source term in the momentum equation only in z direction? 2- this source term does not depend on velocity but it depends on the temperature: g*beta*(T-Tref) (approximation of Boussinesq), icoFoam can it solve equation(equation of movement coupled with the equation of energy)? thank you in advance for your assistance zohra |

Create g as a dimensionedVectoCreate g as a dimensionedVector then g*beta*(T-Tref) will be a volVectorField containing components only in the g-direction and this can be added as a source term to the momentum equation.
You will have to think carefully about the pressure boundary conditions because zero-gradient on walls will no longer be appropriate. Alternatively you can use the approach in the buoyant-flow codes I have already written in which a "dynamic-pressure" pd is used which is p - rho*(g&h) which avoids some of the issues to do with the pressure boundary conditions as well as potential solution staggering that can occur on collocated meshes. |

hi,
I will apply what you hhi,
I will apply what you have suggest me. thank you |

Dear chafi fatima zohra:
I Dear chafi fatima zohra:
I have the same question about how to add the source term in cavity case of icoFoam. Could you please give some advice please? Thanks a lot. Best wishes, Guoxiang |

All times are GMT -4. The time now is 15:51. |