Commit Graph

742 Commits

Author SHA1 Message Date
Henry Weller
ea6d010f51 tutorials/incompressible/pimpleDyMFoam/propeller: Use the standard 'Q' functionObject configuration 2016-05-31 21:21:41 +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
8b3b04b2f0 tutorials/incompressible/pimpleDyMFoam/propeller/system/Q: Updated 2016-05-22 19:03:23 +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
83c7e97655 dynamicCode: Renamed 'redirectType' to 'name' to clarify the purpose
of the entry which is to provide the name of the generated class.

'redirectType' is supported for backward-compatibility.
2016-05-18 23:10:42 +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
78d2971b21 functionObjects: rewritten to all be derived from 'functionObject'
- Avoids the need for the 'OutputFilterFunctionObject' wrapper
  - Time-control for execution and writing is now provided by the
    'timeControlFunctionObject' which instantiates the processing
    'functionObject' and controls its operation.
  - Alternative time-control functionObjects can now be written and
    selected at run-time without the need to compile wrapped version of
    EVERY existing functionObject which would have been required in the
    old structure.
  - The separation of 'execute' and 'write' functions is now formalized in the
    'functionObject' base-class and all derived classes implement the
    two functions.
  - Unnecessary implementations of functions with appropriate defaults
    in the 'functionObject' base-class have been removed reducing
    clutter and simplifying implementation of new functionObjects.
  - The 'coded' 'functionObject' has also been updated, simplified and tested.
  - Further simplification is now possible by creating some general
    intermediate classes derived from 'functionObject'.
2016-05-15 16:40:01 +01:00
Henry Weller
274d1df8a4 snappyHexMesh: Automatically remove zero-sized patches
All patches are preserved if the 'keepPatches' option is set true.
Patch contributed by Mattijs Janssens
2016-05-13 17:47:38 +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
34811e43cd tutorials/incompressible/simpleFoam: Updated for changes in functionObjects 2016-05-09 19:12:38 +01:00
Henry Weller
fe16f10f26 tutorials: "readFields" is no longer needed to post-process functionObjects
Use the solver '-postProcess' command-line option instead of execFlowFunctionObjects
2016-05-09 17:03:15 +01:00
Henry Weller
cf4b35693c tutorials: Remove the unnecessary "\"s on "cp", "rm" and "mv"
Resolves bug-report http://bugs.openfoam.org/view.php?id=2077
2016-05-05 15:17:55 +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
294379d421 tutorials/incompressible/pisoFoam/les/motorBike: Corrected typos
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2061
2016-04-21 21:13:10 +01:00
Henry Weller
ed2cff905c tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/Allrun.pre: Updated for latest version of collapseEdges 2016-03-06 21:34:31 +00:00
Henry Weller
4bc77e6aff Sprucing up the tutorials folder and adding -dict to "collapseEdges"
Patch provided by Bruno Santos
Resolves patch application request http://www.openfoam.org/mantisbt/view.php?id=2015
2016-03-06 19:06:44 +00:00
mattijs
2ca4082852 ENH: snappyHexMesh: add profiling of snappyHexMesh 2016-06-22 16:12:18 +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
mattijs
facb1457f2 ENH: snappyHexMesh: move locationInMesh away from rotor.
snappyHexMesh filters out zero-sized patches so no more createPatches.
Fixes part of #152
2016-06-22 10:04:48 +01:00
Andrew Heather
f029bda6d2 Merge branch 'feature-conservativeACMI' into 'develop'
BUG: cyclicACMI: make conservative and remove faceAreas0

Need to review cyclicACMI patch non-overlap values
- values here preserve initial values only
- snGrad - used?
- wall functions - no longer call updateCoeffs with ACMI weights (?)

