Commit Graph

2353 Commits

Author SHA1 Message Date
Henry Weller
c9a57e4009 tutorials/combustion/fireFoam/les: Added missing ph_rgh.orig files 2016-04-27 16:18:25 +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
Henry Weller
673e0d1704 fireFoam: Added optional hydrostatic initialization of the pressure and density
Also added the new prghTotalHydrostaticPressure p_rgh BC which uses the
hydrostatic pressure field as the reference state for the far-field
which provides much more accurate entrainment is large open domains
typical of many fire simulations.

The hydrostatic field solution is controlled by the optional entries in
the fvSolution.PIMPLE dictionary, e.g.

    hydrostaticInitialization yes;
    nHydrostaticCorrectors 5;

and the solver must also be specified for the hydrostatic p_rgh field
ph_rgh e.g.

    ph_rgh
    {
        $p_rgh;
    }

Suitable boundary conditions for ph_rgh cannot always be derived from
those for p_rgh and so the ph_rgh is read to provide them.

To avoid accuracy issues with IO, restart and post-processing the p_rgh
and ph_rgh the option to specify a suitable reference pressure is
provided via the optional pRef file in the constant directory, e.g.

    dimensions      [1 -1 -2 0 0 0 0];
    value           101325;

which is used in the relationship between p_rgh and p:

    p = p_rgh + rho*gh + pRef;

Note that if pRef is specified all pressure BC specifications in the
p_rgh and ph_rgh files are relative to the reference to avoid round-off
errors.

For examples of suitable BCs for p_rgh and ph_rgh for a range of
fireFoam cases please study the tutorials in
tutorials/combustion/fireFoam/les which have all been updated.

Henry G. Weller
CFD Direct Ltd.
2016-04-23 10:04:39 +01:00
Henry Weller
bbca1fd5e7 reactingTwoPhaseEulerFoam: Corrected kineticTheory frictional stress at walls
Patch contributed by Juho Peltola, VTT

The new JohnsonJacksonSchaefferFrictionalStress model is included and
the LBend tutorial case to demonstrate the need for the changes to the
frictional stress models.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2058
2016-04-22 14:25:58 +01:00
Henry Weller
e5a029c187 tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle: Added alphaPhi to correctFluxes
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2062
2016-04-21 21:19:01 +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
bbc05bdf7e tutorials/multiphase/interDyMFoam/ras/DTCHull: Updated to use the rigidBodyDynamics solver 2016-04-19 10:35:09 +01:00
Henry Weller
d0b5bef948 tutorials/multiphase/interDyMFoam/ras/floatingObject: Updated to use rigidBodyDynamics 2016-04-18 15:41:10 +01:00
Henry Weller
77b03e2e0c Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +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
Henry Weller
acac7d786b tutorials: Added missing 'value' entry for 'calculatedFvPatchField's 2016-02-24 16:21:50 +00:00
Henry Weller
271935c1bf calculatedFvPatchField: 'value' entry is now required to avoid problems with non-initialization 2016-02-24 16:01:40 +00:00
Henry Weller
5a74397fe4 refineMesh: Added customizable direction fields to multiDirRefinement
Contribution provided by Bruno Santos
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=2004
2016-02-22 17:06:18 +00:00
Henry Weller
979e1ee191 tutorials/combustion/reactingFoam: ras -> laminar 2016-02-19 15:13:52 +00:00
Henry Weller
e12e1b172d tutorials/.*/bubbleColumn: Corrected name of temperature fields
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2003
2016-02-19 12:19:32 +00: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
0196822968 MPPICFoam PackingModels: Implicit: Added limiting to the calculation of the correction flux.
Vastly reduces the scattering and churning behaviour of packed beds.

Development provided by Will Bainbridge <github.com/will-bainbridge>

See also http://www.openfoam.org/mantisbt/view.php?id=1994
2016-02-15 18:00:20 +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
9cf419dc22 tutorials/multiphase/interFoam/ras/damBreakPorousBaffle: Use PIMPLE outer correctors to improve stability 2016-02-14 10:44: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
49f1c7e29a oscillatingFixedValue BC replaced by uniformFixedValue with the new Function1Types::Sine
For example the sinusoidal motion of the floating object in the
potentialFreeSurfaceFoam/oscillatingBox tutorial is now specified thus

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

        normalVelocity
        {
            type            uniformFixedValue;
            uniformValue    sine;
            uniformValueCoeffs
            {
                frequency 1;
                amplitude table
                (
                    (   0     0)
                    (  10 0.025)
                    (1000 0.025)
                );
                scale     (0 1 0);
                level     (0 0 0);
            }
        }

        value           uniform (0 0 0);
    }

