Commit graph

115 commits

Author SHA1 Message Date
Henry Weller
c47adcc10d src/finiteVolume/interpolation: Modified code to conform to OpenFOAM coding standards
declaring the namespace in function definitions in C files
2015-12-09 22:23:38 +00:00
Henry Weller
649c58423a reactingMultiphaseEulerFoam: Correct and test LTS support 2015-12-09 15:39:45 +00:00
Henry Weller
efa28279b8 fvPatchFields, fvsPatchFields, pointPatchFields: specifically declare namespace of functions
It is better to declare the namespace of each function in the C file
rather than "open" the namespace as this may lead to inconsistencies
between the declaration in the H files and definition in the C file.
2015-12-08 22:29:05 +00:00
Henry Weller
3e6f38f1a8 uniformInletOutletFvPatchField: Update refValue in updateCoeffs
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1943
2015-12-08 14:24:12 +00:00
Henry Weller
a2fbd855a6 fanFvPatchField, freestreamPressureFvPatchScalarField: added write function
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1942
2015-12-08 11:57:37 +00:00
Henry Weller
2d08d8dc82 fvcAverage: Removed temporary Info statement 2015-12-07 22:38:33 +00:00
Henry Weller
9a536b02a7 fvOptions: Reorganized and updated to simplify use in sub-models and maintenance
fvOptions are transferred to the database on construction using
fv::options::New which returns a reference.  The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.

The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage.  The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
2015-12-02 11:49:52 +00:00
Henry Weller
528cc5622b fvPatchFields/derived/fixedProfile: New BC which applies the specified 1D profile
This is useful when applying an experimentally obtained profile as an
inlet condition:

    Example of the boundary condition specification:
    \verbatim
    myPatch
    {
        type            fixedProfile;
        profile    csvFile;

        profileCoeffs
        {
            nHeaderLine         0;          // Number of header lines
            refColumn           0;          // Reference column index
            componentColumns    (1 2 3);    // Component column indices
            separator           ",";        // Optional (defaults to ",")
            mergeSeparators     no;         // Merge multiple separators
            fileName            "Uprofile.csv";  // name of csv data file
            outOfBounds         clamp;      // Optional out-of-bounds handling
            interpolationScheme linear;     // Optional interpolation scheme
        }
        direction        (0 1 0);
        origin           0;
    }
    \endverbatim

or a simple polynomial profile:

    Example setting a parabolic inlet profile for the PitzDaily case:
    \verbatim
    inlet
    {
        type            fixedProfile;

        profile         polynomial
        (
            ((1 0 0)        (0 0 0))
            ((-6200 0 0)    (2 0 0))
        );
        direction       (0 1 0);
        origin          0.0127;
    }
    \endverbatim

Based on code provided by Hassan Kassem:
http://www.openfoam.org/mantisbt/view.php?id=1922
2015-11-24 16:35:45 +00:00
Henry Weller
9168a4abf9 fvPatchFields: Rationalized the construction of DataEntry values 2015-11-24 16:35:11 +00:00
Henry Weller
151e1fafff Update header 2015-11-22 17:28:37 +00:00
Henry Weller
d870ca5be5 Corrected typo: Tranform -> Transform
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1923
2015-11-22 17:27:44 +00:00
Henry Weller
6a80fbf792 advectiveFvPatchField: Added support localEuler ddt (LTS)
This functionality is inherited by the waveTransmissive BCs
2015-11-18 09:33:13 +00:00
Henry Weller
742f2da0fa Updated header 2015-11-17 12:07:33 +00:00
Henry Weller
22fd0edd59 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
ef287b7640 steadyStateDdtScheme: Correct dimensions of fvcDdtUfCorr
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1913
2015-11-13 14:33:34 +00:00
Henry Weller
10aea96ae5 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
Henry Weller
cad9467374 src/finiteVolume: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 16:55:03 +00:00
Henry Weller
1944b09bb5 SolverPerformance: Complete the integration of the templated SolverPerformance<Type>
Now solvers return solver performance information for all components
with backward compatibility provided by the "max" function which created
the scalar solverPerformance from the maximum component residuals from
the SolverPerformance<Type>.

The residuals functionObject has been upgraded to support
SolverPerformance<Type> so that now the initial residuals for all
(valid) components are tabulated, e.g. for the cavity tutorial case the
residuals for p, Ux and Uy are listed vs time.

Currently the residualControl option of pimpleControl and simpleControl
is supported in backward compatibility mode (only the maximum component
residual is considered) but in the future this will be upgraded to
support convergence control for the components individually.

This development started from patches provided by Bruno Santos, See
http://www.openfoam.org/mantisbt/view.php?id=1824
2015-11-10 08:50:11 +00:00
Henry Weller
29111c3723 fvcAverage: Minor improvement to the evaluation of the internalField 2015-11-08 12:25:30 +00:00
Henry Weller
03494fef5d Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
Henry Weller
678a7a5202 Updated headers 2015-10-30 21:37:59 +00:00
Henry Weller
1e4a07c714 Updated docs for Doxygen: '<' -> '\<' and '>' -> '\>' 2015-10-30 21:37:03 +00:00
Henry Weller
033e73e3f9 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
0e5596879e uniformFixedValueFvPatchField: Remove the inconsistent optional "value"
read in the construction from dictionary.

