Commit Graph

517 Commits

Author SHA1 Message Date
Mark Olesen
73fbed1c2c TUT: consistent use of scale and headers for blockMeshDict 2018-06-21 15:28:25 +02:00
Mark Olesen
8717f9936e TUT: consistency in Allclean Allrun scripts 2018-06-21 15:19:09 +02:00
Mark Olesen
1f953b807c ENH: use double for VTK legacy output (issue #891)
- some paraview versions (eg, on windows) don't support float, only double.

  This mostly affected the vtkSurfaceWriter.

  The foamToVTK is also affected, but since it also supports the XML
  output formats (vtp, vtu) these can be used instead.
2018-06-21 10:24:04 +02:00
Andrew Heather
f9dc9dbf5f TUT: updates 2018-06-21 08:31:22 +01:00
Mark Olesen
b2b77c9c13 ENH: add 'cellCentre' sampledSet (issue #869)
- samples on cell centres, can optionally limit based on a bounding box.
  Can be used, for example, to extract volume fields into CSV format.
2018-06-12 23:22:23 +02:00
Andrew Heather
cf9209e42c GIT: Removed unused files 2018-06-01 15:39:41 +01:00
Chris Greenshields
1fc177152a TUT: aerofoilNACA0012 tutorial for rhoSimpleFoam and rhoPimpleFoam
The tutorial demonstrates generation of a C-grid mesh using blockMesh
The geometry is provided by a surface mesh (OBJ file) of the NACA0012 aerofoil
The case is setup with a freestream flow speed of Ma=0.72

Thanks to Kai Bastos at Duke University for the geometry and helpful input.
2018-02-23 17:05:30 +00:00
Henry Weller
2f888d1684 ENH: rhePimpleFoam: Merged dynamic mesh functionality of rhoPimpleDyMFoam into rhoPimpleFoam
and replaced rhoPimpleDyMFoam with a script which reports this change.

The rhoPimpleDyMFoam tutorials have been moved into the rhoPimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

rhoReactingFoam: Updated for changes to rhoPimpleFoam files
2017-11-23 12:13:37 +00:00
Henry Weller
81cea09983 ENH: pimpleDyMFoam: Improved efficiency and consistency when running on a static mesh
Now pimpleDyMFoam is exactly equivalent to pimpleFoam when running on a
staticFvMesh.  Also when the constant/dynamicMeshDict is not present a
staticFvMesh is automatically constructed so that the pimpleDyMFoam solver can
run any pimpleFoam case without change.

pimpleDyMFoam: Store Uf as an autoPtr for better error handling

pimpleFoam: Set initial deltaT from the Courant number

for improved stability on start-up and compatibility with pimpleDyMFoam

ENH: pimpleFoam: Merged dynamic mesh functionality of pimpleDyMFoam into pimpleFoam

and replaced pimpleDyMFoam with a script which reports this change.

The pimpleDyMFoam tutorials have been moved into the pimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

tutorials/incompressible/pimpleFoam: Updated pimpleDyMFoam tutorials to run pimpleFoam

Renamed tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleDyMFoam

-> tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam
2017-11-18 01:13:48 +00:00
Mark Olesen
01a313d889 BUG: collated ensight not working with isosurfaces (closes #318)
- the problem arises since the various surface writers are stateless.
  The collated output format hacks around this limitation by adding in
  its own fieldDict caching (to disk).

  Now include an updateMesh() method to hook into geometry changes.
  This is considered a stop-gap measure until the surface output
  handling is improved.
2018-05-07 16:59:15 +02:00
Mark Olesen
b0648f2ba0 ENH: improvements in the surface sampling infrastructure
- improvement documentation for surface sampling.

- can now specify alternative sampling scheme for obtaining the
  face values instead of just using the "cell" value. For example,

      sampleScheme    cellPoint;

  This can be useful for cases when the surface is close to a boundary
  cell and there are large gradients in the sampled field.

- distanceSurface now handles non-closed surfaces more robustly.
  Unknown regions (not inside or outside) are marked internally and
  excluded from consideration. This allows use of 'signed' surfaces
  where not previously possible.
2018-05-07 11:29:00 +02:00
mattijs
a645b2b5c8 BUG: annularThermalMixer: incorrect shm setup. Fixes #811. 2018-04-25 11:43:52 +01:00
Mark Olesen
a9741cea79 ENH: additional text expansion shortcuts (issue #792)
Support the following expansions when they occur at the start of a
string:

    Short-form       Equivalent
    =========       ===========
      <etc>/          ~OpenFOAM/   (as per foamEtcFile)
      <case>/         $FOAM_CASE/
      <constant>/     $FOAM_CASE/constant/
      <system>/       $FOAM_CASE/system/

These can be used in fileName expansions to improve clarity and reduce
some typing

     "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
2018-04-10 13:41:41 +02:00
Mark Olesen
e53384362c ENH: added surfaceFieldValue uniformity operation 2018-03-22 22:38:34 +01:00
Mark Olesen
fe140cd6c5 TUT: test mode not respected (closes #710)
- now replaced 'if ! isTest' with 'if notTest' for most cases.
2018-02-20 12:54:44 +01:00
Andrew Heather
e3c4696a6e TUT: Updated Allrun scripts for tests. Fixes #710 2018-01-17 15:30:49 +00:00
sergio
1d77b78418 ENH: changing endTime for sonicFoam/RAS/nacaAirfoil
Fixing fvOption in multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection
2017-12-21 12:53:10 -08:00
Andrew Heather
351fa4f979 TUT: updated sonicFoam case (see #677) 2017-12-21 11:16:28 +00:00
sergio
e7d9a1accf ENH: Changing BC for U to slip 2017-12-20 08:32:53 -08:00
sergio
ef08bc56ba BUG: Removing finiteArea lib from option file for reconstructPar.
Modifying relaxation factors for the angledDuct for rhoPimpleFoam
2017-12-19 14:51:42 -08:00
sergio
985a18df75 Adding overPotentialFoam and overRhoSimpleFoam and tutorials 2017-12-19 11:33:43 -08:00
sergio
a6d88f2fe7 Adding turbulence to RAS-Tjunction and reducing MRF in mixerVessel2D to make it laminar 2017-12-19 11:02:31 -08:00
Mark Olesen
a9ffcab5af ENH: region-wise decomposition specification for decomposeParDict
Within decomposeParDict, it is now possible to specify a different
  decomposition method, methods coefficients or number of subdomains
  for each region individually.

  The top-level numberOfSubdomains remains mandatory, since this
  specifies the number of domains for the entire simulation.
  The individual regions may use the same number or fewer domains.

  Any optional method coefficients can be specified in a general
  "coeffs" entry or a method-specific one, eg "metisCoeffs".

  For multiLevel, only the method-specific "multiLevelCoeffs" dictionary
  is used, and is also mandatory.

----

ENH: shortcut specification for multiLevel.

  In addition to the longer dictionary form, it is also possible to
  use a shorter notation for multiLevel decomposition when the same
  decomposition method applies to each level.
2017-11-09 12:30:24 +01:00
sergio
ffabc42dbf ENH: Arrhenius viscocity model and energyTransport function-object
- Arrhenius viscocity model for incompressible viscocity.

- energyTransport FO for incompressible single and multiple phase
  flows and viscousDissipation fvOption source.

- Tutorial to show the use of energyTransport:
     multiphase/multiphaseInterFoam/laminar/mixerVessel2D

- Tutorial to show viscousDissipation:
     compressible/rhoPimpleFoam/RAS/TJunction
2017-10-25 10:17:55 -07:00
Mark Olesen
c792a9d7df TUT: script cleanup, provide cleanCase0 for commonly used operation 2017-10-12 19:20:56 +02:00
Mark Olesen
c2a0663cc7 TUT: use general 'scale' instead of 'convertToMeters' in blockMeshDict
- although this has been supported for many years, the tutorials
  continued to use "convertToMeters" entry, which is specific to blockMesh.
  The "scale" is more consistent with other dictionaries.

ENH:
- ignore "scale 0;" (treat as no scaling) for blockMeshDict,
  consistent with use elsewhere.
2017-08-03 06:38:30 +02:00
Mark Olesen
e045d6c03b ENH: limit file checks in the abort function object to the master process
- do not recheck the abort after it has been triggered once.
  This reduces the output clutter and file checks.
2017-07-17 10:47:10 +02:00
Mark Olesen
e7da4f0d07 TUT: adjust surfaceFeatureExtractDict to remove optional sub-dictionary
- as of v1706
  extractFromSurfaceCoeffs { ... } is an optional subdictionary
2017-07-07 15:41:18 +02:00
Mark Olesen
aefb739584 STYLE: fix permissions on files, remove unused files 2017-07-03 12:15:41 +02:00
Andrew Heather
4518004df4 TUT: Updated RutlandVortex case - Thanks to Thilo Knacke 2017-06-29 19:49:32 +01:00
Andrew Heather
ead256f506 INT: Integration of rhoPimpleAdiabaticFoam
Solver for low Mach no. flows with adiabatic thermodynamics and updated
pressure-velocity coupling given by the RCM interpolation procedure
described in

    \verbatim
        Knacke, T. (2013).
        Potential effects of Rhie & Chow type interpolations in airframe
        noise simulations. In: Schram, C., Dénos, R., Lecomte E. (ed):
        Accurate and efficient aeroacoustic prediction approaches for
        airframe noise, VKI LS 2013-03.
    \endverbatim

Original code supplied by Thilo Knacke, CFD E+F GmbH
contact: info@cfd-berlin.com

Integrated into OpenFOAM by OpenCFD Ltd.
2017-06-09 10:23:47 +01:00
Andrew Heather
bd803d80c6 TUT: Removed unused nMoles entries 2017-06-27 15:51:34 +01:00
mattijs
e17e8e4e96 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/T
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/zoneID
2017-06-22 09:48:31 +01:00
Mark Olesen
6ecddbe4a5 STYLE: use #includeEtc in tutorial cases
#includeEtc "caseDicts/setConstraintTypes"
 vs.
    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
2017-06-21 16:42:57 +01:00
mattijs
cbbf08dc0d STYLE: tutorials: fix headers 2017-06-21 12:49:28 +01:00
Mark Olesen
0ea219adf5 TUT: consistent writeCompression option
- Use on/off vs longer compressed/uncompressed.
  For consistency, replaced yes/no with on/off.

- Avoid the combination of binary/compressed,
  which is disallowed and provokes a warning anyhow
2017-06-13 06:50:16 +02:00
Henry Weller
39476bde1c GIT: Resolve conflict associated with cherry-pick of Foundation commit 79ff91350
79ff91350 - rhoPimpleFoam: Improved support for compressible liquids
(2017-05-17 17:05:43 +0100) <Henry Weller>
2017-05-17 17:05:43 +01:00
Andrew Heather
0a4733acab ENH: Tutorial updates 2017-05-18 14:47:00 +01:00
Andrew Heather
2e9bead519 MRG: merged develop line back into integration branch 2017-05-18 11:11:12 +01:00
Andrew Heather
91b90da4f3 Integrated Foundation code to commit 104aac5 2017-05-17 16:35:18 +01:00
Henry Weller
5c51836501 The "<type>Coeffs" sub-dictionary is now optional for most model parameters
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;
        }
    }
2017-04-20 09:14:48 +01:00
Henry Weller
af2810149e porosityModel: The "<porosityModel>Coeffs" sub-dictionary is now optional
For example the porosity coefficients may now be specified thus:

porosity1
{
    type            DarcyForchheimer;

    cellZone        porosity;

    d   (5e7 -1000 -1000);
    f   (0 0 0);

    coordinateSystem
    {
        type    cartesian;
        origin  (0 0 0);
        coordinateRotation
        {
            type    axesRotation;
            e1      (0.70710678 0.70710678 0);
            e2      (0 0 1);
        }
    }
}

rather than

porosity1
{
    type            DarcyForchheimer;
    active          yes;
    cellZone        porosity;

    DarcyForchheimerCoeffs
    {
        d   (5e7 -1000 -1000);
        f   (0 0 0);

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);
            coordinateRotation
            {
                type    axesRotation;
                e1      (0.70710678 0.70710678 0);
                e2      (0 0 1);
            }
        }
    }
}

support for which is maintained for backward compatibility.
2017-04-13 14:00:00 +01:00
Henry Weller
8b55ea4fb1 fvOptions: The "<type>Coeffs" sub-dictionary is now optional
For example the actuationDiskSource fvOption may now be specified

disk1
{
    type            actuationDiskSource;

    fields      (U);

    selectionMode   cellSet;
    cellSet         actuationDisk1;
    diskDir         (1 0 0);    // Orientation of the disk
    Cp              0.386;
    Ct              0.58;
    diskArea        40;
    upstreamPoint   (581849 4785810 1065);
}

rather than

disk1
{
    type            actuationDiskSource;
    active          on;

    actuationDiskSourceCoeffs
    {
        fields      (U);

        selectionMode   cellSet;
        cellSet         actuationDisk1;
        diskDir         (1 0 0);    // Orientation of the disk
        Cp              0.386;
        Ct              0.58;
        diskArea        40;
        upstreamPoint   (581849 4785810 1065);
    }
}

but this form is supported for backward compatibility.
2017-04-13 13:30:17 +01:00
Andrew Heather
4ce77f6843 Merge branch 'master' into develop 2017-04-25 12:31:22 +01:00
Andrew Heather
5f17b01998 TUT: Updated gamma value in sonicFoam tutorial - see #455 2017-04-18 11:37:34 +01:00
Mark Olesen
91b0a9379b STYLE: mention clang-4.0 in the bashrc, cshrc files 2017-04-03 08:31:04 +02:00
Andrew Heather
332c8acdcd ENH: Clean-up after latest Foundation integrations 2017-03-31 15:36:28 +01:00
Andrew Heather
fb724ce113 MRG: Integrated Foundation code to commit 9f37c3c 2017-03-31 15:34:28 +01:00
Andrew Heather
45381b1085 MRG: Integrated Foundation code to commit 19e602b 2017-03-28 11:30:10 +01:00
Andrew Heather
dcb1a95e35 MRG: Integrated Foundation code to commit 7d6845d 2017-03-23 14:33:33 +00:00
Andrew Heather
e6d9402e5a BUG: nacaAirfoil tutorial - updated patches used by forceCoeffs function object. Fixes #438 2017-03-21 13:34:57 +00:00
Chris Greenshields
6f5caf28d5 pitzDaily tutorials: updated blockMeshDict files to use multi-grading
The pitzDaily case uses a lot of mesh grading close to walls and the shear layer.
Prior to v2.4, blockMesh only permitted grading in one direction within a single block,
so the pitzDaily mesh comprised of 13 blocks to accommodate the complex grading pattern.

blockMesh has multi-grading that allows users to divide a block in a given direction and
apply different grading within each division.  The mesh generated with blockMesh using
13 blocks has been replaced with a mesh of 5 blocks that use multi-grading.  The new
blockMeshDict configuration produces a mesh very similar to the original 13-block mesh.
2017-03-17 12:42:13 +00:00
Henry Weller
7aed8c2904 tutorials: Updated pcorr settings in fvSolution to provide pcorrFinal if required 2017-03-07 11:48:20 +00:00
Mark Olesen
2853678a60 ENH: support operations on surfFields in surfaceFieldValue
- this makes it possible to perform additional operations
  on surface values that have been previously sampled.

- support vectorField for weighting operations.

- reduce overhead by avoiding creation of weight fields, Sf fields
  and combined surface geometries unless they are actually required.

- extend some similar concepts and operations to volFieldValue
2017-03-02 14:50:36 +01:00
Henry Weller
50516486a4 rhoPimpleFoam: Added support for transonic flow of liquids and real gases
Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.

rhoPimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, see also commit a1c8cde310
2017-02-28 11:14:59 +00:00
Henry Weller
7d6845defa rhoSimpleFoam: Added support for transonic flow of liquids and real gases
Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.
2017-02-24 16:20:06 +00:00
Andrew Heather
2f41df18e3 Merge branch 'master' into develop 2017-03-21 13:36:26 +00:00
Henry Weller
a1c8cde310 rhoSimpleFoam: added support for compressible liquid flows
rhoSimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, e.g.

thermoType
{
    type            hePsiThermo;
    mixture         pureMixture;
    transport       sutherland;
    thermo          janaf;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

instantiates a psiThermo for a perfect gas with JANAF thermodynamics, whereas

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

instantiates a rhoThermo for water, see new tutorial
compressible/rhoSimpleFoam/squareBendLiq.

In order to support complex equations of state the pressure can no longer be
unlimited and rhoSimpleFoam now limits the pressure rather than the density to
handle start-up more robustly.

For backward compatibility 'rhoMin' and 'rhoMax' can still be used in the SIMPLE
sub-dictionary of fvSolution which are converted into 'pMax' and 'pMin' but it
is better to set either 'pMax' and 'pMin' directly or use the more convenient
'pMinFactor' and 'pMinFactor' from which 'pMax' and 'pMin' are calculated using
the fixed boundary pressure or reference pressure e.g.

SIMPLE
{
    nNonOrthogonalCorrectors 0;

    pMinFactor      0.1;
    pMaxFactor      1.5;

    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;
        "(k|epsilon|omega)" 1e-3;
    }
}
2017-02-24 11:18:01 +00:00
Mark Olesen
d3911dd167 STYLE: avoid old-style shell backticks in various places 2017-02-20 09:30:58 +01:00
Henry Weller
c52e4b58a1 thermophysicalModels: Changed specie thermodynamics from mole to mass basis
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.
2017-02-17 11:22:14 +00:00
Andrew Heather
c3df4b9368 BUG: Tutorial updates - updated rhoSimpleFoam thermo to use rhoThermo after commit a7c8d1c - see #355 2016-12-22 10:14:34 +00:00
Andrew Heather
28e37bbec9 STYLE: Consistency updates 2016-12-16 14:36:48 +00:00
Prashant
67ea233d21 ENH: Usage of locationsInMesh for tutorial and other fix 2016-12-14 11:04:15 +00:00
Andrew Heather
7063555abb BUG: Tutorial update - fixes #339 2016-12-13 12:43:02 +00:00
Henry Weller
83f3044db9 tutorials/compressible/rhoSimpleFoam/squareBend: Stabilize by further relaxing e
Patch contributed by Mattijs Janssens
http://bugs.openfoam.org/view.php?id=2382
2016-12-09 16:53:35 +00:00
Henry Weller
1c687baa35 dynamicMotionSolverListFvMesh: New mesh-motion solver supporting multiple moving regions
e.g. the motion of two counter-rotating AMI regions could be defined:

dynamicFvMesh   dynamicMotionSolverListFvMesh;

solvers
(
    rotor1
    {
        solver solidBody;

        cellZone        rotor1;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         6.2832; // rad/s
        }
    }

    rotor2
    {
        solver solidBody;

        cellZone        rotor2;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         -6.2832; // rad/s
        }
    }
);

