- Feb 17, 2017
-
-
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.
-
- Feb 13, 2017
-
-
Henry Weller authored
-
- Feb 12, 2017
-
-
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
-
- Feb 09, 2017
-
-
Henry Weller authored
Resolves bug-report https://bugs.openfoam.org/view.php?id=2455
-
Henry Weller authored
Now the interFoam and compressibleInterFoam families of solvers use the same alphaEqn formulation and supporting all of the MULES options without code-duplication. The semi-implicit MULES support allows running with significantly larger time-steps but this does reduce the interface sharpness.
-
- Feb 08, 2017
-
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
Description Simple solidification porosity model This is a simple approximation to solidification where the solid phase is represented as a porous blockage with the drag-coefficient evaluated from \f[ S = - \alpha \rho D(T) U \f] where \vartable \alpha | Optional phase-fraction of solidifying phase D(T) | User-defined drag-coefficient as function of temperature \endvartable Note that the latent heat of solidification is not included and the temperature is unchanged by the modelled change of phase. Example of the solidification model specification: \verbatim type solidification; solidificationCoeffs { // Solidify between 330K and 330.5K D table ( (330.0 10000) // Solid below 330K (330.5 0) // Liquid above 330.5K ); // Optional phase-fraction of solidifying phase alpha alpha.liquid; // Solidification porosity is isotropic // use the global coordinate system coordinateSystem { type cartesian; origin (0 0 0); coordinateRotation { type axesRotation; e1 (1 0 0); e2 (0 1 0); } } } \endverbatim
-
- Feb 07, 2017
-
-
Henry Weller authored
Description Simple solidification porosity model This is a simple approximation to solidification where the solid phase is represented as a porous blockage with the drag-coefficient evaluated from \f[ S = - \rho D(T) U \f] where \vartable D(T) | User-defined drag-coefficient as function of temperature \endvartable Note that the latent heat of solidification is not included and the temperature is unchanged by the modelled change of phase. Example of the solidification model specification: \verbatim type solidification; solidificationCoeffs { // Solidify between 330K and 330.5K D table ( (330.0 10000) // Solid below 330K (330.5 0) // Liquid above 330.5K ); // Solidification porosity is isotropic // use the global coordinate system coordinateSystem { type cartesian; origin (0 0 0); coordinateRotation { type axesRotation; e1 (1 0 0); e2 (0 1 0); } } } \endverbatim
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
- Feb 06, 2017
-
-
Henry Weller authored
Patch contributed by Timo Niemi, VTT. Resolves patch request https://bugs.openfoam.org/view.php?id=2452
-
- Feb 03, 2017
-
-
Henry Weller authored
if convergence is not achieved within the maximum number of iterations. Sometimes, particularly running in parallel, PBiCG fails to converge or diverges without warning or obvious cause leaving a solution field containing significant errors which can cause divergence of the application. PBiCGStab is more robust and does not suffer from the problems encountered with PBiCG.
-
Henry Weller authored
Compressing and decompressing binary files introduces a significant IO overhead without a providing significant reduction in file-size.
-
Henry Weller authored
Patch contributed by Mattijs Janssens
-
Henry Weller authored
Patch contributed by Mattijs Janssens
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
kOmegaSSTSato: Change correctNut() to correctNut(S2, F2) Resolves bug-report https://bugs.openfoam.org/view.php?id=2450
-
- Feb 02, 2017
-
-
Henry Weller authored
-
- Jan 30, 2017
-
-
Henry Weller authored
Patch contributed by Juho Peltola, VTT Resolves patch request https://bugs.openfoam.org/view.php?id=2446
-
Henry Weller authored
-
Henry Weller authored
Patch contributed by Juho Peltola, VTT. Resolves patch request https://bugs.openfoam.org/view.php?id=2443
-
- Jan 28, 2017
-
-
Henry Weller authored
Patch contributed by Bruno Santos Resolves bug-report https://bugs.openfoam.org/view.php?id=2441
-
Henry Weller authored
Patch contributed by Bruno Santos Resolves patch request https://bugs.openfoam.org/view.php?id=2444
-
Henry Weller authored
Patch contributed by Bruno Santos Resolves patch request https://bugs.openfoam.org/view.php?id=2424
-
- Jan 26, 2017
-
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
-
Henry Weller authored
Patch contributed by Timo Niemi, VTT. Resolves bug-report https://bugs.openfoam.org/view.php?id=2442
-
- Jan 25, 2017
-
-
Henry Weller authored
The previous time-step compression flux is not valid/accurate on the new mesh and it is better to re-calculate it rather than map it from the previous mesh to the new mesh.
-
- Jan 24, 2017
-
-
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.
-
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.
-
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.
-
- Jan 20, 2017
-
-
Henry Weller authored
-
Henry Weller authored
To run with laminar reaction rates choose the "laminar" combustion model rather than setting "turbulentReaction no;" in the "PaSR" model.
-