rather than using

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

        normalVelocity
        {
            type            oscillatingFixedValue;
            refValue        uniform (0 1 0);
            offset          (0 -1 0);
            amplitude       table
            (
                (   0     0)
                (  10 0.025)
                (1000 0.025)
            );
            frequency       constant 1;
        }

        value           uniform (0 0 0);
    }
2016-02-09 08:57:42 +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
Henry Weller
923f39a9f8 tutorials/incompressible/nonNewtonianIcoFoam: Added pFinal 2016-02-02 20:06:08 +00:00
Henry Weller
451cc4e620 fieldAverage: Added periodicRestart option and rationalized naming of restart options
When restarting form a previous calculation, the averaging is continuous or
    may be restarted using the \c restartOnRestart option.

    The averaging process may be restarted after each calculation output time
    using the \c restartOnOutput option or restarted periodically using the \c
    periodicRestart option and setting \c restartPeriod to the required
    averaging period.

    Example of function object specification:
    \verbatim
    fieldAverage1
    {
        type fieldAverage;
        functionObjectLibs ("libfieldFunctionObjects.so");
        ...
        restartOnRestart  false;
        restartOnOutput   false;
        periodicRestart false;
        restartPeriod   0.002;
        fields
        (
            U
            {
                mean            on;
                prime2Mean      on;
                base            time;
                window          10.0;
                windowName      w1;
            }
            p
            {
                mean            on;
                prime2Mean      on;
                base            time;
            }
        );
    }
    \endverbatim

    \heading Function object usage
    \table
        Property        | Description           | Required    | Default value
        type            | type name: fieldAverage | yes |
        restartOnRestart  | Restart the averaging on restart | no | no
        restartOnOutput   | Restart the averaging on output | no | no
        periodicRestart | Periodically restart the averaging | no | no
        restartPeriod   | Periodic restart period | conditional |
        fields          | list of fields and averaging options | yes |
    \endtable
2016-01-30 11:23:38 +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
Henry Weller
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
5c6d420ca0 prghPressureFvPatchScalarField: Updated documentation
Corrected rho name specification.
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1956
2015-12-17 12:20:10 +00:00
Henry Weller
f23ab37eca tutorials/incompressible/pimpleDyMFoam/wingMotion/Allrun: Updated to handle missing polyMesh dir 2015-12-14 10:22:06 +00:00
Chris Greenshields
fc4e7db579 compressibleInterFoam: updated tutorials with 0.org directory 2015-12-11 12:55:46 +00:00
Henry Weller
2dbf835485 reactingTwoPhaseEulerFoam: Added thermal wall-functions with support for wall-boiling
Code and tutorial case provided by Juho Peltola
2015-11-27 18:51:23 +00:00
Henry Weller
660b54b728 moveDynamicMesh: Iterate over mesh.update() according to the PIMPLE settings
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1926
2015-11-25 16:54:14 +00:00
Henry Weller
85c79d8398 fvOptions: New buoyancyForce and buoyancyEnergy
Provides run-time selection of buoyancy sources for compressible solvers

Replaces the built-in buoyancy sources in XiFoam, reactingFoam and
rhoReactingFoam.

e.g. in constant/fvOptions specify

momentumSource
{
    type            buoyancyForce;

    buoyancyForceCoeffs
    {
        fieldNames      (U);
    }
}

and optionally specify the buoyancy energy source in the enthalpy
equation:

energySource
{
    type            buoyancyEnergy;

    buoyancyEnergyCoeffs
    {
        fieldNames      (h);
    }
}

or internal energy equation

energySource
{
    type            buoyancyEnergy;

    buoyancyEnergyCoeffs
    {
        fieldNames      (e);
    }
}
2015-11-23 09:29:10 +00:00
Henry Weller
62945ab1ea chemFoam: Remove unused turbulence model 2015-11-21 18:30:35 +00:00
Henry Weller
093b4aade6 chemkinReader: Add support for reading transport properties from dictionary
Note the dictionary is in OpenFOAM format not CHEMKIN.

Patch provided by Daniel Jasinski
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1888
2015-11-20 18:55:36 +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
c1c7b30220 tutorials/combustion/fireFoam/les/smallPoolFire.*: Minor correction 2015-11-15 18:10:28 +00:00
Henry Weller
f4695953aa tutorials/combustion/fireFoam/les/oppositeBurningPanels: Improved schemes and BCs 2015-11-14 19:31:06 +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
Chris Greenshields
8726cf20a0 blockMeshDict files: removed redundant location entries in FoamFile headers 2015-11-13 16:09:57 +00:00
Henry Weller
58127cae71 tutorials/mesh/foamyHexMesh: Update location of blockMeshDict 2015-11-13 15:48:39 +00:00