Any combination of motion solvers may be selected but there is no special
handling of motion interaction; the motions are applied sequentially and
potentially cumulatively.

To support this new general framework the solidBodyMotionFvMesh and
multiSolidBodyMotionFvMesh dynamicFvMeshes have been converted into the
corresponding motionSolvers solidBody and multiSolidBody and the tutorials
updated to reflect this change e.g. the motion in the mixerVesselAMI2D tutorial
is now defined thus:

dynamicFvMesh   dynamicMotionSolverFvMesh;

solver solidBody;

solidBodyCoeffs
{
    cellZone        rotor;

    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin        (0 0 0);
        axis          (0 0 1);
        omega         6.2832; // rad/s
    }
}
2016-12-01 15:57:15 +00:00
Andrew Heather
6408cd1fbb ENH: outletMappedUniformInlet BC - Cp only calculated for patch and not entire domain; input keywords updated for consistency 2016-12-12 12:13:53 +00:00
Andrew Heather
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
sergio
fc8f2ac94b ENH: Adding tutorial for outletMappedUniformInletHeatAddition 2016-12-05 14:40:11 -08:00
Mark Olesen
a6a90838fa STYLE: adjust tutorial Allrun scripts (issue #310)
- A few without a 'cd' at the start.
  Use $(getApplication) directly in more places (for clarity).
2016-11-21 10:18:00 +01:00
Mark Olesen
21679c04e4 STYLE: adjust tutorial Allclean scripts (issue #310)
- A few without a 'cd' at the start.
  Several remove files that are already covered by the cleanCase function.
2016-11-20 17:26:44 +01:00
Mark Olesen
91ed12d91c ENH: update nacaAirfoil tutorial to use prostar4 mesh
- Replaces prostar3 mesh format, which we no longer support.
- Update initial conditions to use regex and include file.
2016-10-07 19:11:50 +02:00
Andrew Heather
e98e372f8e ENH: Tutorial updates 2016-09-30 15:31:35 +01:00
Andrew Heather
bd0e982d99 MRG: Initial commit after latest Foundation merge 2016-09-30 11:16:28 +01:00
Andrew Heather
3dbd39146c STYLE: consistency updates 2016-09-27 15:17:55 +01:00
Andrew Heather
ad1e798293 ENH: Initial testing updates 2016-09-26 09:28:31 +01:00
Andrew Heather
1fbcb686ff STYLE: Consistency updates 2016-09-23 16:52:46 +01:00
Henry Weller
1e94682f24 tutorials: Renamed sub-directories ras -> RAS and les -> LES 2016-09-20 19:03:40 +01:00
Andrew Heather
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
Henry Weller
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
Henry Weller
2ab457015d tutorials: corrected scripts ']; then' -> ' ]; then'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2175
2016-08-02 19:15:40 +01:00
Henry Weller
2e1557a79e tutorials Allrun scripts: Update running of postProcess application
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2173
2016-08-02 16:24:28 +01:00
Mark Olesen
eb6cf446fc STYLE: wrong permissions on some tutorial files 2016-06-30 15:39:38 +02:00
Andrew Heather
da6820c300 ENH: Added Pawan's sineWaveDamping tutorial to test new acousticDamping fvOption 2016-06-30 12:48:50 +01:00
Henry Weller
6d330d3d12 tutorials: Updated formatting of dictionaries and specification of 'plane' and 'samplePlane' 2016-06-29 18:02:57 +01:00
Mark Olesen
6e6ed0ca94 STYLE: cleanup rhoPorousSimpleFoam tutorial case
- better cleanup, avoid collisions between implicit and explicit cases
2016-06-29 14:21:02 +02:00
Mark Olesen
820f809bd5 STYLE: cleanup handling of 0.org directories (in parallel)
- remove duplicate 0/ files from the repository
2016-06-29 13:34:36 +02:00
Mark Olesen
1988e4bb60 STYLE: avoid backticks for getApplication 2016-06-27 17:50:55 +02:00
Mark Olesen
dd60cfcd06 FIX: provide restore0Dir function to fix issue #159
- makes it easier to ensure the correct behaviour, consistently
2016-06-27 16:33:55 +02:00
Henry Weller
c9adfb9806 fvOptions/constraints/fixedValueConstraint: Replacement for the nonsensical ExplicitSetValue
Description
    Constrain the field values within a specified region.

    For example to set the turbulence properties within a porous region:
    \verbatim
    porosityTurbulence
    {
        type            scalarFixedValueConstraint;
        active          yes;

        scalarFixedValueConstraintCoeffs
        {
            selectionMode   cellZone;
            cellZone        porosity;
            fieldValues
            {
                k           30.7;
                epsilon     1.5;
            }
        }
    }
    \endverbatim

See tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff
constant/fvOptions for an example of this fvOption in action.
2016-06-16 15:32:19 +01:00
Henry Weller
64aa9925e4 totalPressureFvPatchScalarField, uniformTotalPressureFvPatchScalarField: simplified and rationalized
The modes of operation are set by the dimensions of the pressure field
    to which this boundary condition is applied, the \c psi entry and the value
    of \c gamma:
    \table
        Mode                    | dimensions | psi   | gamma
        incompressible subsonic | p/rho      |       |
        compressible subsonic   | p          | none  |
        compressible transonic  | p          | psi   | 1
        compressible supersonic | p          | psi   | > 1
    \endtable

    For most applications the totalPressure boundary condition now only
    requires p0 to be specified e.g.
    outlet
    {
        type            totalPressure;
        p0              uniform 1e5;
    }
2016-06-16 12:21:34 +01:00
Chris Greenshields
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
Chris Greenshields
4baac4cd80 sonicFoam cases: removed redundant coefficient in divSchemes 2016-06-13 15:03:57 +01:00
Henry Weller
d9f423ec85 Utility sample: replaced by 'postProcess -func sample'
To re-use existing 'sampleDict' files simply add the following entries:

    type sets;
    libs ("libsampling.so");

and run

    postProcess -func sampleDict

It is probably better to also rename 'sampleDict' -> 'sample' and then run

    postProcess -func sampleDict
2016-06-13 14:27:46 +01:00
Chris Greenshields
12814a306d sonicFoam forwardStep tutorial: removed redundant scheme entry 2016-06-13 09:34:01 +01:00
Henry Weller
dd281330bc foamInfoExec: Time listing functionality superseded by foamListTimes 2016-06-03 19:23:27 +01:00
Henry Weller
1be464d23d functionObjectList::readFunctionObject: Add support for functionObject arguments containing '()'s 2016-05-31 17:47:21 +01:00
Henry Weller
7454518bc5 includeFuncEntry: Added support for function arguments compatible with the '-func' post-processing option
e.g.

functions
{
    #includeFunc mag(U)
}

executes 'mag' on the field 'U' writing the field 'mag(U)'.

The equivalent post-processing command is

postProcess -func 'mag(U)'
2016-05-31 14:43:44 +01:00
Henry Weller
cb1523dbd9 tutorials/compressible/sonicFoam/laminar/shockTube: Added functionObject
tutorials/electromagnetics/mhdFoam/hartmann: Added functionObject

Replaced separate 'postProcess' step with a functionObject executed at
run-time.
2016-05-31 10:33:48 +01:00
Henry Weller
d438da1eb7 ACMI: Corrected conservation issue
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2057
2016-05-30 08:29:11 +01:00
Henry Weller
e4dc50dcb0 postProcessing: Replaced 'foamCalc' and the 'postCalc' utilities
with the more general and flexible 'postProcess' utility and '-postProcess' solver option

Rationale
---------

Both the 'postProcess' utility and '-postProcess' solver option use the
same extensive set of functionObjects available for data-processing
during the run avoiding the substantial code duplication necessary for
the 'foamCalc' and 'postCalc' utilities and simplifying maintenance.
Additionally consistency is guaranteed between solver data processing
and post-processing.

The functionObjects have been substantially re-written and generalized
to simplify development and encourage contribution.

Configuration
-------------

An extensive set of simple functionObject configuration files are
provided in

OpenFOAM-dev/etc/caseDicts/postProcessing

and more will be added in the future.  These can either be copied into
'<case>/system' directory and included into the 'controlDict.functions'
sub-dictionary or included directly from 'etc/caseDicts/postProcessing'
using the '#includeEtc' directive or the new and more convenient
'#includeFunc' directive which searches the
'<etc>/caseDicts/postProcessing' directories for the selected
functionObject, e.g.

functions
{
    #includeFunc Q
    #includeFunc Lambda2
}

'#includeFunc' first searches the '<case>/system' directory in case
there is a local configuration.

Description of #includeFunc
---------------------------

    Specify a functionObject dictionary file to include, expects the
    functionObject name to follow (without quotes).

    Search for functionObject dictionary file in
    user/group/shipped directories.
    The search scheme allows for version-specific and
    version-independent files using the following hierarchy:
    - \b user settings:
      - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing
      - ~/.OpenFOAM/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is set):
      - $WM_PROJECT_SITE/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_SITE/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is not set):
      - $WM_PROJECT_INST_DIR/site/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_INST_DIR/site/caseDicts/postProcessing
    - \b other (shipped) settings:
      - $WM_PROJECT_DIR/etc/caseDicts/postProcessing

    An example of the \c \#includeFunc directive:
    \verbatim
        #includeFunc <funcName>
    \endverbatim