It is important that the initial value is obtained from the table
provided to avoid the user having to evaluate a consistent one or risk
the code crashing from a very sudden change in the value.
2015-10-13 22:28:26 +01:00
Henry Weller
f4b648e1cb fvSchemes: setFluxRequired now adds entry quietly 2015-10-12 21:26:40 +01:00
Henry Weller
289d67f825 Removed unnecessary "else if" conditions
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1858
2015-09-28 22:18:39 +01:00
Henry Weller
12a8274f8a activePressureForceBaffleVelocityFvPatchVectorField: Corrected implementation and documentation
Updated files provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1793
2015-08-24 18:36:57 +01:00
Henry Weller
2916f043b3 uniformFixedGradientFvPatchField: Corrected constructor
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1827
2015-08-13 19:08:52 +01:00
Henry Weller
32b7a26b72 transformFvPatchField: Specialize valueInternalCoeffs for scalar
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1820
2015-08-10 12:06:13 +01:00
Henry Weller
00b6400860 Removed trailing whitespace
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1805
2015-08-01 15:43:05 +01:00
Henry Weller
609f43ec69 waveSurfacePressureFvPatchScalarField: Upgrade timeScheme -> ddtScheme 2015-07-24 11:30:48 +01:00
Henry Weller
8325e8b91f fvSchemes: Handle merging of fluxRequired settings
during re-reading of the fvSchemes dictionary
2015-07-24 11:30:08 +01:00
Henry Weller
36ae54f803 Resolve various unimportant warning messages from Gcc, Clang and Icpc 2015-07-19 11:31:49 +01:00
Henry Weller
d6e6e2bf70 Remove unnecessary use of keyword "explicit" 2015-07-17 18:26:58 +01:00
Henry Weller
e6e7820ae5 Upgrade Intel C++ compiler to icpc (ICC) 15.0.3 20150407
This resolves a whole range of issues and work-arounds with earlier
releases.  This version of icpc is more or less compatible with the
latest gcc and clang compilers and only required one hack to avoid
warnings from PackedBoolList.H.
2015-07-17 16:50:40 +01:00
Henry Weller
77bf182edc Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
Henry Weller
dc0523643f 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
65d9aacd22 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
30af1cdbc4 cellCoBlended: New surfaceInterpolation scheme based on CoBlended using the cell-based Courant number
This scheme is equivalent to the CoBlended scheme except that the Courant
    number is evaluated for cells using the same approach as use in the
    finite-volume solvers and then interpolated to the faces rather than being
    estimated directly at the faces based on the flux.  This is a more
    consistent method for evaluating the Courant number but suffers from the
    need to interpolate which introduces a degree of freedom.  However, the
    interpolation scheme for "Co" is run-time selected and may be specified in
    "interpolationSchemes" and "localMax" might be most appropriate.

    Example of the cellCoBlended scheme specification using LUST for Courant
    numbers less than 1 and linearUpwind for Courant numbers greater than 10:
    \verbatim
    divSchemes
    {
        .
        .
        div(phi,U)  Gauss cellCoBlended 1 LUST grad(U) 10 linearUpwind grad(U);
        .
        .
    }

    interpolationSchemes
    {
        .
        .
        interpolate(Co) localMax;
        .
        .
    }
    \endverbatim
2015-07-14 13:39:57 +01:00
Henry Weller
0d024dd37d Removed use of the deprecated "register" keyword
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340.html
2015-06-30 10:26:44 +01:00
Henry Weller
b8465c8469 localEulerDdt: Removed unnecessary template qualifiers 2015-06-29 14:18:24 +01:00
Henry Weller
44c040dfda LTS: Simplify the selection of LTS operation 2015-06-29 11:53:20 +01:00
Henry Weller
8d962c97ad Update header 2015-06-28 21:43:21 +01:00
Henry Weller
8729455377 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
d314ed3b4a LTS, MULES and sub-cycling: Improved the handling of the rSubDeltaT field 2015-06-26 21:58:27 +01:00
Henry Weller
2ac4a4e84c 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
27d956d278 reactingTwoPhaseEulerFoam: Construct MRF and fvOptions in phaseSystem 2015-06-25 19:22:47 +01:00
Henry Weller
0575911f94 LimitedScheme/LimitFuncs: Make the limiter function for symmTensor consistent with tensor
Use the trace as the limiter function for both symmTensor and tensor to
bound the normal stresses rather than the shear stresses.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1751
2015-06-18 11:45:40 +01:00
Henry
2b9a2adf8c 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
8b7e02167f MRFZone: rationalize to allow support for general frame acceleration 2015-05-29 15:31:53 +01:00