text: /*---------------------------------------------------------------------------*\
    =========                 |
    \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
     \\    /   O peration     |
      \\  /    A nd           | Copyright (C) 2011-2014 OpenFOAM Foundation
       \\/     M anipulation  |
  -------------------------------------------------------------------------------
  License
      This file is part of OpenFOAM.
  
      OpenFOAM is free software: you can redistribute it and/or modify it
      under the terms of the GNU General Public License as published by
      the Free Software Foundation, either version 3 of the License, or
      (at your option) any later version.
  
      OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
      ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
      FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
      for more details.
  
      You should have received a copy of the GNU General Public License
      along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
  
  \*---------------------------------------------------------------------------*/
  
  #include "Ergun.H"
  #include "phasePair.H"
  #include "addToRunTimeSelectionTable.H"
  
  // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
  
  namespace Foam
  {
  namespace dragModels
  {
      defineTypeNameAndDebug(Ergun, 0);
      addToRunTimeSelectionTable(dragModel, Ergun, dictionary); 
  }
  }
  
  
  // * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
  
  Foam::dragModels::Ergun::Ergun
  (
      const dictionary& dict,
      const phasePair& pair,
      const bool registerObject
  )
  :
      dragModel(dict, pair, registerObject)
  {}
  
  
  // * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //
  
  Foam::dragModels::Ergun::~Ergun()
  {}
  
  
  // * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
  
  Foam::tmp<Foam::volScalarField> Foam::dragModels::Ergun::CdRe() const
  {
      return
          (4/3)
         *(
              150
             *max(scalar(1) - pair_.continuous(), residualAlpha_)
             /max(pair_.continuous(), residualAlpha_)
            + 1.75
             *pair_.Re()
          );
  }
  
  
  // ************************************************************************* //
  