CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (http://www.cfd-online.com/Forums/openfoam-solving/)
-   -   High local velocities in interDyMFoam (http://www.cfd-online.com/Forums/openfoam-solving/118227-high-local-velocities-interdymfoam.html)

jrrygg May 23, 2013 04:48

High local velocities in interDyMFoam
 
Hi,

I have a simulation where a high speed jet of water (38.38 ms-1) interacts with a rotating turbine bucket in interDyMFoam. I have a problem with the courant number being very low (10-8), much because of an extremely high velocity (10⁵ ms-1) in a few cells around the bucket.

I wonder if anyone else has seen this behavior in interDyMFoam, and maybe knows how I can avoid velocities of this magnitude?

Kind regards,

Jone

https://dl.dropboxusercontent.com/u/...8-UR-0.007.png

https://dl.dropboxusercontent.com/u/...UR-0.007-2.png

dawnrain June 28, 2013 22:38

hi Jone
Maybe you can define another parameter in creatFields.H to replace Alpha1 for refinement. Like this
Add following lines in creatFields.H
Info<< "Creating field Laplacian U\n" << endl;
volScalarField laplaceU
(
IOobject
(
"laplaceU",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
(mag(fvc::laplacian(U.component(0)))
+ mag(fvc::laplacian(U.component(1)))
+ mag(fvc::laplacian(U.component(2))))
);
add following lines in interDyMFoam.C after pressure possion equation loop
// --- calculate laplacianU for refinement
laplaceU = (mag(fvc::laplacian(U.component(0)))
+ mag(fvc::laplacian(U.component(1)))
+ mag(fvc::laplacian(U.component(2))));
// --- calculate average laplacianU
dimensionedScalar laplaceUAver =
sum(laplaceU * mesh.V()) / sum(mesh.V());
// --- laplacianU
laplaceU = laplaceU / laplaceUAver;
Logicallly, the field laplaceU will be high on the interface and area with sharp velocity gradient.
Don't forget modify costant/dynamicMeshDict, like
change:
field alpha1;
lowerRefineLevel 0.001;
upperRefineLevel 0.999;
to:
field laplaceU;
lowerRefineLevel 4; //test
upperRefineLevel 1e10;
But i am not sure whether the change will be accepted by interDyMFoam, because adaptive mesh refinement code is difficult for me. Hope you succeed!


All times are GMT -4. The time now is 09:47.