limit high velocity values
Hi all,
I have a problem with unphysical high velocity values in some areas of my simulation (rhoPorousMRFLTSPimpeFoam). The high velocities appear at the end of the rotorblades (compressible flow in a turbocharger). The rotorblades have sharp edges, so I believe this can be the problem. Is there a possibility to limit the velocity??? There is a possiblity of the density: rhoMin rhoMin [ 1 3 0 0 0 ] 0.05; rhoMax rhoMax [ 1 3 0 0 0 ] 2.0; but this works only for rho. kind regards Florian 
Hi. Did you find out how that can be done?

Any news about this problem?
How did you solve it? It could be very useful for me, too. Thanks a lot, Samuele 
The method which works for density works for pressure as well but not for velocity. So for velocity I just looped over all cells and the boundary faces
forAll(U,cellI) { U[cellI].component(0)=some value; } forAll(U.boundaryField(),patchI) { forAll(U.boundaryField()[patchI],faceI) { U.boundaryField()[patchI][faceI].component(0)=some value; } } Let me know if this works 
You might also take a look at UEqns.H in multiphaseEulerFoam. There is a velocity dampener there which might give you some idea of how better to tackle this than a brute force reassignment. Basically, what is used is a source term dampener that is controlled by a proportional coefficient defined in transportProperties.

hi Omkar
how and where i can use the expressions you mentioned? hi kent where in the code below you mentioned the velocity bounding has been applied?and how i can use that in sonicFoam solver?do u have any idea? Code:
int phasei = 0; 
I am not sure where you pulled that code from, but in multiphaseEulerFoam/UEqns.H the source term is given as:
Code:
== 
I want first to thank the members of this blog for the useful numerical tricks disclosed. They were indeed helpful to me.
I started with these ideas and I managed to ensure that the velocity can not increase beyond a given threshold value by introducing an artificial hydrodynamic resistance that increases polynomially as the velocity magnitude approaches that limit. The code is this one forAll(Rdamp,cellI) { Rdamp[cellI] = Rref.value()*Foam::pow((mag(U[cellI])/maxVelocity.value()),10); } Rdamp.correctBoundaryConditions(); Rdamp.relax(); fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U)  fvm::laplacian(mu, U)  fvc::div(mu*fvc::grad(U)().T()) + fvm::Sp(Rdamp, U) ); In my case, the units of Rdamp are [1 3 1 0 0 0 0]. With this technique, the pressure correction equation remains conservative. I imposed an high power of 10 to ensure that the dampening resistance is negligible when the velocity is slightly lower than the threshold value. Underelaxation of Rdamp on the order of 0.5  0.8 appears to have good effects on the numerical stability of the algorithm. I would be glad to know if this numerical trick works for other cases too. 
All times are GMT 4. The time now is 03:28. 