See merge request !46
2016-06-15 16:16:43 +01:00
Andrew Heather
7572c99c79 GIT: Resolve conflict 2016-06-10 16:05:48 +01:00
mattijs
c4b5880f9c BUG: cyclicACMI: make conservative. Remove faceAreas0 2016-06-06 14:30:00 +01:00
Andrew Heather
b9313ef2fe ENH: Consistency updates after Foundation merge and code tidying 2016-04-25 16:46:56 +01:00
andy
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
Prashant
cdec7b0e1a bugFixes 2016-04-22 12:11:10 +05:30
Henry Weller
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
cfa7678ba8 foamRunTutorials: Rationalized support for the "-test" option
RunFunctions: Added "isTest()" argument parsing function
tutorials: Updated Allrun scripts to propagate the "-test" option
tutorials: Removed the lower Alltest scripts and updated the Allrun to
    use the "isTest()" function to handle test-specific operation
2016-02-15 15:49:05 +00:00
Henry Weller
caf3c353d3 tutorials: Simplified the Allrun and Allclean scripts 2016-02-14 18:32:34 +00:00
Henry Weller
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
Henry Weller
e405c69c39 tutorials/incompressible/icoFoam: Simplified the handling of the wall BCs in cavityClipped 2016-02-12 18:09:21 +00:00
Henry Weller
0315d654d9 tutorials: Add pFinal to PISO settings in icoFoam and mhdFoam tutorials 2016-02-12 15:48:10 +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
9233361899 noSlip: New wall boundary condition for velocity
noSlip is equivalent to fixedValue with a value of (0 0 0) but is
simpler to specify e.g.

     upperWall
     {
         type            noSlip;
     }
2016-02-09 18:45:13 +00:00
Henry Weller
011177665f porousBlockage: New pisoFoam tutorial to demonstrate the porosity source fvOption
To see the different behavior of flow through and around the blockage
change D in constant/fvOptions:

        // D 100;  // Very little blockage
        // D 200;  // Some blockage but steady flow
        // D 500;  // Slight waviness in the far wake
        D 1000; // Fully shedding behavior
2016-02-09 13:42:39 +00:00
Henry Weller
923f39a9f8 tutorials/incompressible/nonNewtonianIcoFoam: Added pFinal 2016-02-02 20:06:08 +00:00
Henry Weller
b3d47f0423 bin/tools/RunFunctions: runParallel now obtains the number of processors from numberOfSubdomains
in decomposeParDict.

This default number of processors may be overridden by the new "-np"
option to runParallel which must be specified before the application
name e.g.:

runParallel -np 4 pisoFoam
2016-01-27 14:19:25 +00:00
Andrew Heather
d36f1418cd STYLE: Updated links 2016-01-08 12:43:01 +00:00
mattijs
2cbad2d47f ENH: motorBike: example of run-time postprocessing 2016-01-07 16:31:01 +00:00
mattijs
18bc62a328 BUG:tutorials: missing boundary file.
Fixes #45
2015-12-31 12:07:43 +00:00
Andrew Heather
4c603aeadf ENH: Added simpleFoam 'simpleCar' tutorial showing example of explict porosity fvOption 2015-12-23 12:09:33 +00:00
Andrew Heather
f0c3e8d599 STYLE: Updated version to 'plus' 2015-12-22 23:14:17 +00:00
Andrew Heather
04752147c8 GIT: Resolved conflict on merge from upstream 2015-12-22 16:49:44 +00:00
sergio
a4877d8a1f BUG: Fixing Allrun for cp -r polyMesh from case to case 2015-12-14 11:04:00 -08: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
Henry Weller
f23ab37eca tutorials/incompressible/pimpleDyMFoam/wingMotion/Allrun: Updated to handle missing polyMesh dir 2015-12-14 10:22:06 +00:00
Andrew Heather
0e01c44129 GIT: Resolved conflict 2015-12-09 16:19:28 +00: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
Andrew Heather
dbea5806ce ENH: Tutorials - removing fluxRequired from fvSchemes 2015-12-08 12:14:13 +00:00
Andrew Heather
3f55f752fc GIT: Resolve conflict with upstream merge from Foundation 2015-12-07 17:07:20 +00:00
mattijs
777b139907 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-dev-OpenCFD into develop
Conflicts:
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
2015-11-19 10:40:51 +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
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
mattijs
4ef54948f7 ENH: oscillatingInletPeriodicAMI2D: changed interfaces on either side to be same size
Added description of case.
2015-11-09 10:41:02 +00:00
william
29e1c6e77b message=BUG: cyclicPeriodicAMI: corrected logic so that it correctly excludes
patches which do not overlap an integer number of times.
2015-11-09 09:12:21 +00:00
william
341f2e0b99 ENH: Added support for periodic AMI patches. When these patches do not
fully overlap, the geometry will be replicated according to the
transfomation of another coupled patch until full-overlap is achieved.
2015-11-06 16:40:51 +00:00
Henry Weller
d073e483b8 tutorials/incompressible/simpleFoam/pitzDaily: Change default model to kEpsilon
and reduce relaxation factors to improve stability over a range of
models and systems.
2015-11-01 12:24:25 +00:00
Henry Weller
f4202d9ee6 sixDoFSolver: Run-time selectable solver (integrator) for sixDoFRigidBodyMotion
The built-in explicit symplectic integrator has been replaced by a
general framework supporting run-time selectable integrators.  Currently
the explicit symplectic, implicit Crank-Nicolson and implicit Newmark
methods are provided, all of which are 2nd-order in time:

