Commit Graph

153 Commits

Author SHA1 Message Date
8f1d043364 GIT: Resolved conflict 2015-12-09 09:32:38 +00:00
b594d73c65 ENH: Solvers - updated group documentation 2015-12-03 22:05:55 +00:00
736621b945 fvOptions: Reorganized and updated to simplify use in sub-models and maintenance
fvOptions are transferred to the database on construction using
fv::options::New which returns a reference.  The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.

The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage.  The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
2015-12-02 11:49:52 +00:00
3dfe844d9a applications/solvers: Added call to validate the turbulence model after construction
See also commit 52d83407f3
2015-12-01 10:25:38 +00:00
e2ef006b91 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
8d21b380ef Renamed phiAlpha -P alphaPhi for consistency with Euler-Euler solvers 2015-09-11 17:52:43 +01:00
365f9b0006 dimensioned<Type>: Added constructor from name, dimensions and dictionary
to simplify construction of dimensionedScalar properties and avoid the
duplication of the name string in the constructor call.
2015-07-21 12:57:07 +01:00
4c21f24a8c Input of dimensionedScalars: update read-construction of dimensionedScalar in applications
so that the specification of the name and dimensions are optional in property dictionaries.

Update tutorials so that the name of the dimensionedScalar property is
no longer duplicated but optional dimensions are still provided and are
checked on read.
2015-07-20 22:52:53 +01:00
91e04d69c1 Resolve various unimportant warning messages from Gcc, Clang and Icpc 2015-07-19 11:31:49 +01:00
0fb6a01280 fluxRequired: Added setFluxRequired function to fvSchemes class
Added calls to setFluxRequired for p, p_rgh etc. in all solvers which
avoids the need to add fluxRequired entries in fvSchemes dictionaries.
2015-07-15 21:57:16 +01:00
f92d657ab7 LTS: Formalize the naming of the rDeltaT and rSubDeltaT fields
Now the specification of the LTS time scheme is simply:

ddtSchemes
{
    default         localEuler;
}
2015-06-28 21:41:40 +01:00
587c93574a LTS, MULES and sub-cycling: Improved the handling of the rSubDeltaT field 2015-06-26 21:58:27 +01:00
d14e8ed169 interFoam: Change construction order 2015-06-26 18:54:37 +01:00
e00ae44ad0 interFoam family: Added run-time selectable LTS support
LTS is selected by the ddt scheme e.g. in the
tutorials/multiphase/interFoam/ras/DTCHull case:

ddtSchemes
{
    default         localEuler rDeltaT;
}

LTSInterFoam is no longer needed now that interFoam includes LTS
support.
2015-06-26 18:32:20 +01:00
8293227964 Rationalized the LTS solvers 2015-06-16 12:42:37 +01:00
c3ee2348a6 MRF: Separate MRF from fvOptions
fvOptions does not have the appropriate structure to support MRF as it
is based on option selection by user-specified fields whereas MRF MUST
be applied to all velocity fields in the particular solver.  A
consequence of the particular design choices in fvOptions made it
difficult to support MRF for multiphase and it is easier to support
frame-related and field related options separately.

Currently the MRF functionality provided supports only rotations but
the structure will be generalized to support other frame motions
including linear acceleration, SRF rotation and 6DoF which will be
run-time selectable.
2015-05-29 23:35:43 +01:00
f7e4d0a110 MULES: nLimiterIter and smoothLimiter are now user-input via the corresponding fvSolution sub-dict
nLimiterIter: Number of iterations during limiter construction
    3 (default) is sufficient for 3D simulations with a Courant number 0.5 or so
    For larger Courant numbers larger values may be needed but this is
    only relevant for IMULES and CMULES

smoothLimiter: Coefficient to smooth the limiter to avoid "diamond"
    staggering patters seen in regions of low particle phase-fraction in
    fluidised-bed simulations.

    The default is 0 as it is not needed for all simulations.
    A value of 0.1 is appropriate for fluidised-bed simulations.
    The useful range is 0 -> 0.5.
    Values larger than 0.5 may cause excessive smearing of the solution.