postProcess
-----------

The 'postProcess' utility and '-postProcess' solver option provide the
same set of controls to execute functionObjects after the run either by
reading a specified set of fields to process in the case of
'postProcess' or by reading all fields and models required to start the
run in the case of '-postProcess' for each selected time:

postProcess -help

Usage: postProcess [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

 pimpleFoam -postProcess -help

Usage: pimpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

The functionObjects to execute may be specified on the command-line
using the '-func' option for a single functionObject or '-funcs' for a
list, e.g.

postProcess -func Q
postProcess -funcs '(div(U) div(phi))'

In the case of 'Q' the default field to process is 'U' which is
specified in and read from the configuration file but this may be
overridden thus:

postProcess -func 'Q(Ua)'

as is done in the example above to calculate the two forms of the divergence of
the velocity field.  Additional fields which the functionObjects may depend on
can be specified using the '-field' or '-fields' options.

The 'postProcess' utility can only be used to execute functionObjects which
process fields present in the time directories.  However, functionObjects which
depend on fields obtained from models, e.g. properties derived from turbulence
models can be executed using the '-postProcess' of the appropriate solver, e.g.

pisoFoam -postProcess -func PecletNo

or

sonicFoam -postProcess -func MachNo

In this case all required fields will have already been read so the '-field' or
'-fields' options are not be needed.

Henry G. Weller
CFD Direct Ltd.
2016-05-28 18:58:48 +01:00
Henry Weller
b634f5af08 functionObjects::MachNo: New functionObject to calculate the Mach number volScalarField
of a compressible single-phase flow

See tutorials/compressible/sonicFoam/laminar/forwardStep/system/controlDict
2016-05-23 21:45:41 +01:00
Henry Weller
3eec5854be Standardized the selection of required and optional fields in BCs, fvOptions, functionObjects etc.
In most boundary conditions, fvOptions etc. required and optional fields
to be looked-up from the objectRegistry are selected by setting the
keyword corresponding to the standard field name in the BC etc. to the
appropriate name in the objectRegistry.  Usually a default is provided
with sets the field name to the keyword name, e.g. in the
totalPressureFvPatchScalarField the velocity is selected by setting the
keyword 'U' to the appropriate name which defaults to 'U':

        Property     | Description             | Required    | Default value
        U            | velocity field name     | no          | U
        phi          | flux field name         | no          | phi
        .
        .
        .

However, in some BCs and functionObjects and many fvOptions another
convention is used in which the field name keyword is appended by 'Name'
e.g.

        Property     | Description             | Required    | Default value
        pName        | pressure field name     | no          | p
        UName        | velocity field name     | no          | U

This difference in convention is unnecessary and confusing, hinders code
and dictionary reuse and complicates code maintenance.  In this commit
the appended 'Name' is removed from the field selection keywords
standardizing OpenFOAM on the first convention above.
2016-05-21 20:28:20 +01:00
Henry Weller
83bae2efd3 functionObjects: Renamed dictionary entry 'functionObjectLibs' -> 'libs'
This changes simplifies the specification of functionObjects in
controlDict and is consistent with the 'libs' option in controlDict to
load special solver libraries.

Support for the old 'functionObjectLibs' name is supported for backward compatibility.
2016-05-16 22:09:01 +01:00
Henry Weller
6164c2f262 Standardized the naming of functions which control the writing of fields etc.
to have the prefix 'write' rather than 'output'

So outputTime() -> writeTime()

but 'outputTime()' is still supported for backward-compatibility.

Also removed the redundant secondary-writing functionality from Time
which has been superseded by the 'writeRegisteredObject' functionObject.
2016-05-12 17:38:01 +01:00
Henry Weller
c983670c91 functionObjects: Changed options 'outputControl' -> 'writeControl' and 'outputInterval' -> 'writeInterval'
for consistency with the time controls in controlDict and to avoid
unnecessary confusion.  All code and tutorials have been updated.

The old names 'outputControl' and 'outputInterval' are but supported for
backward compatibility but deprecated.
2016-05-12 11:38:11 +01:00
Henry Weller
1b34231340 tutorials: Renamed .org -> .orig
See http://www.openfoam.org/mantisbt/view.php?id=2076
  - .org is the file extension for emacs org-mode as well
  - .orig is more to the point (.org isn't always recognized as "original")
  - .original is too long, although more consistent with the convention
    of source code file naming

Update script contributed by Bruno Santos
2016-04-30 21:53:50 +01:00
Henry Weller
88561eea95 plenumPressureFvPatchScalarField: New plenum pressure boundary condition
This condition creates a zero-dimensional model of an enclosed volume of
gas upstream of the inlet. The pressure that the boundary condition
exerts on the inlet boundary is dependent on the thermodynamic state of
the upstream volume.  The upstream plenum density and temperature are
time-stepped along with the rest of the simulation, and momentum is
neglected. The plenum is supplied with a user specified mass flow and
temperature.

The result is a boundary condition which blends between a pressure inlet
condition condition and a fixed mass flow. The smaller the plenum
volume, the quicker the pressure responds to a deviation from the supply
mass flow, and the closer the model approximates a fixed mass flow. As
the plenum size increases, the model becomes more similar to a specified
pressure.

The expansion from the plenum to the inlet boundary is controlled by an
area ratio and a discharge coefficient. The area ratio can be used to
represent further acceleration between a sub-grid blockage such as fins.
The discharge coefficient represents a fractional deviation from an
ideal expansion process.

This condition is useful for simulating unsteady internal flow problems
for which both a mass flow boundary is unrealistic, and a pressure
boundary is susceptible to flow reversal. It was developed for use in
simulating confined combustion.

tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance:
    helmholtz resonance tutorial case for plenum pressure boundary

This development was contributed by Will Bainbridge
2016-04-23 13:43:49 +01:00
mattijs
bcb17b23b1 ENH: createPatch: removed createPatch after snappyHexMesh to remove zero-sized patches
This is now handled inside snappyHexMesh with the keepPatches setting.
2016-06-22 11:21:00 +01:00
andy
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
Henry Weller
f8aa84e5c1 tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff: Updated for change in U boundary condition update order 2016-02-18 21:15:57 +00:00
Henry Weller
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
daf44fda3d tutorials and templates: Updated wall BC for velocity to noSlip 2016-02-09 20:08:34 +00:00
Henry Weller
d64e8f1414 tutorials/compressible/rhoPimpleFoam/ras/angledDuct: Updated for change in U boundary condition update order 2016-02-08 18:40:54 +00:00
Andrew Heather
f0c3e8d599 STYLE: Updated version to 'plus' 2015-12-22 23:14:17 +00:00
sergio
cf97c5d71c BUG: Changing relaxation factors of angledDuctExplicitFixedCoeff.
Adding boundary file from our dev to incompressible/simpleFoam/airFoil2D
     Adding missing boundaryRadiationProperties  combustion/fireFoam/les/flameSpreadWaterSuppressionPanel
2015-12-14 09:36:42 -08:00
Andrew Heather
5c9dff6146 GIT: Resolved conflict 2015-12-09 16:19:28 +00:00
Andrew Heather
8837a89237 STYLE: Updated links from openfoam.org to openfoam.com 2015-12-09 15:03:05 +00:00
Henry Weller
33fdce88f5 porosityModels: Specification of name and dimensions of porosity coefficients is now optional
e.g.

    DarcyForchheimerCoeffs
    {
        d   (5e7 -1000 -1000);
        f   (0 0 0);

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);
            coordinateRotation
            {
                type    axesRotation;
                e1      (1 0 0);
                e2      (0 0 1);
            }
        }
    }