Symplectic 2nd-order explicit time-integrator for 6DoF solid-body motion:

    Reference:
        Dullweber, A., Leimkuhler, B., & McLachlan, R. (1997).
        Symplectic splitting methods for rigid body molecular dynamics.
        The Journal of chemical physics, 107(15), 5840-5851.

    Can only be used for explicit integration of the motion of the body,
    i.e. may only be called once per time-step, no outer-correctors may be
    applied.  For implicit integration with outer-correctors choose either
    CrankNicolson or Newmark schemes.

    Example specification in dynamicMeshDict:
    solver
    {
        type    symplectic;
    }

Newmark 2nd-order time-integrator for 6DoF solid-body motion:

    Reference:
        Newmark, N. M. (1959).
        A method of computation for structural dynamics.
        Journal of the Engineering Mechanics Division, 85(3), 67-94.

    Example specification in dynamicMeshDict:
    solver
    {
        type    Newmark;
        gamma   0.5;    // Velocity integration coefficient
        beta    0.25;   // Position integration coefficient
    }

Crank-Nicolson 2nd-order time-integrator for 6DoF solid-body motion:

    The off-centering coefficients for acceleration (velocity integration) and
    velocity (position/orientation integration) may be specified but default
    values of 0.5 for each are used if they are not specified.  With the default
    off-centering this scheme is equivalent to the Newmark scheme with default
    coefficients.

    Example specification in dynamicMeshDict:
    solver
    {
        type    CrankNicolson;
        aoc     0.5;    // Acceleration off-centering coefficient
        voc     0.5;    // Velocity off-centering coefficient
    }

Both the Newmark and Crank-Nicolson are proving more robust and reliable
than the symplectic method for solving complex coupled problems and the
tutorial cases have been updated to utilize this.

In this new framework it would be straight forward to add other methods
should the need arise.

Henry G. Weller
CFD Direct
2015-10-19 14:03:46 +01:00
Henry Weller
81e083fc59 wingMotion tutorials: added missing ';' 2015-10-01 14:07:29 +01:00
Henry Weller
7be9bb61e6 tutorials/incompressible/SRFSimpleFoam/mixer: Improved case setup and schemes 2015-07-24 17:01:27 +01: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
15198a34bd fluxRequired: Added setFluxRequired function to fvSchemes class
Added calls to setFluxRequired for p in all incompressible solvers which
avoids the need to add fluxRequired entries in fvSchemes dictionary.

