Commit Graph

2306 Commits

Author SHA1 Message Date
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
Henry Weller
d84db55bd4 tutorials/combustion/fireFoam/les/smallPoolFire?D: Improved outlet BC
Now applies totalPressure and pressureInletOutletVelocity with hRef set
to the height of the outlet plane.
2015-11-13 14:17:07 +00:00
Henry Weller
fb2eacf2f1 tutorials/combustion/fireFoam/les/smallPoolFire?D: Improved outlet BC
Now applies totalPressure and pressureInletOutletVelocity with hRef set
to the height of the outlet plane.
2015-11-13 14:15:19 +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
f5a3702e58 Corrected headers 2015-10-27 16:26:40 +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
f3d4e51242 prghTotalPressureFvPatchScalarField: Total pressure BC for p_rgh
Resolves some stability issues with the outlet of multiphase problems.
2015-10-14 13:15:17 +01:00
Henry Weller
d3b8af8547 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection: Add missing relaxation entry 2015-10-13 22:31:03 +01:00
Henry Weller
81e083fc59 wingMotion tutorials: added missing ';' 2015-10-01 14:07:29 +01:00
Henry Weller
29cea780e1 reactingMultiphaseEulerFoam: Optimize the handling of optional forces 2015-09-18 18:55:21 +01:00
Henry Weller
c06eb9be09 reactingMultiphaseEulerFoam: Removed incomplete tutorial cases 2015-09-11 17:53:21 +01:00
Henry Weller
85b27f674f reactingMultiphaseEulerFoam: New Euler-Euler multiphase solver
Supporting any number of phases with heat and mass transfer, phase-change and reactions
2015-09-11 15:33:12 +01:00
Henry Weller
a159722136 tutorials/multiphase/twoPhaseEulerFoam/laminar/fluidisedBed: Add missing file 2015-08-29 00:02:44 +01:00
Henry Weller
6f6c2ab024 twoPhaseEulerFoam: Added support for alphat and thermal wall-functions 2015-08-26 18:06:43 +01:00
Henry Weller
86cc19bd8b reactingTwoPhaseEulerFoam: Added support for thermal diffusivity and thermal wall-functions 2015-08-22 18:09:44 +01:00
Henry Weller
da2e7bdbbd tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection: New tutorial to demonstrate steam condensation 2015-08-20 15:29:44 +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
365f9b0006 dimensioned<Type>: Added constructor from name, dimensions and dictionary
to simplify construction of dimensionedScalar properties and avoid the
duplication of the name string in the constructor call.
2015-07-21 12:57:07 +01:00
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
eda10cde43 Updated headers 2015-07-15 21:58:29 +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
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
722a824b44 tutorials/compressible/rhoSimpleFoam/squareBend: update application 2015-07-05 18:23:05 +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
138c34fb0f tutorials/multiphase/.*woPhaseEulerFoam/: Change outlet p_rgh BC to prghPressure 2015-06-29 19:36:57 +01:00
Henry Weller
b719556f63 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/bubbleColumnEvaporatingReacting: Correct initial pressure to 10bar 2015-06-29 16:09:33 +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
af8185c0a6 reactingParcelFoam, coalChemistryFoam: Added LTS support
Replaces LTSReactingParcelFoam and LTSCoalChemistryFoam

    Select LTS via the ddtScheme:

        ddtSchemes
        {
            default         localEuler rDeltaT;
        }
2015-06-28 11:01:04 +01:00
Henry Weller
64e831fea0 reactingFoam: Added run-time selectable LTS support replacing LTSReactingFoam
Select LTS via the ddtScheme:

    ddtSchemes
    {
        default         localEuler rDeltaT;
    }
2015-06-27 22:35:49 +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 Weller
ca81d01ca8 LTSReactingParcelFoam: Minor improvement 2015-06-27 12:30:10 +01:00
Henry Weller
e00ae44ad0 interFoam family: Added run-time selectable LTS support
LTS is selected by the ddt scheme e.g. in the
tutorials/multiphase/interFoam/ras/DTCHull case:

ddtSchemes
{
    default         localEuler rDeltaT;
}

LTSInterFoam is no longer needed now that interFoam includes LTS
support.
2015-06-26 18:32:20 +01:00
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 Weller
8293227964 Rationalized the LTS solvers 2015-06-16 12:42:37 +01:00
Henry Weller
eb53f9bdf0 reactingTwoPhaseEulerFoam: New twoPhaseEulerFoam supporting mass-transfer and reactions
Multi-species, mass-transfer and reaction support and multi-phase
structure provided by William Bainbridge.

Integration of the latest p-U and face-p_U algorithms with William's
multi-phase structure is not quite complete due to design
incompatibilities which needs further development.  However the
integration of the functionality is complete.

The results of the tutorials are not exactly the same for the
twoPhaseEulerFoam and reactingTwoPhaseEulerFoam solvers but are very
similar.  Further analysis in needed to ensure these differences are
physical or to resolve them; in the meantime the twoPhaseEulerFoam
solver will be maintained.
2015-06-12 09:52:17 +01:00
Henry
61e52b2cb4 twoPhaseEulerFoam: Move the residualAlpha used for drag into the phaseModel
This is necessary to guarantee consistency between the residualAlpha
used for drag and buoyancy in a multi-phase system
2015-06-07 18:55:24 +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
Henry
0d69b108a2 tutorials/lagrangian/MPPICFoam: Remove spurious phi specifications in p BCs 2015-05-28 17:09:55 +01:00
Henry
1568641986 DPMFoam, MPPICFoam: Corrected contiuousPhaseName -> continuousPhaseName
Resolves second part of http://www.openfoam.org/mantisbt/view.php?id=1717
2015-05-28 17:01:18 +01:00