NiFl |
April 29, 2015 05:32 |
Steady microchannel simulation with simpleFoam
Hi,
I am trying to simulate an existing microchannel setup with simpleFoam. I use laminar flow, as there shouldn't be turbulences at that scale. This is my layout:
0==============
||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||
||||||||||||||||||||||||||||||||||||||
===============0
One inlet, one outlet (the 0s), two wider manifolds (===) and 60 small channels connecting the manifolds (|||).
I have pressure versus flow results from the real experiment, but the simulation is far off these values.
Here are my p/U fvScheme/fvSolution:
U:
Code:
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0]; // [m/s]
internalField uniform (0 0 0);
boundaryField
{
inlet
{
type fixedValue; // incompressible -> Q=A*v
value uniform (0 0 0.21);
}
outlet
{
type zeroGradient;
}
wall
{
type fixedValue;
value uniform (0 0 0);
}
}
// ************************************************************************* //
p:
Code:
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 0;
boundaryField
{
inlet
{
type zeroGradient;
}
outlet
{
type fixedValue;
value uniform 0;
}
wall
{
type zeroGradient;
}
}
fvSolution:
Code:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
p
{
solver GAMG;
tolerance 1e-7;
relTol 0.001;
minIter 5;
maxIter 100;
smoother GaussSeidel; // DIC; //DICGaussSeidel; //FDIC;
nPreSweeps 1;
nPostSweeps 3;
nFinestSweeps 3;
scaleCorrection true;
directSolveCoarsest false;
cacheAgglomeration on;
nCellsInCoarsestLevel 50; // 500
agglomerator faceAreaPair;
mergeLevels 1; // 3
}
"(U|k|epsilon)"
{
solver smoothSolver;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0.01;
nSweeps 1;
maxIter100;
};
}
SIMPLE
{
nNonOrthogonalCorrectors 0;
residualControl
{
p 1e-2;
U 1e-3;
"(k|epsilon)" 1e-3;
}
}
relaxationFactors
{
p 0.3;
U 0.7;
k 0.5;
epsilon 0.5;
R 0.5;
nuTilda 0.5;
}
cache
{
grad(U);
}
fvSchemes
Code:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default steadyState;
}
gradSchemes
{
default Gauss linear;
}
divSchemes
{
default none;
div(phi,U) bounded Gauss limitedLinearV 1;
div(phi,k) bounded Gauss limitedLinear 1;
div(phi,epsilon) bounded Gauss limitedLinear 1;
div(phi,R) bounded Gauss limitedLinear 1;
div(R) Gauss linear;
div(phi,nuTilda) bounded Gauss limitedLinear 1;
div((nuEff*dev(T(grad(U))))) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited 0.33;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited 0.33; //corrected;
}
fluxRequired
{
p;
}
I use the sample function to get the pressure at inlet and outlet with following sampleDict:
Code:
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object sampleDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// see /OpenFOAM-2.3.0/applications/utilities/postProcessing/sampling/ for manual
setFormat raw;
surfaceFormat vtk;
formatOptions
{
ensight
{
format ascii;
}
}
interpolationScheme cellPoint;
fields
(
p
U
);
surfaces
(
inlet_interpolated
{
type patch;
patches ( ".*inlet.*" );
interpolate true;
// Optional: whether to leave as faces (=default) or triangulate
// triangulate false;
}
outlet_interpolated
{
type patch;
patches ( ".*outlet.*" );
interpolate true;
// Optional: whether to leave as faces (=default) or triangulate
// triangulate false;
}
);
The pressure at the outlet is of course 0, but the pressure at the inlet gives me for example at v=0.21 m/s=10 ml/min a pressure of -32.76 which I have to multiplicate with rho to get Pa (is that right?) that is 0.5 bar but it should be 1.2 bar.
Am I missing something like fluid-wall interactions or special micro-scale settings?
I'm quite new to OpenFoam, as you can guess...
|