2015-11-17 12:05:57 +00:00
Henry Weller
55f7d50be1 FreeBSD sed: ensure that a "-e" option immediately follows "-i" 2015-11-14 17:03:03 +00:00
Henry Weller
d98136e122 tutorials: Removed unnecessary "boundary" files 2015-11-13 20:05:37 +00:00
Chris Greenshields
ad24568623 Redundant boundary.org files removed from tutorial cases 2015-11-13 16:59:58 +00:00
Henry Weller
37cfc3ab46 tutorials: Removed unnecessary spaces between parentheses and values in vectors 2015-07-21 20:55:44 +01:00
Henry Weller
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
Henry Weller
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
Henry Weller
722a824b44 tutorials/compressible/rhoSimpleFoam/squareBend: update application 2015-07-05 18:23:05 +01:00
Henry Weller
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
Henry Weller
4180b6857d rhoPimpleFoam: Added run-time selectable LTS support replacing rhoLTSPimpleFoam
Select LTS via the ddtScheme:

        ddtSchemes
        {
            default         localEuler rDeltaT;
        }
2015-06-27 22:08:43 +01:00
Henry Weller
8fc3d158ff rhoSimpleFoam: Added "consistent" option to replace rhoSimplecFoam
See tutorials/compressible/rhoSimpleFoam/squareBend

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    rhoMin          0.1;
    rhoMax          1.0;
    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;

        // possibly check turbulence fields
        "(k|epsilon|omega)" 1e-3;
    }
}

