1. 17 Feb, 2017 1 commit
    • Henry Weller's avatar
      thermophysicalModels: Changed specie thermodynamics from mole to mass basis · c52e4b58
      Henry Weller authored
      The fundamental properties provided by the specie class hierarchy were
      mole-based, i.e. provide the properties per mole whereas the fundamental
      properties provided by the liquidProperties and solidProperties classes are
      mass-based, i.e. per unit mass.  This inconsistency made it impossible to
      instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
      transport solvers on liquidProperties.  In order to combine VoF with film and/or
      Lagrangian models it is essential that the physical propertied of the three
      representations of the liquid are consistent which means that it is necessary to
      instantiate the thermodynamics packages on liquidProperties.  This requires
      either liquidProperties to be rewritten mole-based or the specie classes to be
      rewritten mass-based.  Given that most of OpenFOAM solvers operate
      mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
      is more consistent and efficient if the low-level thermodynamics is also
      mass-based.
      
      This commit includes all of the changes necessary for all of the thermodynamics
      in OpenFOAM to operate mass-based and supports the instantiation of
      thermodynamics packages on liquidProperties.
      
      Note that most users, developers and contributors to OpenFOAM will not notice
      any difference in the operation of the code except that the confusing
      
          nMoles     1;
      
      entries in the thermophysicalProperties files are no longer needed or used and
      have been removed in this commet.  The only substantial change to the internals
      is that species thermodynamics are now "mixed" with mass rather than mole
      fractions.  This is more convenient except for defining reaction equilibrium
      thermodynamics for which the molar rather than mass composition is usually know.
      The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
      equilibriumFlameT utilities in which the species thermodynamics are
      pre-multiplied by their molecular mass to effectively convert them to mole-basis
      to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
      equilibriumCO
      
          // Reactants (mole-based)
          thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();
      
          // Oxidant (mole-based)
          thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
          thermo N2(thermoData.subDict("N2")); N2 *= N2.W();
      
          // Intermediates (mole-based)
          thermo H2(thermoData.subDict("H2")); H2 *= H2.W();
      
          // Products (mole-based)
          thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
          thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
          thermo CO(thermoData.subDict("CO")); CO *= CO.W();
      
          // Product dissociation reactions
      
          thermo CO2BreakUp
          (
              CO2 == CO + 0.5*O2
          );
      
          thermo H2OBreakUp
          (
              H2O == H2 + 0.5*O2
          );
      
      Please report any problems with this substantial but necessary rewrite of the
      thermodynamic at https://bugs.openfoam.org
      
      Henry G. Weller
      CFD Direct Ltd.
      c52e4b58
  2. 13 Feb, 2017 1 commit
  3. 12 Feb, 2017 1 commit
    • Henry Weller's avatar
      functionObjects::scalarTransport: Added support for optional laminar and... · ae9522f0
      Henry Weller authored
      functionObjects::scalarTransport: Added support for optional laminar and turbulent diffusion coefficients
      
      Description
          Evolves a passive scalar transport equation.
      
          - To specify the field name set the \c field entry
          - To employ the same numerical schemes as another field set
            the \c schemesField entry,
          - A constant diffusivity may be specified with the \c D entry,
      
          - Alternatively if a turbulence model is available a turbulent diffusivity
            may be constructed from the laminar and turbulent viscosities using the
            optional diffusivity coefficients \c alphaD and \c alphaDt (which default
            to 1):
            \verbatim
                D = alphaD*nu + alphaDt*nut
            \endverbatim
      
      Resolves feature request https://bugs.openfoam.org/view.php?id=2453
      ae9522f0
  4. 09 Feb, 2017 2 commits
  5. 08 Feb, 2017 5 commits
  6. 07 Feb, 2017 5 commits
  7. 06 Feb, 2017 1 commit
  8. 03 Feb, 2017 7 commits
  9. 02 Feb, 2017 1 commit
  10. 30 Jan, 2017 3 commits
  11. 28 Jan, 2017 3 commits
  12. 26 Jan, 2017 4 commits
  13. 25 Jan, 2017 1 commit
  14. 24 Jan, 2017 3 commits
    • Henry Weller's avatar
      snappyHexMesh: Added "noRefinement" writeFlag to control the writing of... · 4e5dc434
      Henry Weller authored
      snappyHexMesh: Added "noRefinement" writeFlag to control the writing of cellLevel, pointLevel etc. files
      
      By default snappyHexMesh writes files relating to the hex-splitting process into
      the polyMesh directory: cellLevel level0Edge pointLevel surfaceIndex
      
      but by setting the noRefinement flag:
      
      writeFlags
      (
          noRefinement
          .
          .
          .
      );
      
      these optional files which are generally not needed are not written.
      
      If you run the three stages of snappyHexMesh separately or run a dynamic mesh
      solver supporting refinement and unrefinement these files are needed
      and "noRefinement" should not be set.
      4e5dc434
    • Henry Weller's avatar
      blockMesh: Delete the polyMesh directory before meshing · 9b319dab
      Henry Weller authored
      unless the blockMeshDict is in the polyMesh directory or the "-noClean" option
      is specified.
      
      This avoids problems running snappyHexMesh without first clearing files from
      polyMesh which interfere with the operation of snappyHexMesh.
      9b319dab
    • Henry Weller's avatar
      snappyHexMesh: Write correct refinement files once only · 192b5d91
      Henry Weller authored
      The files relating to the hex refinement are written out explicitly both by
      snappyHexMesh and dynamicRefineFvMesh and hence should be set "NO_WRITE" rather
      than "AUTO_WRITE" to avoid writing them twice.  This change corrects the
      handling of the "refinementHistory" file which should not be written by
      snappyHexMesh.
      192b5d91
  15. 20 Jan, 2017 2 commits