Commit Graph

47 Commits

Author SHA1 Message Date
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
0857f479a8 PBiCGStab: New preconditioned bi-conjugate gradient stabilized solver for asymmetric lduMatrices
using a run-time selectable preconditioner

References:
    Van der Vorst, H. A. (1992).
    Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG
    for the solution of nonsymmetric linear systems.
    SIAM Journal on scientific and Statistical Computing, 13(2), 631-644.

    Barrett, R., Berry, M. W., Chan, T. F., Demmel, J., Donato, J.,
    Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. & Van der Vorst, H.
    (1994).
    Templates for the solution of linear systems:
    building blocks for iterative methods
    (Vol. 43). Siam.

See also: https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method

Tests have shown that PBiCGStab with the DILU preconditioner is more
robust, reliable and shows faster convergence (~2x) than PBiCG with
DILU, in particular in parallel where PBiCG occasionally diverges.

This remarkable improvement over PBiCG prompted the update of all
tutorial cases currently using PBiCG to use PBiCGStab instead.  If any
issues arise with this update please report on Mantis: http://bugs.openfoam.org
2016-09-05 11:46:42 +01:00
6d330d3d12 tutorials: Updated formatting of dictionaries and specification of 'plane' and 'samplePlane' 2016-06-29 18:02:57 +01:00
344f435f54 Tutorials fvSolution files: removed solver entries which use default
values; formatted Switch entries consistently across all cases
2016-06-15 07:39:12 +01:00
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
fc2ce73723 Solvers: Added support for extrapolated pressure boundary conditions
The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
function which applies the velocity boundary values for patches for which the
velocity cannot be modified by assignment and pressure extrapolation is
not specified via the new
"fixedFluxExtrapolatedPressureFvPatchScalarField".

The new function "constrainPressure" sets the pressure gradient
appropriately for "fixedFluxPressureFvPatchScalarField" and
"fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
ensure the evaluated flux corresponds to the known velocity values at
the boundary.

The "fixedFluxPressureFvPatchScalarField" boundary condition operates
exactly as before, ensuring the correct flux at fixed-flux boundaries by
compensating for the body forces (gravity in particular) with the
pressure gradient.

The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
condition may be used for cases with or without body-forces to set the
pressure gradient to compensate not only for the body-force but also the
extrapolated "HbyA" which provides a second-order boundary condition for
pressure.  This is useful for a range a problems including impinging
flow, extrapolated inlet conditions with body-forces or for highly
viscous flows, pressure-induced separation etc.  To test this boundary
condition at walls in the motorBike tutorial case set

    lowerWall
    {
        type            fixedFluxExtrapolatedPressure;
    }

    motorBikeGroup
    {
        type            fixedFluxExtrapolatedPressure;
    }

Currently the new extrapolated pressure boundary condition is supported
for all incompressible and sub-sonic compressible solvers except those
providing implicit and tensorial porosity support.  The approach will be
extended to cover these solvers and options in the future.

Note: the extrapolated pressure boundary condition is experimental and
requires further testing to assess the range of applicability,
stability, accuracy etc.

Henry G. Weller
CFD Direct Ltd.
2016-02-13 17:48:26 +00:00
f0c3e8d599 STYLE: Updated version to 'plus' 2015-12-22 23:14:17 +00:00
8837a89237 STYLE: Updated links from openfoam.org to openfoam.com 2015-12-09 15:03:05 +00: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
50ada7c994 blockMesh: Change default location of blockMeshDict from constant/polyMesh to system
For multi-region cases the default location of blockMeshDict is now system/<region name>

If the blockMeshDict is not found in system then the constant directory
is also checked providing backward-compatibility
2015-04-24 22:29:57 +01: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
9fb26d59d3 GIT: Repo update 2014-12-11 08:35:10 +00:00
fbb3ddf2c4 Updated for release 2.3.0 2014-02-17 10:21:46 +00:00
a2d6fe298d ENH: Updating combustion and heat transfer tutorials 2014-01-08 10:15:01 +00:00
6f46553895 ENH: createPatchDict: renamed dictionary entry 2013-12-11 17:16:40 +00:00
c56d376bae ENH: Adding 'baseGroup' option to createBaffle.C to add a pair patches but in
different groups. This is used in 3D baffle where the generated patches are not
coupled.
     The tutorial circuitBoardCooling has been updated.
2013-12-04 15:30:35 +00:00
d64871cc82 ENH: mapped: use coupleGroup specification 2013-11-12 15:15:02 +00:00
084194c7bd ENH: 1) Adding self extrusion and defaulting some inputs in 3D thermal baffles
2) Changing 1D steady baffle to mixture BC and simplifying inputs
     3) Reorganizing circuitBoardCooling tutorial