Will add calls to setFluxRequired to the rest of the solvers.
2015-07-15 15:04:51 +01:00
Henry Weller
59f17355cf rotorDiskSource: Debugged the duplicated interpolation functions
Needs rewriting to avoid unnecessary code duplication, preferably using
standard OpenFOAM interpolation functionality.
2015-07-03 12:41:25 +01:00
Henry Weller
8c8a3a162f tutorials/incompressible/simpleFoam/rotorDisk: Tutorial for the rotorDiskSource functionObject
Provided by Richard Jones
2015-07-01 12:37:21 +01:00
Henry Weller
256be2641f Renamed pressureGradientExplicitSource to meanVelocityForce
as it is the applied the force necessary to maintain the specified mean velocity
2015-06-30 19:13:16 +01:00
Henry Weller
0e7de1b8df tutorials/incompressible/simpleFoam/pitzDaily: Change to use SIMPLEC
With the SIMPLE "consistent" option and optimized relaxation factors
this tutorial now converges in 210 iterations, previously with SIMPLE it
took 950.  Despite the increase in cost per time-step due to the
increase in relaxation factors and number of solver iterations the
speed-up is 3.5x.
2015-06-23 20: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
ec6ad11cbd tutorials/incompressible/simpleFoam/pitzDaily/0/omega: Correct value to be consistent with epsilon
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1720
2015-05-29 21:26:49 +01:00
Henry
38177526ff simpleFoam/SRFSimpleFoam: Added support for SIMPLEC
SIMPLEC (SIMPLE-consistent) is selected by setting "consistent" option true/yes:

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    consistent yes;
}

which relaxes the pressure in a "consistent" manner and additional
relaxation of the pressure is not generally necessary.  In addition
convergence of the p-U system is better and reliable with less
aggressive relaxation of the momentum equation, e.g. for the motorbike
tutorial:

relaxationFactors
{
    equations
    {
        U               0.9;
        k               0.7;
        omega           0.7;
    }
}

The cost per iteration is marginally higher but the convergence rate is
better so the number of iterations can be reduced.

