1. 16 Jun, 2020 1 commit
  2. 01 May, 2020 1 commit
  3. 31 Oct, 2019 1 commit
  4. 24 Sep, 2019 1 commit
  5. 16 Jul, 2019 1 commit
  6. 12 Jul, 2019 1 commit
  7. 07 Jun, 2019 1 commit
    • Sergio Ferraris's avatar
      INT: Org integration of VOF, Euler phase solvers and models. · 8170f2ad
      Sergio Ferraris authored
      Integration of VOF MULES new interfaces. Update of VOF solvers and all instances
      of MULES in the code.
      Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models
      Updating reactingEuler tutorials accordingly (most of them tested)
      
      New eRefConst thermo used in tutorials. Some modifications at thermo specie level
      affecting mostly eThermo. hThermo mostly unaffected
      
      New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial.
      
      Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved
      to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for
      chtMultiRegionTwoPhaseEulerFoam.
      
      Update of interCondensatingEvaporatingFoam solver.
      8170f2ad
  8. 06 Feb, 2019 1 commit
  9. 05 Jan, 2019 1 commit
    • sergio's avatar
      ENH: new ReactingHeterogeneousCloud · 25575df6
      sergio authored
      - number of particles per parcel info to kinematic cloud
      
      - added turbulent dispersion to basicHeterogeneousReactingParcel
      
      - corrected dhsTrans in MUCSheterogeneousRate::calculate
      
      - added cloud macro system to reactingParcelFoam and fixed calculation
        of average particles per parcel
      
      - added progress variable dimension to reacting model (nF)
      
      - added ReactingHeterogeneous tutorial
      25575df6
  10. 21 Dec, 2018 1 commit
  11. 19 Oct, 2018 1 commit
  12. 12 Oct, 2018 1 commit
    • Mark Olesen's avatar
      ENH: avoid readScalar, readLabel etc from dictionary (#762, #1033) · 8eddcc07
      Mark Olesen authored
      - use the dictionary 'get' methods instead of readScalar for
        additional checking
      
           Unchecked:  readScalar(dict.lookup("key"));
           Checked:    dict.get<scalar>("key");
      
      - In templated classes that also inherit from a dictionary, an additional
        'template' keyword will be required. Eg,
      
           this->coeffsDict().template get<scalar>("key");
      
        For this common use case, the predefined getXXX shortcuts may be
        useful. Eg,
      
           this->coeffsDict().getScalar("key");
      8eddcc07
  13. 01 Jun, 2018 1 commit
    • Mark Olesen's avatar
      STYLE: reduced usage of Switch · 84b10921
      Mark Olesen authored
      - Since 'bool' and 'Switch' use the _identical_ input mechanism
        (ie, both accept true/false, on/off, yes/no, none, 1/0), the main
        reason to prefer one or the other is the output.
      
        The output for Switch is as text (eg, "true"), whereas for bool
        it is label (0 or 1). If the output is required for a dictionary,
        Switch may be appropriate. If the output is not required, or is only
        used for Pstream exchange, bool can be more appropriate.
      84b10921
  14. 28 Mar, 2018 1 commit
  15. 26 Feb, 2018 2 commits
    • Mark Olesen's avatar
    • Mark Olesen's avatar
      ENH: cleanup autoPtr class (issue #639) · 660f3e54
      Mark Olesen authored
      Improve alignment of its behaviour with std::unique_ptr
      
        - element_type typedef
        - release() method - identical to ptr() method
        - get() method to get the pointer without checking and without releasing it.
        - operator*() for dereferencing
      
      Method name changes
      
        - renamed rawPtr() to get()
        - renamed rawRef() to ref(), removed unused const version.
      
      Removed methods/operators
      
        - assignment from a raw pointer was deleted (was rarely used).
          Can be convenient, but uncontrolled and potentially unsafe.
          Do allow assignment from a literal nullptr though, since this
          can never leak (and also corresponds to the unique_ptr API).
      
      Additional methods
      
        - clone() method: forwards to the clone() method of the underlying
          data object with argument forwarding.
      
        - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)
      
      STYLE: avoid implicit conversion from autoPtr to object type in many places
      
      - existing implementation has the following:
      
           operator const T&() const { return operator*(); }
      
        which means that the following code works:
      
             autoPtr<mapPolyMesh> map = ...;
             updateMesh(*map);    // OK: explicit dereferencing
             updateMesh(map());   // OK: explicit dereferencing
             updateMesh(map);     // OK: implicit dereferencing
      
        for clarity it may preferable to avoid the implicit dereferencing
      
      - prefer operator* to operator() when deferenced a return value
        so it is clearer that a pointer is involve and not a function call
        etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
      660f3e54
  16. 23 Nov, 2017 1 commit
    • Will Bainbridge's avatar
      ENH: combustionModels: Changed the construction order · 22aae281
      Will Bainbridge authored
      The combustion and chemistry models no longer select and own the
      thermodynamic model; they hold a reference instead. The construction of
      the combustion and chemistry models has been changed to require a
      reference to the thermodyanmics, rather than the mesh and a phase name.
      
      At the solver-level the thermo, turbulence and combustion models are now
      selected in sequence. The cyclic dependency between the three models has
      been resolved, and the raw-pointer based post-construction step for the
      combustion model has been removed.
      
      The old solver-level construction sequence (typically in createFields.H)
      was as follows:
      
          autoPtr<combustionModels::psiCombustionModel> combustion
          (
              combustionModels::psiCombustionModel::New(mesh)
          );
      
          psiReactionThermo& thermo = combustion->thermo();
      
          // Create rho, U, phi, etc...
      
          autoPtr<compressible::turbulenceModel> turbulence
          (
              compressible::turbulenceModel::New(rho, U, phi, thermo)
          );
      
          combustion->setTurbulence(*turbulence);
      
      The new sequence is:
      
          autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh));
      
          // Create rho, U, phi, etc...
      
          autoPtr<compressible::turbulenceModel> turbulence
          (
              compressible::turbulenceModel::New(rho, U, phi, *thermo)
          );
      
          autoPtr<combustionModels::psiCombustionModel> combustion
          (
              combustionModels::psiCombustionModel::New(*thermo, *turbulence)
          );
      
      ENH: combustionModel, chemistryModel: Simplified model selection
      
      The combustion and chemistry model selection has been simplified so
      that the user does not have to specify the form of the thermodynamics.
      
      Examples of new combustion and chemistry entries are as follows:
      
          In constant/combustionProperties:
      
              combustionModel PaSR;
      
              combustionModel FSD;
      
          In constant/chemistryProperties:
      
              chemistryType
              {
                  solver          ode;
                  method          TDAC;
              }
      
      All the angle bracket parts of the model names (e.g.,
      <psiThermoCombustion,gasHThermoPhysics>) have been removed as well as
      the chemistryThermo entry.
      
      The changes are mostly backward compatible. Only support for the
      angle bracket form of chemistry solver names has been removed. Warnings
      will print if some of the old entries are used, as the parts relating to
      thermodynamics are now ignored.
      
      ENH: combustionModel, chemistryModel: Simplified model selection
      
      Updated all tutorials to the new format
      
      STYLE: combustionModel: Namespace changes
      
      Wrapped combustion model make macros in the Foam namespace and removed
      combustion model namespace from the base classes. This fixes a namespace
      specialisation bug in gcc 4.8. It is also somewhat less verbose in the
      solvers.
      
      This resolves bug report https://bugs.openfoam.org/view.php?id=2787
      
      ENH: combustionModels: Default to the "none" model
      
      When the constant/combustionProperties dictionary is missing, the solver
      will now default to the "none" model. This is consistent with how
      radiation models are selected.
      22aae281
  17. 03 Jul, 2017 1 commit
  18. 27 Jun, 2017 1 commit
  19. 20 Apr, 2017 1 commit
    • Henry Weller's avatar
      The "<type>Coeffs" sub-dictionary is now optional for most model parameters · 5c518365
      Henry Weller authored
      except turbulence and lagrangian which will also be updated shortly.
      
      For example in the nonNewtonianIcoFoam offsetCylinder tutorial the viscosity
      model coefficients may be specified in the corresponding "<type>Coeffs"
      sub-dictionary:
      
      transportModel  CrossPowerLaw;
      
      CrossPowerLawCoeffs
      {
          nu0         [0 2 -1 0 0 0 0]  0.01;
          nuInf       [0 2 -1 0 0 0 0]  10;
          m           [0 0 1 0 0 0 0]   0.4;
          n           [0 0 0 0 0 0 0]   3;
      }
      
      BirdCarreauCoeffs
      {
          nu0         [0 2 -1 0 0 0 0]  1e-06;
          nuInf       [0 2 -1 0 0 0 0]  1e-06;
          k           [0 0 1 0 0 0 0]   0;
          n           [0 0 0 0 0 0 0]   1;
      }
      
      which allows a quick change between models, or using the simpler
      
      transportModel  CrossPowerLaw;
      
      nu0         [0 2 -1 0 0 0 0]  0.01;
      nuInf       [0 2 -1 0 0 0 0]  10;
      m           [0 0 1 0 0 0 0]   0.4;
      n           [0 0 0 0 0 0 0]   3;
      
      if quick switching between models is not required.
      
      To support this more convenient parameter specification the inconsistent
      specification of seedSampleSet in the streamLine and wallBoundedStreamLine
      functionObjects had to be corrected from
      
          // Seeding method.
          seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;
      
          uniformCoeffs
          {
              type        uniform;
              axis        x;  //distance;
      
              // Note: tracks slightly offset so as not to be on a face
              start       (-1.001 -0.05 0.0011);
              end         (-1.001 -0.05 1.0011);
              nPoints     20;
          }
      
      to the simpler
      
          // Seeding method.
          seedSampleSet
          {
              type        uniform;
              axis        x;  //distance;
      
              // Note: tracks slightly offset so as not to be on a face
              start       (-1.001 -0.05 0.0011);
              end         (-1.001 -0.05 1.0011);
              nPoints     20;
          }
      
      which also support the "<type>Coeffs" form
      
          // Seeding method.
          seedSampleSet
          {
              type        uniform;
      
              uniformCoeffs
              {
                  axis        x;  //distance;
      
                  // Note: tracks slightly offset so as not to be on a face
                  start       (-1.001 -0.05 0.0011);
                  end         (-1.001 -0.05 1.0011);
                  nPoints     20;
              }
          }
      5c518365
  20. 05 Apr, 2017 1 commit
    • Henry Weller's avatar
      surfaceTensionModels::liquidProperties: New temperature-dependent surface tension model · 97d12d8b
      Henry Weller authored
      Description
          Temperature-dependent surface tension model in which the surface tension
          function provided by the phase Foam::liquidProperties class is used.
      
      Usage
          \table
              Property     | Description               | Required    | Default value
              phase        | Phase name                | yes         |
          \endtable
      
          Example of the surface tension specification:
          \verbatim
              sigma
              {
                  type    liquidProperties;
                  phase   water;
              }
          \endverbatim
      
      for use with e.g. compressibleInterFoam, see
      tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D
      97d12d8b
  21. 20 Feb, 2017 2 commits
  22. 19 Feb, 2017 1 commit
    • Henry Weller's avatar
      liquidThermo: rhoThermo instantiated on liquidProperties · f6dacfb4
      Henry Weller authored
      This allows single, multi-phase and VoF compressible simulations to be performed
      with the accurate thermophysical property functions for liquids provided by the
      liquidProperty classes.  e.g. in the
      multiphase/compressibleInterFoam/laminar/depthCharge2D tutorial water can now be
      specified by
      
      thermoType
      {
          type            heRhoThermo;
          mixture         pureMixture;
          properties      liquid;
          energy          sensibleInternalEnergy;
      }
      
      mixture
      {
          H2O;
      }
      
      as an alternative to the previous less accurate representation defined by
      
      thermoType
      {
          type            heRhoThermo;
          mixture         pureMixture;
          transport       const;
          thermo          hConst;
          equationOfState perfectFluid;
          specie          specie;
          energy          sensibleInternalEnergy;
      }
      
      mixture
      {
          specie
          {
              molWeight   18.0;
          }
          equationOfState
          {
              R           3000;
              rho0        1027;
          }
          thermodynamics
          {
              Cp          4195;
              Hf          0;
          }
          transport
          {
              mu          3.645e-4;
              Pr          2.289;
          }
      }
      
      However the increase in accuracy of the new simpler and more convenient
      specification and representation comes at a cost: the NSRDS functions used by
      the liquidProperties classes are relatively expensive to evaluate and the
      depthCharge2D case takes ~14% longer to run.
      f6dacfb4
  23. 18 Feb, 2017 1 commit
    • Henry Weller's avatar
      thermophysicalProperties: New base-class for liquidProperties and in the future gasProperties · d2be6454
      Henry Weller authored
      Description
          Base-class for thermophysical properties of solids, liquids and gases
          providing an interface compatible with the templated thermodynamics
          packages.
      
      liquidProperties, solidProperties and thermophysicalFunction libraries have been
      combined with the new thermophysicalProperties class into a single
      thermophysicalProperties library to simplify compilation and linkage of models,
      libraries and applications dependent on these classes.
      d2be6454