2015-04-29 14:37:41 +01:00
24a340ef75 applications/solvers/multiphase: for MRF make phiHbyA relative BEFORE adjustPhi
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1665
2015-04-20 16:50:02 +01:00
28abb8cda5 Buoyant solvers: Add special handling for ghRef in the case g = (0 0 0) 2015-03-19 15:26:06 +00:00
e588d61879 Solvers based on p_rgh: Added support for optional hRef
Allows the specification of a reference height, for example the height
of the free-surface in a VoF simulation, which reduces the range of p_rgh.

hRef is a uniformDimensionedScalarField specified via the constant/hRef
file, equivalent to the way in which g is specified, so that it can be
looked-up from the database.  For example see the constant/hRef file in
the DTCHull LTSInterFoam and interDyMFoam cases.
2015-03-17 17:15:11 +00:00
44ad48906b interFoam/alphaEqn: Corrected handling of the off-centreing coefficient for Crank-Nicolson 2015-02-22 12:13:19 +00:00
87cfd5788b interFoam/alphaEqn: Updated phiCN 2015-02-22 10:25:30 +00:00
fef8853027 interFoam/alphaEqn: Update explicit corrector to use the Crank-Nicolson flux 2015-02-21 21:39:59 +00:00
bd3cbd4c37 LTSinterFoam: test for localEuler as a valid scheme in the new alphaEqn 2015-02-20 22:47:51 +00:00
1ace10b372 interFoam family: Add support for MULES-bounded Crank-Nicolson 2nd-order ddt(alpha)
This is an experimental feature demonstrating the potential of MULES to
create bounded solution which are 2nd-order in time AND space.

Crank-Nicolson may be selected on U and/or alpha but will only be fully
2nd-order if used on both within the PIMPLE-loop to converge the
interaction between the flux and phase-fraction.  Note also that
Crank-Nicolson may not be used with sub-cycling but all the features of
semi-implicit MULES are available in particular MULESCorr and
alphaApplyPrevCorr.

Examples of ddt specification:

ddtSchemes
{
    default         Euler;
}

ddtSchemes
{
    default         CrankNicolson 0.9;
}

ddtSchemes
{
    default         none;
    ddt(alpha)      CrankNicolson 0.9;
    ddt(rho,U)      CrankNicolson 0.9;
}

ddtSchemes
{
    default         none;
    ddt(alpha)      Euler;
    ddt(rho,U)      CrankNicolson 0.9;
}

ddtSchemes
{
    default         none;
    ddt(alpha)      CrankNicolson 0.9;
    ddt(rho,U)      Euler;
}

In these examples a small amount of off-centering in used to stabilize
the Crank-Nicolson scheme.  Also the specification for alpha1 is via the
generic phase-fraction name to ensure in multiphase solvers (when
Crank-Nicolson support is added) the scheme is identical for all phase
fractions.
2015-02-20 15:59:43 +00:00
ef95c576ff porousInterFoam is no longer needed
Use interFoam with fvOptions
2015-02-13 21:39:48 +00:00
5a2c5c8fdc Explicitly name derived fields to improve readability of diagnostic messages and avoid duplicate registration 2015-02-12 09:59:52 +00:00
91ffedbeb2 Solvers: Rationalized correctPhi 2015-02-11 13:22:24 +00:00
c778346c96 Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
45461bfcfe solvers: rationalize the construction of the fvOptions 2015-02-10 18:33:45 +00:00
633ae4ede0 solvers: rationalize the return statement 2015-02-10 18:20:42 +00:00
7c4e3a0761 threePhaseInterfaceProperties: Update constructor to be consistent with the two-phase interfaceProperties
Avoids problem of duplicate registration of K
2015-02-10 17:44:18 +00:00
fe8c5ff636 Applications: use pimpleControl.dict() and simpleControl.dict() instead of looking-up the sub-dict 2015-02-09 22:15:26 +00:00
66cb99e696 Updated headers to ensure the class name declared to Doxygen is in the appropriate namespace
Also moved global classes which should be in the Foam namespace into it.
2015-02-09 14:43:11 +00:00
9a40fb787e multiphase solvers: print phase-name rather than alpha1/2 when printing max and min phase-fraction 2015-01-21 20:07:15 +00:00
2aec249647 Updated the whole of OpenFOAM to use the new templated TurbulenceModels library
The old separate incompressible and compressible libraries have been removed.