The SIMPLEC algorithm also provides benefit for cases with large
body-forces, e.g. SRF, see tutorials/incompressible/SRFSimpleFoam/mixer
and feature request http://www.openfoam.org/mantisbt/view.php?id=1714
2015-05-29 11:30:40 +01:00
Chris Greenshields
a28ac315ff windAroundBuildings: example case of wind flow around buildings 2015-05-19 17:12:33 +01:00
Henry
75282f9b11 Minor cleanup 2015-05-03 18:11:53 +01:00
Henry
dc5ed4cc1b MRFZone: Add regex and group support to the specification of nonRotatingPatches 2015-04-26 16:38:07 +01:00
Henry
5b1edc73b1 SRFModel: Changes origin to be user-input rather than hard-coded to (0 0 0)
Updated tutorials
2015-04-26 11:28:14 +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
c28036665d potentialFoam: No longer executes functionObjects by default
Use the new -withFunctionObjects command-line option to execute functionObjects
2015-04-25 21:56:14 +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
e68c5f666b Scripts: Add {} following -I option to xargs
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1573
2015-03-15 22:14:44 +00:00
Henry
67e8bd8bf9 shallowWaterFoam: Read hU rather than U to support complex e.g. time-varying BCs
Disadvantage is that the BC values have to be specified in terms of hU
rather than U.  The alternative would be to add complex code to map h
and U BCs into the equivalent for hU.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1566
2015-03-13 22:14:08 +00:00
Henry
bbc223d28d Replace xargs -i with xargs -I as the -i option is deprecated 2015-03-13 17:56:52 +00:00
Henry
a124bbaa0c TurbulenceModels: Update non-linear models to use the new innerSqr function 2015-02-28 16:11:24 +00:00
Henry
c350b22cd5 Turbulence models: minor clean-up 2015-02-27 19:23:39 +00:00
Henry
d05b8e6dd2 ShihQuadraticKE: Rewritten and tested on the boundaryWallFunctions and pitzDaily cases 2015-02-27 18:13:30 +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
7be1393fef tutorials: corrected comments in snappyHexMeshDict
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1541
2015-02-17 23:59:59 +00:00
Henry
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
Henry
eb266e2add turbulenceModels/LES/dynamicKEqn/dynamicKEqn: Added dynamic version of the one-equation SGS model 2015-02-14 13:08:08 +00:00
Henry
4129560601 potentialFoam: Solve for velocity potential named Phi rather than using the pressure field for this purpose
The Phi field is read if available otherwise created automatically with
boundary conditions obtained automatically from the pressure field if
available (with optional name) otherwise inferred from the velocity
field.  Phi Laplacian scheme and solver specification are required.  See
tutorials for examples.
2015-02-14 11:03:37 +00:00
Henry
1edf292c00 Correct Doxygen multiline comments 2015-02-14 10:59:29 +00:00
Henry
332c3cc37f Tutorials: change topoSetDicts to avoid duplicate names 2015-02-12 10:01:31 +00:00
Henry
acbd73cb5b tutorials/incompressible/simpleFoam/pitzDaily: Setup to run with range of turbulence models 2015-01-28 18:36:03 +00:00
Henry
fb30659b25 tutorials/incompressible/pimpleFoam/elipsekkLOmega: added non-orthogonal correctors to improve stability when running longer 2015-01-28 09:19:20 +00:00
Henry
d815440f52 tutorials/incompressible/pimpleFoam/elipsekkLOmega: Updated 2015-01-27 15:09:03 +00:00
Henry
4f048a8d9c TurbulenceModels: Added LRR model with Daly-Harlow generalized gradient diffusion 2015-01-24 22:10:17 +00:00
Henry
04eb2428ff turbulenceModels/LES: Added WALE model
Changed the tutorials/incompressible/pimpleFoam/channel395 to demonstrate the WALE model
2015-01-23 09:17:33 +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
fbdc5f119a Added updated nut.gz file 2015-01-21 19:38:40 +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
4e4928054a atmBoundaryLayer: rationalized U and epsilon BCs and added the corresponding k BC 2014-12-31 23:03:26 +00:00
Henry
fcd4213fad atmBoundaryLayer: Attempt to rationalize the inputs and documentation to make these BCs more usable
Resolves bug report http://www.openfoam.org/mantisbt/view.php?id=860
2014-12-29 17:39:20 +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
f197f9545f tutorials/incompressible/pimpleDyMFoam/mixerVesselAMI2D: Use PIMPLE rather than PISO to ensure updated fluxes are used in momentum equation 2014-07-17 11:30:02 +01:00
andy
d22da01ef5 ENH: tutorial update: movingCone - updated blockMeshDict 2014-07-15 15:59:34 +01:00
Henry
0412aaf40b Removed spurious $1 2014-07-15 11:34:58 +01:00
Henry
7d5e8c2a6f Updated motorBike tutorial to correspond to the training course 2014-07-11 15:48:54 +01:00
Henry
d49889402f sixDoFRigidBodyMotion: Add support to specify the centre for rotation independent of the centre of mass
via the point, line or plane constraints.
2014-05-16 15:35:11 +01:00
OpenFOAM-admin
fbb3ddf2c4 Updated for release 2.3.0 2014-02-17 10:21:46 +00:00
william
8acf2daaba BUG: tutorial fixes for 32 bit ubuntu packs 2014-02-11 10:15:00 +00:00
william
333818408f STYLE: sh instead of bash for tutorial scripts 2014-02-05 16:53:44 +00:00
william
11416d066d BUG: removed bash-dependent test for the existence of gnuplot 2014-02-05 16:20:53 +00:00
andy
e976c1d8dd ENH: cavity tutorial updates 2014-02-03 12:49:42 +00:00
Henry
ee4e19ef85 Renamed folder -> directory for consistency with POSIX and the rest of OpenFOAM 2014-01-30 13:01:04 +00:00
andy
c380695ead ENH: tutorial update 2014-01-27 15:41:54 +00:00
mattijs
8acfa4692a STYLE: snappyHexMeshDict: removed optional parameter 2014-01-27 12:25:56 +00:00
mattijs
292da7605e Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2014-01-24 16:29:30 +00:00
mattijs
7b60265f3c BUG: propeller: create inlet and outlet from wrong faceZone 2014-01-24 16:28:04 +00:00
andy
d7be8d9d43 Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2014-01-24 16:01:26 +00:00
mattijs
827456621d ENH: propeller: meshed to outerCylinder 2014-01-24 15:29:18 +00:00
andy
73e876c7fb ENH: tutorial update - incompressible 2014-01-24 15:21:10 +00:00
mattijs
3341e7c7c1 ENH: GAMG: use cacheAgglomeration unless moving case 2014-01-23 17:40:47 +00:00
Henry
c392b0748a tutorials: deprecate filteredLinear.* in favour of LUST for LES cases 2014-01-23 17:13:58 +00:00
Henry
71aa1c53a0 Merge branch 'master' of ssh://dm/home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2014-01-23 11:29:09 +00:00
Henry
36f3e513ea sixDoFRigidBodyMotion: Update code and tutorial cases to use new explicit motion
simpleHarmonicMotion case removed temporarily pending the introduction of a suitable motion solver
2014-01-23 11:24:50 +00:00
mattijs
cb01bcec31 ENH: propeller: use functionObjects 2014-01-23 10:53:24 +00:00
mattijs
81670ff8e0 ENH: propeller: added renumbering and vorticity 2014-01-23 09:51:57 +00:00
mattijs
a0a13075c0 ENH: propeller: updated for new snappyHexMesh faceType capability 2014-01-22 17:35:45 +00:00
mattijs
1dc9207000 ENH: propeller: use smoothSolver on transported quantities 2014-01-22 11:27:17 +00:00
andy
e7201c0326 ENH: tutorial updates 2014-01-20 16:25:13 +00:00
andy
8f776987df ENH: tutorial updtaes 2014-01-17 14:11:55 +00:00
andy
e5a5b89509 ENH: mapFields - deprecated old utility in favour of mapFieldsNew and renamed 2014-01-14 10:41:50 +00:00
mattijs
63db7ce221 STYLE: snappyHexMeshDict: remove unused entries 2014-01-09 11:00:28 +00:00
mattijs
64b6f921e8 ENH: icoFoam tutorials: clean up script 2013-12-19 11:21:31 +00:00
mattijs
2a4b7df8fc ENH: pitzDailyExptInlet: do not supply initial value 2013-12-18 11:34:48 +00:00
Henry
2612f6beac sixDoFRigidBodyMotion: Renamed constraints 2013-12-16 21:19:18 +00:00
Henry
8af82f02bf sixDoFRigidBodyMotion: remove the constraint and restraint "Coeffs"
sub-dict and put the coefficients in the containing dictionary.
2013-12-15 22:30:52 +00:00
mattijs
d57f983401 Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2013-12-13 15:57:35 +00:00
mattijs
5552d5500b ENH: angledDuct: renamed wall to walls 2013-12-13 14:34:08 +00:00
andy
eee22d19b1 Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2013-12-12 13:01:23 +00:00
andy
a97070c303 ENH: Added pimpleam pitzDaily test case 2013-12-12 12:57:19 +00:00
mattijs
b713bc7124 Merge branch 'master' of /home/dm4/OpenFOAM/repositories/OpenFOAM-dev 2013-12-11 14:24:51 +00:00
Henry
3ec31ba3f7 pimpleDyMFoam/movingCone: change axis to empty 2013-12-10 14:10:28 +00:00
mattijs
e9485ae968 GIT: boundary: generated file 2013-12-06 18:05:33 +00:00
Henry
3f5eda25f0 symmetryPlane: add symmetryPlane as a special type of symmetry condition applied to a single plane
The standard/previous general symmetry type is now named symmetry
    both in class and lookup name for consistency.  The rigorous
    symmetryPlane type is needed for moving-mesh cases in which the
    motion it constrained by one or two planes.
2013-12-06 15:45:11 +00:00