relaxationFactors
{
    fields
    {
        p               1;
        rho             1;
    }
    equations
    {
        p               1;
        U               0.9;
        e               0.9;
        k               0.9;
        epsilon         0.9;
    }
}
2015-06-27 17:42:59 +01:00
Henry Weller
8cad93c724 rhoPimpleFoam: Added "consistent" option to replace rhoPimplecFoam
e.g. in tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS

PIMPLE
{
    momentumPredictor   yes;
    transonic           no;
    nOuterCorrectors    50;
    nCorrectors         1;
    nNonOrthogonalCorrectors 0;
    consistent          yes;

    rhoMin          0.5;
    rhoMax          2.0;

    residualControl
    {
        "(U|k|epsilon)"
        {
            relTol          0;
            tolerance       0.0001;
        }
    }

    turbOnFinalIterOnly off;
}

relaxationFactors
{
    fields
    {
        "p.*"           0.9;
        "rho.*"         1;
    }
    equations
    {
        "U.*"           0.9;
        "h.*"           0.7;
        "(k|epsilon|omega).*" 0.8;
    }
}
2015-06-27 16:26:51 +01:00
Henry Weller
38e200ce83 tutorials/compressible/rhoCentralFoam/biconic25-55Run35: Change to LTS 2015-06-27 15:33:48 +01:00
Henry
3a004fda10 fvOptions: Separate options for all cells, cellSets and inter-region coupling
by introducing rational base-classes rather than using the hideous
'switch' statement.  Further rationalization of the cell-selection
mechanism will be implemented via an appropriate class hierarchy to
replace the remaining 'switch' statement.