2013-11-05 11:20:38 +00:00
72c89b43b1 ENH: circuitBoardCooling: clean up 2013-10-25 09:22:06 +01:00
51f085faa5 Rewrite of ddtPhiCorr - ddtCorr and density-weight HbyA on compressible solvers.
For DyM solvers phiAbs is replaced by Uf but this conversion is currently not complete
2013-09-09 12:41:20 +01:00
673860a09d ENH: Deriving thermalBaffle BC for thermal regions from mixedCoupleRad BC. This
incorporates Qr into the balance at the boundary. Qr and QrNrb entries are
    necessary now.
    The coolingCircuit tutorial case was modified accordingly.
2013-08-07 16:10:55 +01:00
48272dc5ab alphatWallFunctions: add "compressible::" qualifier to compressible alphat wall-functions 2013-04-10 17:04:49 +01:00
91a54847c2 Rename thermoBaffle -> thermalBaffle 2013-02-05 14:49:58 +00:00
01c4970dd6 BUG: Correcting createBafflesDict 2013-01-21 12:59:51 +00:00
e75dc1f757 ENH: createPatchDict: create with correct type 2013-01-07 12:22:46 +00:00
90ccf72b5e BUG: createPatch: missing dictionary 2013-01-07 11:36:37 +00:00
e9a26d79f9 ENH: Renaming temperatureThermoBaffle to thermoBaffle
thermoBaffle2D to thermoBaffle
     temperatureThermoBaffle1D to thermoBaffle1D
2013-01-03 16:50:58 +00:00
4f362ec8e6 ENH: circuitBoardCooling: update to createBafflesDict 2012-12-04 11:59:44 +00:00
ee01df6fb6 ENH: Editing baffle dictionary 2012-11-02 08:39:14 +00:00
708743752a Solving problem with sampledSurfaces
Removing specieSolid specialization
Updating tutorials using solidThermo and solid reactions
2012-11-01 17:46:37 +00:00
441d1d0dee ENH: Tutorial update 2012-10-16 10:58:00 +01:00
f9907cfd76 ENH: Updated circuitBoardCooling tutorial 2012-10-15 11:15:39 +01:00
54432bb18a ENH: Adding greyMeanSolidAbsorptionEmission, updating tutorial.
The radiative properties are now held in the radiationModel in the solid
region instead than in the solidThermo
2012-10-05 11:48:48 +01:00
ca2ad8032e Thermodynamics: Completed dictionary based selection mechanisms for all thermodynamic packages
Rationalised "make" macros to reduce code duplication
Removed solid phase radiation properties
Updated tutorials appropriately
2012-10-03 22:43:50 +01:00
9bf80af379 Thermodynamics: Update selection mechanism for reaction and chemistry thermodynamics 2012-09-30 21:27:18 +01:00
ef8b6810f2 Thermodynamics: add specie type as argument to the "makeThermo" macros
Added "8" as the default Order of polynomial thermodynamic functions
2012-09-25 18:09:05 +01:00
f1bfeba127 Thermodynamics: rename specieThermo -> species::thermo and create the species namespace
Also remove the "<thermo" part of the names of thermodynamics packages
2012-09-24 15:37:36 +01:00
afcd78e005 Tutorials: Updated for thermo changes 2012-09-19 15:55:41 +01:00
dd3ab88f47 Thermodynamics: renamed isobaricPerfectGas -> incompressiblePerfectGas and incompressible -> rhoConst
Added isochoric and incompressible identifiers to equations of state to indicate the supported processes
2012-09-11 14:07:22 +01:00
830c0ef382 Thermodynamyics: rename basicThermo -> fluidThermo and veryBasicThermo -> basicThermo 2012-08-23 14:13:13 +01:00
8f4b56b3c3 Thermodynamics: Rationalised the base classes for fluid and solid thermo.
New base class for fluid and solid thermo: veryBasicThermo
Base class for fluid thermo: basicThermo (derived from veryBasicThermo)
Base class for solid thermo: solidThermo (derived from veryBasicThermo)

Note in next commit basicThermo -> fluidThermo, veryBasicThermo -> basicThermo
2012-08-23 11:39:02 +01:00
dccad82084 ENH: Modification of solid thermo, thermo baffles, pyrolysis and
tutorial, solvers solve for h in the solid
2012-07-03 10:54:27 +01:00
a3a567ea1c ENh: Further changes to tutorials and source regarding
changes from K to kappa
2012-05-08 13:32:56 +01:00
fa4fd968a8 ENH: Renaming K to kappa and kappa to kappaRad in solid thermo and
updating tutorials
2012-05-08 11:02:39 +01:00
28762dc468 Removed trailing whitespace 2012-04-19 14:17:30 +01:00
96068a670d Thermodynamics: Changed h-eqn to conserve total energy 2011-11-22 17:54:13 +00:00
8968d1d0ae ENH: Moving circuitBoardCooling tutorial to buoyantSimpleFoam folder
and deleting old buoyantBaffleSimpleFoam
2011-11-08 16:39:36 +00:00