CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Steady microchannel simulation with simpleFoam

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 29, 2015, 05:32
Default Steady microchannel simulation with simpleFoam
  #1
New Member
 
Join Date: Jul 2013
Posts: 8
Rep Power: 12
NiFl is on a distinguished road
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...
NiFl is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
NonNewtonian, steady state, Laminar, Incompressible for simpleFoam. ngjaeho OpenFOAM Pre-Processing 1 December 19, 2014 06:08
SimpleFoam convergence problem with really simple simulation mayank.dce2k7 OpenFOAM Running, Solving & CFD 2 November 19, 2013 05:28
Simulation of laminar flow of 2 liquids inside microchannel sekar harikrishnan FLUENT 0 March 8, 2013 03:53
SimpleFoam unable to reach steady state francois OpenFOAM Running, Solving & CFD 8 November 19, 2009 13:33
Unsteady vs Steady simulation - any difference? Sally Main CFD Forum 16 December 16, 2005 09:15


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