Mesh-motion is currently handled very inefficiently for cellSets and not
at all for inter-region coupling.  The former will be improved when the
cell-selection classes are written and the latter by making the
meshToMesh class a MeshObject after it has been corrected for mapFields.
2015-05-31 16:38:01 +01:00
Henry
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
Henry
0a6ca7ae45 includeEtcEntry: New dictionary include directive: #includeEtc "etcFile"
Description
    Specify an etc file to include when reading dictionaries, expects a
    single string to follow.

    Searches for files from user/group/shipped directories.
    The search scheme allows for version-specific and
    version-independent files using the following hierarchy:
    - \b user settings:
      - ~/.OpenFOAM/\<VERSION\>
      - ~/.OpenFOAM/
    - \b group (site) settings (when $WM_PROJECT_SITE is set):
      - $WM_PROJECT_SITE/\<VERSION\>
      - $WM_PROJECT_SITE
    - \b group (site) settings (when $WM_PROJECT_SITE is not set):
      - $WM_PROJECT_INST_DIR/site/\<VERSION\>
      - $WM_PROJECT_INST_DIR/site/
    - \b other (shipped) settings:
      - $WM_PROJECT_DIR/etc/

    An example of the \c \#includeEtc directive:
    \verbatim
        #includeEtc "etcFile"
    \endverbatim

    The usual expansion of environment variables and other constructs is
    retained.