Most of the commonly used RANS and LES models have been upgraded to the
new framework but there are a few missing which will be added over the
next few days, in particular the realizable k-epsilon model.  Some of
the less common incompressible RANS models have been introduced into the
new library instantiated for incompressible flow only.  If they prove to
be generally useful they can be templated for compressible and
multiphase application.

The Spalart-Allmaras DDES and IDDES models have been thoroughly
debugged, removing serious errors concerning the use of S rather than
Omega.

The compressible instances of the models have been augmented by a simple
backward-compatible eddyDiffusivity model for thermal transport based on
alphat and alphaEff.  This will be replaced with a separate run-time
selectable thermal transport model framework in a few weeks.

For simplicity and ease of maintenance and further development the
turbulent transport and wall modeling is based on nut/nuEff rather than
mut/muEff for compressible models so that all forms of turbulence models
can use the same wall-functions and other BCs.

All turbulence model selection made in the constant/turbulenceProperties
dictionary with RAS and LES as sub-dictionaries rather than in separate
files which added huge complexity for multiphase.

All tutorials have been updated so study the changes and update your own
cases by comparison with similar cases provided.

Sorry for the inconvenience in the break in backward-compatibility but
this update to the turbulence modeling is an essential step in the
future of OpenFOAM to allow more models to be added and maintained for a
wider range of cases and physics.  Over the next weeks and months more
turbulence models will be added of single and multiphase flow, more
additional sub-models and further development and testing of existing
models.  I hope this brings benefits to all OpenFOAM users.

Henry G. Weller
2015-01-21 19:21:39 +00:00
844b283030 New version of wmake supporting out-of-tree object and dependency files 2014-12-14 21:42:18 +00:00
9873774ee9 VoF solvers: rationalize the relationship between VoF solvers
Improve code reuse
Add multiphaseInterDyMFoam
Retire MRFinterFoam -> now handled by interFoam with fvOptions
Update tutorials
2014-04-29 14:16:41 +01:00
e6236340b5 Removed alphaOuterCorrectors option because the mass-flux should be updated for all PIMPLE iterations
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1225
2014-03-17 21:31:09 +00:00
2c5a28e005 LTSInterFoam: revert the time-scale calculation to be based on the mass-flux
Which is more stable for the DTCHull case
2014-02-04 16:25:34 +00:00
d00b39aacb LTSInterFoam/setrDeltaT.H: use phi rather than rhoPhi to calculate the time-scale 2014-02-03 17:26:59 +00:00
70f27712ae interPhaseChangeDyMFoam: Corrected correctPhi to include the phase-change dilatation effect 2014-01-28 13:07:35 +00:00
a3e1fd8006 Removed optional library which should be selected at run-time 2014-01-21 12:25:18 +00:00
3c0058f4e9 ENH: interDyMFoam - added linkage agains sixDoFRigidBodyMotion library 2014-01-20 14:10:45 +00:00
608fe67047 Improved comment 2014-01-20 12:50:15 +00:00
4d12989c43 VoF alphaEqn: Under-relax the correction for all but the 1st corrector 2014-01-20 12:48:21 +00:00
267f5cf0f5 interDyMFoam, interPhaseChangeDyMFoam : Use 1/A from the previous time-step rather than 1 in the pcorr equation
This provides better convergence and consistency between p_rgh and pcorr
2013-12-17 14:59:13 +00:00
a8c917fd4b DyM solvers: correct Uf using phi after construction 2013-12-11 17:26:34 +00:00
63da8af946 interFoam: Added isotropic compression option 2013-11-29 16:55:18 +00:00
7429f59358 VoF solvers: Updated PC-MULES 2013-11-26 21:16:51 +00:00