2015-04-26 10:44:11 +01:00
Henry
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
Henry
35d8078251 rhoCentralDyMFoam: Add support for morphing-meshes and provide movingCone tutorial case 2015-02-25 12:20:12 +00:00
Henry
f6e868e1f7 tutorials/compressible/sonicDyMFoam/movingCone: sonic version of the pimpleDyMFoam/movingCone tutorial 2015-02-22 16:53:33 +00:00
Henry
5ecfb06398 tutorials: remove unnecessary under-relax fields entry 2015-02-22 16:52:21 +00:00
Henry
77a6995346 tutorials: Simplify rhoMax and rhoMin specification 2015-02-17 10:55:02 +00:00
Henry
af3f566cb3 tutorials/compressible/rhoPorousSimpleFoam/angledDuctImplicit: simplify rhoMax and rhoMin specification 2015-02-17 10:49:07 +00:00
Henry
78ca0ce02c Add simulationType entry even for simpleFoam cases
so that generic utilities like yPlus select the appropriate turbulence model
2015-01-21 21:08:19 +00:00
Henry
46b2417f12 Remove references to mut and muSgs 2015-01-21 19:52:42 +00:00
Henry
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
Henry
69ff8aa4d2 wallDist: now a MeshObject cached and updated automatically with a run-time selected algorithm
When using models which require the wallDist e.g. kOmegaSST it will
request the method to be used from the wallDist sub-dictionary in
fvSchemes e.g.

wallDist
{
    method meshWave;
}

specifies the mesh-wave method as hard-coded in previous OpenFOAM versions.
2015-01-08 10:40:23 +00:00
Henry
41368addc9 Minor change to comment 2014-12-14 21:50:14 +00:00
OpenFOAM-admin
9fb26d59d3 GIT: Repo update 2014-12-11 08:35:10 +00:00
Henry
6a51cc3cbb tutorials: use PIMPLE rather than PISO for rotating mesh problems to ensure updated fluxes are used for momentum transport 2014-07-17 11:34:39 +01:00
OpenFOAM-admin
fbb3ddf2c4 Updated for release 2.3.0 2014-02-17 10:21:46 +00:00
Henry
bd5e4cf172 Default transport solver: change from PBiCG to smoothSolver with symGaussSeidel smoother
Better for most but not all cases.
2014-02-04 16:27:35 +00:00
Henry
d25d7b28f5 symmetryPlane -> symmetry 2014-02-01 17:37:16 +00:00
mattijs
1f192f8b73 ENH: snappyHexMesh: have single region surface named as <surface> instead of <surface>_<region> 2014-01-27 12:44:45 +00:00
mattijs
8acfa4692a STYLE: snappyHexMeshDict: removed optional parameter 2014-01-27 12:25:56 +00:00
mattijs
3341e7c7c1 ENH: GAMG: use cacheAgglomeration unless moving case 2014-01-23 17:40:47 +00:00
Henry
cd33aa2ae1 tutorials/compressible/rhoPimpleFoam/les/pitzDaily: change from h to e to avoid instabilities from dp/dt
Also updated schemes and BCs
2014-01-23 16:59:40 +00:00
mattijs
c32add9e90 ENH: edgeMesh: added extendedEdgeMesh 2013-12-13 15:35:24 +00:00
mattijs
5552d5500b ENH: angledDuct: renamed wall to walls 2013-12-13 14:34:08 +00:00
mattijs
86233780e3 ENH: annularThermalMixer: renamed wall to walls 2013-12-13 14:31:34 +00:00
mattijs
9d2e472a5a ENH: angledDuct: renamed wall to walls 2013-12-13 13:09:31 +00:00
mattijs
a5e3f89b0e ENH: biconic25-55Run35: add overwrite flag to collapseEdges 2013-10-24 10:46:40 +01:00
Henry
6ece4921f1 Corrected psi 2013-10-10 12:32:48 +01:00
Henry
e42af28f7d Updated tutorial 2013-10-01 11:29:32 +01:00
Henry
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
mattijs
c4a65259ad GIT: boundary: remove usued file 2013-08-07 11:27:34 +01:00
Henry
f75138d1f6 solidBodyMotionFunctions: Changed CofG to origin where appropriate and support run-time selectable omega specification in rotatingMotion 2013-07-30 09:41:27 +01:00
mattijs
9ad0015d95 STYLE: boundary: remove regenerated files 2013-07-16 09:54:02 +01:00
Henry
14c3689fec epsilon/omega: ensure non-0 values are set on all boundaries 2013-06-20 16:33:15 +01:00
Henry
32e26ac2db rhoPimpleDyMFoam/annularThermalMixer: new tutorial 2013-04-29 15:25:50 +01:00
Henry
48272dc5ab alphatWallFunctions: add "compressible::" qualifier to compressible alphat wall-functions 2013-04-10 17:04:49 +01:00
sergio
20cfa7c6ae BUG: Correcting axesRotation.C virtual member functions and
tutorials using coordinates systems dictionary
2013-02-07 11:32:40 +00:00
mattijs
bbee49b8f6 BUG: fvOptions: comment line 2013-02-01 17:39:27 +00:00
Henry
8bcb8132bf Update tutorials 2013-01-25 12:43:07 +00:00
andy
6562441220 ENH: Made fvOptions consistent with old porousZones input settings 2013-01-22 09:12:30 +00:00
andy
dbd59096e7 ENH: Tutorial updates 2013-01-21 17:53:42 +00:00
andy
2ee940af19 ENH: removed unused file 2013-01-21 17:40:52 +00:00
andy
863f2fd74f ENH: Tutorial update 2013-01-21 17:28:33 +00:00
andy
c6bfa19a30 ENH: Tutorial update 2013-01-21 16:52:48 +00:00
andy
03ee3a5046 GIT: merge conflict resolution 2013-01-21 16:48:22 +00:00
andy
c71cfa3d3b ENH: Tutorial updates - porosityProperties->fvOptions 2013-01-21 16:29:07 +00:00
laurence
b8bace6cd8 Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2013-01-21 14:40:37 +00:00
laurence
4256e0a770 ENH: edgeCollapser: Make mesh checking optional and set default values for dictionary
Update biconic25-55Run35 tutorial with simplified collapseDict
2013-01-21 14:39:16 +00:00
sergio
9692a52e3a ENH: Update tutorials using coordinate systems for porosity models 2013-01-21 12:37:54 +00:00
andy
ba391381ab STYLE: minor input file change 2013-01-21 11:40:20 +00:00
laurence
32d358e4c3 Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2013-01-20 15:25:30 +00:00
laurence
b8b8f50d2c BUG: Update biconic25-55Run35 tutorial to run with latest version of collapseEdges 2013-01-20 15:23:38 +00:00
andy
985219c0ff ENH: Tutorial file updates 2013-01-09 14:05:53 +00:00
andy
d1bd734059 ENH: Updated tutorial files 2013-01-08 09:50:59 +00:00
andy
e2955dd6f7 ENH: Tutorial updates for run-time selectable sources 2012-12-18 09:30:47 +00:00
Henry
db89978ade Updated headers for Laurence and Andy 2012-12-17 11:42:00 +00:00
andy
71abedf412 ENH: Tutorial updates 2012-12-10 15:34:45 +00:00
andy
74e2acbc22 ENH: Tutorial updates 2012-12-06 15:48:25 +00:00
andy
28c883564a ENH: Tutorial updates 2012-12-06 11:07:05 +00:00
andy
26b17afe44 ENH: Tutorial updates 2012-12-06 10:28:19 +00:00
andy
d55ca09465 ENH: Tutorial update 2012-12-06 10:13:14 +00:00
andy
e733e7ba1c EMH: Added file missed during commit #c0dbc94 2012-12-05 17:51:04 +00:00
andy
7769292a33 Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2012-12-05 17:43:19 +00:00
andy
c0dbc94b8a ENH: Updated rhoLTSPimpleFoam angledDuct tutorial case 2012-12-05 17:41:43 +00:00
andy
811740ceaa ENH: Moved/translated rhoPorousMRFPimpleFoam/mixerVessel2D tutorial to rhoPimpleFoam/mixerVessel2D 2012-12-05 17:30:08 +00:00
andy
ef1d4a2a96 ENH: Updated/created tutorial for rhoSimpleFoam 2012-12-05 17:01:58 +00:00
andy
78181c2629 ENH: Updated rhoPorousSimpleFoam tutorials 2012-12-05 16:36:06 +00:00
Henry
acbbaf3f4d tutorials: Updated "limited" snGrad schemes 2012-12-05 14:58:42 +00:00