1763 Commits

Author SHA1 Message Date
44eca0bb79 doc/Guides: Updated 2017-07-25 14:18:58 +01:00
b11b28db06 surfaceFilmModels::transferModelList: Resolve problem with the Intel C++ compiler 2017-07-25 12:19:37 +01:00
d09b89d0b2 PVReaders: Update C++ standard specification to 11 2017-07-25 00:03:31 +01:00
3fba921563 POSIX::fileStat: Avoid warning from gcc 2017-07-25 00:03:09 +01:00
aa7f6d12b7 PVReaders: Simplified, rationalized and reorganized source tree and build scripts 2017-07-24 16:57:13 +01:00
5cf5f8d783 PV3Readers: Removed
ParaView version 3 is no longer supported, upgrade to ParaView-5.4.0.
2017-07-24 16:20:40 +01:00
d1b59e976d MULES: Improve handling of very small geometries 2017-07-24 10:35:54 +01:00
2fb9ffc651 foamJob: Updated to support collated parallel IO
Resolves bug-report https://bugs.openfoam.org/view.php?id=2632
2017-07-24 08:22:11 +01:00
c6f365f6cc refineMesh: Correct parallel operation
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2621
2017-07-22 22:39:40 +01:00
0c4175bec7 surfaceFilmModels: 0.333 -> 1.0/3.0 and 0.666 -> 2.0/3.0
Resolves bug-report https://bugs.openfoam.org/view.php?id=2629
2017-07-21 17:38:31 +01:00
53a524a280 Simplified scalar(0.0) -> scalar(0) and scalar(1.0) -> scalar(1) 2017-07-21 17:37:37 +01:00
2c3826ebd9 paraFoam: Render on refresh
The "Refresh Times" button now triggers a re-render of the visualisation
as well as scanning for new times and fields. This prevents old
overwritten data from remaining on screen despite everything else having
been updated.
2017-07-21 14:13:00 +01:00
68089dd574 paraFoam: Updated ParaView to version 5.4.0
ParaView has been updated to version 5.4.0. The C++ panel has been
deleted and replaced with a panel based on the new(er) XML API. This
reader works for ParaView-4.0.1 and newer. The ParaView 3 reader remains
unchanged.

Update issues have also been fixed. All the time directories are now
scanned for fields and clouds when filling the selection lists. This
stops fields from disappearing when the time is changed. The scan is
only done on startup and when the refresh button is pressed.

The list of available Lagrangian fields also now shows a combined set of
all the clouds. Previously, only fields from the first cloud were shown.
If a field does not apply to all the clouds, ParaView will display it's
name in the dropdown menu with a "(partial)" qualifier.

Some undocumented and incomplete bits of code, which were not being
compiled, have been removed.
2017-07-21 12:05:57 +01:00
1937f7bca2 Radiation: Renamed Qin -> qin, Qem -> qem for consistency with qr
See also commit 8aac0a1808
2017-07-21 09:25:52 +01:00
3a4dc4d209 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-07-20 18:16:43 +01:00
14473273e9 compressibleInterFilmFoam::VoFSolidificationMeltingSource: New VoF solidification fvOption 2017-07-20 18:15:27 +01:00
e879da1341 lagrangian: Fixed infinite loops
Tracking through an inverted region of the mesh happens in a reversed
direction relative to a non-inverted region. Usually, this allows the
tracking to propagate normally, regardless of the sign of the space.
However, in rare cases, it is possible for a straight trajectory to form
a closed loop through both positive and negative regions. This causes
the tracking to loop indefinitely.

To fix this, the displacement through inverted regions has been
artifically increased by a small amount (1% at the moment). This has the
effect that the change in track fraction over the negative part of the
loop no longer exactly cancels the change over the positive part, and
the track therefore terminates.
2017-07-19 16:56:58 +01:00
177d1d762c reactingOneDim: Correct reporting of temperature range in parallel
Patch Contributed by Karl Meredith, FM Global.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2621
2017-07-19 12:45:23 +01:00
bce6b7a728 foamSequenceVTKFiles: generalize method to list files chronologically
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2615
2017-07-18 15:25:48 +01:00
829a109b2f New BCs: Updated for clang 2017-07-17 17:02:42 +01:00
01fe45deef New BCs: Updated for single-precision compilation 2017-07-17 16:54:48 +01:00
40ddc72045 buoyantPimpleFoam: Added support for incompressible closed-volume simulations
Resolves bug-report https://bugs.openfoam.org/view.php?id=2617
2017-07-17 16:48:27 +01:00
12d5d001d2 matchedFlowRateOutletVelocity: New flow-rate outlet BC
Velocity outlet boundary condition which corrects the extrapolated velocity
to match the flow rate of the specified corresponding inlet patch.
2017-07-17 15:48:39 +01:00
a10d2c3b3a swirlInletVelocity: New general swirl inlet BC
which support the specification of the individual velocity components (axial,
radial and tangential) as Function1s.
2017-07-17 15:47:24 +01:00
4fa0192e1d flowRateInletVelocity extrapolated: Removed reverse flow and correct only the normal component
Improved stability and convergence.
2017-07-17 12:18:47 +01:00
ba50e560aa flowRateInletVelocity, flowRateOutletVelocity BCs: Updated docs 2017-07-16 22:59:30 +01:00
ddc01e5b8c flowRateOutletVelocityFvPatchVectorField: Outlet equivalent of flowRateOutletVelocityFvPatchVectorField BC
Velocity outlet boundary condition which corrects the extrapolated velocity to
match the specified flow rate.
2017-07-16 21:36:32 +01:00
702a4274cd decompositionModel: Corrected support for "-case" option to decomposePar
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2610
2017-07-14 23:22:36 +01:00
549337c367 triSurfaceMesh: corrected parallel operation of 'file' specification
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2614
2017-07-14 12:38:21 +01:00
81c4f1ee8a lagrangian: Corrected patch data
The KinematicCloud::patchData method has been made consistent on moving
meshes and/or when the time-step is being sub-cycled.

It has also been altered to calculate the normal component of a moving
patch's velocity directly from the point motions. This prevents an
infinite loop occuring due to inconsistency between the velocity used to
calculate a rebound and that used when tracking.

Some minor style improvements to the particle class have also been made.
2017-07-14 09:46:23 +01:00
96b8cfc541 tmpNrc: Updated to use clone 2017-07-14 09:32:02 +01:00
11e4a71463 Function1: made the clone function pure virtual
Avoids potential problems with derived classes which do not define a clone function.
2017-07-13 23:24:14 +01:00
dee9b200eb snappyHexMeshDict: updated triSurface entries to logical format
in annotated file in snappyHexMesh application source directory.
2017-07-13 12:55:04 -05:00
fe3587305b etc/templates: updated triSurface entries to logical format
supported by commit 80e22788e4
2017-07-13 12:51:34 -05:00
8c5f4b36f8 tutorials: updated triSurface entries to logical format
supported by commit 80e22788e4
2017-07-13 12:47:34 -05:00
205ab925e5 swirlFlowRateInletVelocity: updated documentation 2017-07-13 17:05:44 +01:00
61459c0e7f Function1::ramp function: Added clone function 2017-07-13 17:04:33 +01:00
e119636ddb foamSearch: corrected message when keyword is not found 2017-07-13 10:53:20 -05:00
c3fd351234 flowRateFaceZone packaged function object: corrected Description 2017-07-13 10:49:41 -05:00
9baf360c4d Revert "interfaceHeight function object: added preconfigured file in etc"
This reverts commit 5436668030.
2017-07-13 10:44:20 -05:00
5436668030 interfaceHeight function object: added preconfigured file in etc 2017-07-13 10:40:23 -05:00
d04834ccfc setWaves: added Description in header 2017-07-13 10:27:25 -05:00
fc4101df16 cylindricalInletVelocityFvPatchVectorField: Rationalized naming convention
for consistency with other rotating BCs.
2017-07-13 16:09:11 +01:00
371bec2048 swirlFlowRateInletVelocity: Added support for specifying the origin and axis of rotation 2017-07-13 16:08:30 +01:00
593df2e92a Removed unintended integer divisions 2017-07-13 09:23:11 +01:00
2b05ad16b2 dragModels::Ergun: Corrected leading coefficient
Resolves bug report https://bugs.openfoam.org/view.php?id=2612
2017-07-13 08:47:47 +01:00
4d6a47972f surfaceFilmModels::phaseChange: Updated energy transfer for consistency energy equation
Currently heat is assumed to be removed by heat-transfer to the wall so the
energy remains unchanged by the phase-change.  This approximation can only be
removed if the interface to the transfer models is extended to support transfers
to and from the film AND the primary region.
2017-07-12 14:30:38 +01:00
b4e88f260b masterUncollatedFileOperation: Updated to avoid warning from clang 2017-07-11 15:11:38 +01:00
4e024cd274 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-07-10 12:26:35 +01:00
8b8e5b9492 functionObjects::residuals: Writes "N/A" for fields not solved
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2608
2017-07-10 12:23:52 +01:00
f3ef79b829 ParticleCollector: Prevented missing and duplicate collections
The particle collector was collecting some particles twice due to a
tolerance extending the tracked path. This has been removed. The new
tracking algorithm does not generate the same sorts of spurious
tolerance-scale motions that the old one did, so this extension of the
tracking path is unnecessary.

Some particles were also not being collected at all as they were hitting
a diagonal of the collection polygon and registering as not having hit
either of the adjacent triangles. The hit criteria has been rewritten. A
hit now occurs when the normals of the triangles created by joining the
intersection point with the polygon edges are all in the same direction
as the overall polygon normal. This calculation is not affected by the
polygon's diagonals.

The issue was raised by, and resolved with support from, Karl Meredith
at FM Global.

This resolves bug-report https://bugs.openfoam.org/view.php?id=2595
2017-07-10 09:36:45 +01:00
e36f30d082 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-07-10 08:29:07 +01:00
784d28d440 thermoSingleLayer::q: Use a local "alpha" without hydrophilic/phobic adjustment
Resolves bug-report https://bugs.openfoam.org/view.php?id=2605
2017-07-10 08:25:09 +01:00
1888b122cc Bash [TAB] completion: deleted stray chars 2017-07-08 14:30:28 +01:00
de10a28729 Bash [TAB] completion: support for -fileHandler and -time 2017-07-08 13:31:13 +01:00
ab06d3f14e masterOFstream: Rename private function to avoid clash with virtual function of same name 2017-07-07 21:04:03 +01:00
5f1a8f824b fileHandler::collatedFileOperation: Added useful message concerning threading control 2017-07-07 20:49:53 +01:00
611f2da837 decomposePar: Removed superfluous rmDir warning messages 2017-07-07 18:37:17 +01:00
61e9686651 Upgraded to OpenMPI-2.1.1 2017-07-07 18:02:39 +01:00
58ebb37b9b masterUncollatedFileOperation: Renamed filePath to avoid conflict with virtual function
Avoids warning from clang
2017-07-07 14:09:18 +01:00
7c301dbff4 Parallel IO: New collated file format
When an OpenFOAM simulation runs in parallel, the data for decomposed fields and
mesh(es) has historically been stored in multiple files within separate
directories for each processor.  Processor directories are named 'processorN',
where N is the processor number.

This commit introduces an alternative "collated" file format where the data for
each decomposed field (and mesh) is collated into a single file, which is
written and read on the master processor.  The files are stored in a single
directory named 'processors'.

The new format produces significantly fewer files - one per field, instead of N
per field.  For large parallel cases, this avoids the restriction on the number
of open files imposed by the operating system limits.

The file writing can be threaded allowing the simulation to continue running
while the data is being written to file.  NFS (Network File System) is not
needed when using the the collated format and additionally, there is an option
to run without NFS with the original uncollated approach, known as
"masterUncollated".

The controls for the file handling are in the OptimisationSwitches of
etc/controlDict:

OptimisationSwitches
{
    ...

    //- Parallel IO file handler
    //  uncollated (default), collated or masterUncollated
    fileHandler uncollated;

    //- collated: thread buffer size for queued file writes.
    //  If set to 0 or not sufficient for the file size threading is not used.
    //  Default: 2e9
    maxThreadFileBufferSize 2e9;

    //- masterUncollated: non-blocking buffer size.
    //  If the file exceeds this buffer size scheduled transfer is used.
    //  Default: 2e9
    maxMasterFileBufferSize 2e9;
}

When using the collated file handling, memory is allocated for the data in the
thread.  maxThreadFileBufferSize sets the maximum size of memory in bytes that
is allocated.  If the data exceeds this size, the write does not use threading.

When using the masterUncollated file handling, non-blocking MPI communication
requires a sufficiently large memory buffer on the master node.
maxMasterFileBufferSize sets the maximum size in bytes of the buffer.  If the
data exceeds this size, the system uses scheduled communication.

The installation defaults for the fileHandler choice, maxThreadFileBufferSize
and maxMasterFileBufferSize (set in etc/controlDict) can be over-ridden within
the case controlDict file, like other parameters.  Additionally the fileHandler
can be set by:
- the "-fileHandler" command line argument;
- a FOAM_FILEHANDLER environment variable.

A foamFormatConvert utility allows users to convert files between the collated
and uncollated formats, e.g.
    mpirun -np 2 foamFormatConvert -parallel -fileHandler uncollated

An example case demonstrating the file handling methods is provided in:
$FOAM_TUTORIALS/IO/fileHandling

The work was undertaken by Mattijs Janssens, in collaboration with Henry Weller.
2017-07-07 11:39:56 +01:00
aa1712de8f VoFPatchTransfer: Corrected for clang 2017-07-07 11:03:12 +01:00
3193fdb667 compressibleInterFilmFoam: Added to Allwmake 2017-07-07 09:27:35 +01:00
1ff5787000 foamyMesh: Fixed compilation failures
Resolves bug reports https://bugs.openfoam.org/view.php?id=2601 and
https://bugs.openfoam.org/view.php?id=2602
2017-07-05 17:21:19 +01:00
f628af00a8 compressibleInterFilmFoam::VoFPatchTransfer: Remove requirement for film to be present before VoF->film transfers occur 2017-07-05 16:49:44 +01:00
c1cb13307b interpolation: Optimise by using particle local coordinates
This change changes the point-tetIndices-face interpolation function
method to take barycentric-tetIndices-face arguments instead. This
function is, at present, only used for interpolating Eulerian data to
Lagrangian particles.

This change prevents an inefficiency in cellPointInterpolation whereby
the position of the particle is calculated from it's barycentric
coordinates, before immediately being converted back to barycentric
coordinates to perform the interpolation.
2017-07-05 14:38:15 +01:00
14cc288672 tetrahedron: triangle: Improved barycentric handling on tets and tris
Updated the tetrahedron and triangle classes to use the barycentric
primitives. Removed duplicate code for generating random positions in
tets and tris, and fixed bug in tri random position.
2017-07-05 14:37:53 +01:00
7a2c87c10f MPPIC: Optimised the averaging methods
The averaging methods now take the particle barycentric coordinates as
inputs rather than global positions. This change significantly optimises
Dual averaging, which is the most commonly used method. The run time of
the lagrangian/MPPICFoam/Goldschmidt tutorial has been reduced by a
factor of about two.
2017-07-05 14:27:20 +01:00
3a85d0c91a tetIndices: Removed duplicate logic
The logic for generating tetrahedra from a face base point and an offset
was duplicated in a few places. It is now confined to the tetIndices
class.
2017-07-05 14:24:37 +01:00
1b377dd439 interfaceHeight: Improved the description 2017-06-30 12:08:00 +01:00
d13285cf90 postProcessing: packaged interfaceHeight function object 2017-06-29 23:14:46 +01:00
b18b6e5568 tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater: Corrected Allclean
Resolves bug-report https://bugs.openfoam.org/view.php?id=2597
2017-06-29 16:49:36 +01:00
2d866e281b compressibleInterFilmFoam::VoFPatchTransfer: corrected parallel handling of all patch option 2017-06-28 15:03:40 +01:00
0c24327b32 functionObjects::fieldMinMax: corrected parallel operation of the file logging 2017-06-28 14:20:28 +01:00
791cc32c45 kinematicSingleLayer: Updated primaryMassTrans() 2017-06-28 11:25:38 +01:00
2a6601e1ca surfaceFilmModels::transferModels: Now defaults to a null list for backward-compatibility 2017-06-27 21:45:53 +01:00
d74f354f0c compressibleInterFilmFoam: Experimental VoF solver supporting VoF<->film transfer 2017-06-27 15:55:43 +01:00
9a4851faf9 lagrangian::InjectionModels: Corrected documentation 2017-06-27 08:24:18 +01:00
ed8538a85c changeDictionary: Added time-loop
Resolves feature request https://bugs.openfoam.org/view.php?id=2569
2017-06-26 19:12:03 +01:00
21aeea88a4 saturationModels::function1: New Function1 Tsat model
based on code contributed by Juho Peltola, VTT.

Resolves contribution request https://bugs.openfoam.org/view.php?id=2573
2017-06-26 17:36:10 +01:00
47f64c6ed7 reactingEulerFoam: Bug fix to reactionsource terms
Fixed reaction source terms in the energy and species fraction equations
by multiplying by the phase fraction.

Resolves bug report https://bugs.openfoam.org/view.php?id=2591
2017-06-26 17:05:35 +01:00
5caadae42b reactingMultiphaseEulerFoam: Limited phase-fractions
for consistency with reactingTwoPhaseEulerFoam and to ensure correct operation
of models requiring formal boundedness of phase-fractions.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2589
2017-06-26 16:24:57 +01:00
0f50efd333 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-06-26 14:13:11 +01:00
38dd1a845d TDACChemistryModel: improved reporting of CPU time
Added a grow time and better allocate the CPU time to either add or grow.  This
gives much more information to the user and helps changing the settings
accordingly.

Patch contributed by Francesco Contino
2017-06-26 14:09:12 +01:00
4cb47940e0 Bash [TAB] completion: fix for filenames with odd chars
Resolves bug-report https://bugs.openfoam.org/view.php?id=2571
2017-06-26 13:03:51 +01:00
53f0c26cf0 chtMultiRegionSimpleFoam: Corrected handling of momentum residuals
Patch contributed by Bruno Santos, resolves bug-report https://bugs.openfoam.org/view.php?id=2585
2017-06-25 19:27:04 +01:00
f6faada426 foamDebugSwitches: Removed, no longer needed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2590
2017-06-23 09:00:44 +01:00
fd6a4d02cb TDACChemistryModel::DRG: Corrected comments
Patch contributed by Francesco Contino
2017-06-23 08:17:45 +01:00
e8daaa5c76 compressibleInterFoam: Improved mass conservation
using the continuity error correction formulation developed for
twoPhaseEulerFoam and reactingEulerFoam.
2017-06-22 14:42:36 +01:00
7bdbab7f4e Rationalize the "pos" function
"pos" now returns 1 if the argument is greater than 0, otherwise it returns 0.
This is consistent with the common mathematical definition of the "pos" function:

https://en.wikipedia.org/wiki/Sign_(mathematics)

However the previous implementation in which 1 was also returned for a 0
argument is useful in many situations so the "pos0" has been added which returns
1 if the argument is greater or equal to 0.  Additionally the "neg0" has been
added which returns 1 if if the argument is less than or equal to 0.
2017-06-22 14:32:18 +01:00
c7d9c6d17d CollidingCloud: Allow instantiation of the NoCollision model for steady-state operation 2017-06-19 15:38:46 +01:00
45ecfbde86 DimensionedField: Correct database registration of fields created with new names 2017-06-18 20:35:20 +01:00
77ade5a706 reactingEulerFoam::IsothermalPhaseModel: Added support for isothermal compressible flow
Based on patch contributed by Ronald Oertel, HZDR
Resolves bug-report https://bugs.openfoam.org/view.php?id=2583
2017-06-15 16:43:04 +01:00
ad780c1e21 Bash [TAB] completion: enabled for new -list* options
see commit a4e755c0dc
2017-06-13 19:02:35 +01:00
ef808dea7b foamCloneCase: added -template option to search for source cases
in template directory paths, e.g. $FOAM_ETC/templates.

Earlier commit (f414afba2c) copies
scripts and 0.orig by default if present.
2017-06-13 18:33:07 +01:00
006fa62f53 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-06-13 16:53:14 +01:00
0d1c622906 codedFvOptionTemplate: updated 'setValue' to 'constrain'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2579
2017-06-13 16:52:16 +01:00
082e16b5e0 surfaceInterpolation::outletStabilised: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2574
2017-06-13 16:50:02 +01:00
f414afba2c foamCleanCase: copy scripts and 0.orig by default if present 2017-06-13 16:26:45 +01:00
5674a4a825 externalWallHeatFluxTemperature BC: Updated documentation 2017-06-13 09:12:41 +01:00
50cb9ea495 externalWallHeatFluxTemperature: Changed Ta entry to Function1 to support time variation
Temporal variation of Ta is generally more useful than spatial variation but
a run-time switch between the two modes of operation could be implemented in
needed.
2017-06-13 09:00:48 +01:00
af66eb78a6 listSwitches: moved from argList to debug
Initially the listSwitches functions depended directly on argList functionality
but this has now been factored out so that the listSwitches functions are more
general and require only debug functionality.
2017-06-11 23:18:34 +01:00
a4e755c0dc Replace foamList utility with -list.* options
Provides better context for the available boundary conditions, fvOptions,
functionObjects etc. and thus returns only those available to and compatible
with the particular application.

e.g.

pimpleFoam -help

Usage: pimpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -listFunctionObjects
                    List functionObjects
  -listFvOptions    List fvOptions
  -listRegisteredSwitches
                    List switches registered for run-time modification
  -listScalarBCs    List scalar field boundary conditions (fvPatchField<scalar>)
  -listSwitches     List switches declared in libraries but not set in
                    etc/controlDict
  -listTurbulenceModels
                    List turbulenceModels
  -listUnsetSwitches
                    List switches declared in libraries but not set in
                    etc/controlDict
  -listVectorBCs    List vector field boundary conditions (fvPatchField<vector>)
  -noFunctionObjects
                    do not execute functionObjects
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

pimpleFoam listTurbulenceModels

pimpleFoam -listTurbulenceModels
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : dev-39c46019e44f
Exec   : pimpleFoam -listTurbulenceModels
Date   : Jun 10 2017
Time   : 21:37:49
Host   : "dm"
PID    : 675
Case   : /home/dm2/henry/OpenFOAM/OpenFOAM-dev
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
SetNaN : Initialising allocated memory to NaN (FOAM_SETNAN).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Turbulence models
3
(
LES
RAS
laminar
)

RAS models
18
(
LRR
LamBremhorstKE
LaunderSharmaKE
LienCubicKE
LienLeschziner
RNGkEpsilon
SSG
ShihQuadraticKE
SpalartAllmaras
kEpsilon
kOmega
kOmegaSST
kOmegaSSTLM
kOmegaSSTSAS
kkLOmega
qZeta
realizableKE
v2f
)

LES models
10
(
DeardorffDiffStress
Smagorinsky
SpalartAllmarasDDES
SpalartAllmarasDES
SpalartAllmarasIDDES
WALE
dynamicKEqn
dynamicLagrangian
kEqn
kOmegaSSTDES
)

Further work will be needed to support the -listTurbulenceModels option in
multiphase solvers.
2017-06-10 21:34:27 +01:00
39c46019e4 pimpleControl: Corrected handling of finalInnerIter() 2017-06-06 10:18:02 +01:00
faa1ae242d tutorials/basic/potentialFoam: Changed "streamFunction" to "postProcess
-func streamFunction"
2017-06-05 11:47:18 +01:00
fb0d17b9f3 fvOptions: verticalDamping: Fixed parallel crash and clang warning. 2017-06-05 08:20:36 +01:00
b255302fba setWaves: Corrected handling of multiple wave-type patches 2017-06-05 08:20:36 +01:00
0b7ca1614f bin/foamSearch: correction, according to the recent change in argument order 2017-06-04 15:46:37 +01:00
2fc10e20bb compressibleInflowOutflow template case: added missing wallDist in fvSchemes 2017-06-04 12:33:22 +01:00
f1240a853c surfaceFind: output region/zone number of found face 2017-06-02 21:02:01 +01:00
97585eac40 Bash Completion: re-enabled directory completion for scripts, e.g. wmake 2017-06-02 19:44:16 +01:00
52482e5b8f fvDOM: renamed "convergence" -> "tolerance" for consistency with the rest of OpenFOAM
Maintains optional "convergence" keyword for backward-compatibility.
2017-05-31 23:12:54 +01:00
9213944091 Bash [TAB] completion: enabled for scripts in wmake/ dir 2017-05-31 19:28:28 +01:00
853fa4d5d3 Scripts in wmake: cleaned up options and -help 2017-05-31 16:54:49 +01:00
8d2e5ecae8 CourantNo: Removed check for nInternalFaces which is not correct in general in parallel 2017-05-31 10:37:11 +01:00
59bd947516 pressureControl: Enable max and min limits only if specified
The calculation of the max and min limits are now only performed if required,
i.e. specified in fvSolution.

Also resolves bug-report https://bugs.openfoam.org/view.php?id=2566
2017-05-31 10:35:05 +01:00
07a7513fae tutorials: interDyMFoam: Added DTCHull case with waves. This case has a
reduced mesh size and simulation time in comparison with the other
DTCHull cases, so the results will not be as accurate.
2017-05-31 10:09:14 +01:00
2aa78c6db3 tutorials: interFoam: Added 2D wave propagation case 2017-05-31 10:09:14 +01:00
e7e4683f96 waves: Added waves library and setWaves utility
This addition allows for theoretical wave models to be utilised for
initialisation and as boundary conditions. Multiple models can be used
simultaneously, each with differing phases and orientations. If multiple
models are used the shapes and velocities are superimposed.

The wave models are specified in the velocity boundary condition. The
phase fraction boundary condition and the set utility both look up the
velocity condition in order to access the wave model. A velocity
boundary may be specified as follows:

    inlet
    {
        type            waveVelocity;
        origin          (0 0 0);
        direction       (1 0 0);
        speed           2;
        waves
        (
            Airy
            {
                length      300;
                amplitude   2.5;
                depth       150;
                phase       0;
                angle       0;
            }
        );
        scale           table ((1200 1) (1800 0));
        crossScale      constant 1;
    }

The alpha boundary only requires the type, unless the name of the
velocity field is non-standard, in which case a "U" entry will also be
needed. The setWaves utility does not require a dictionary file; non-
standard field names can be specified as command-line arguments.

Wave models currently available are Airy (1st order) and Stokes2 (second
order). If a depth is specified, and it is not too large, then shallow
terms will be included, otherwise the models assume that the liquid is
deep.

This work was supported by Jan Kaufmann and Jan Oberhagemann at DNV GL.
2017-05-31 10:09:08 +01:00
ab2b257269 functionObjects/field: Added interfaceHeight
This function object reports the height of the interface above a set of
locations. It writes the height above the location, above the boundary,
and the point on the interface. It uses an integral approach, so if
there are multiple interfaces above or below a location, this method
will compute an average.

It can be enabled with the following entry in the system/controlDict:

    functions
    {
        interfaceHeight1
        {
            type           interfaceHeight;
            libs           ("libfieldFunctionObjects.so");
            alpha          alpha.water;
            locations      ((0 0 0) (10 0 0) (20 0 0));
        }
    }

This work was supported by Jan Kaufmann and Jan Oberhagemann at DNV GL.
2017-05-31 10:08:59 +01:00
813a67433a fvOptions: Added vertical damping
This fvOption applies an explicit damping force to components of the
vector field in the direction of gravity. Its intended purpose is to
damp the vertical motions of an interface in the region approaching an
outlet so that no reflections are generated. The level of damping is
specified by a coefficient, lambda, given in units of 1/s.

It can be enabled for a cellZone named "nearOutlet", by adding the
following entry to constant/fvOptions:

    verticalDamping1
    {
        type            verticalDamping;

        selectionMode   cellZone;
        cellZone        nearOutlet;

        lambda          [0 0 -1 0 0 0 0] 1;

        timeStart       0;
        duration        1e6;
    }

This work was supported by Jan Kaufmann and Jan Oberhagemann at DNV GL.
2017-05-31 09:39:44 +01:00
358770b860 levelSet: Fixed typo 2017-05-31 09:37:40 +01:00
d759f685ec Bash [TAB] completion: enabled for scripts in bin/ dir 2017-05-30 19:33:05 +01:00
0d617dd2be foamInstallationTest: deleted redundant, unmaintained and outdated script 2017-05-30 18:17:10 +01:00
bae3b5232c Scripts in bin: reverted to a "readlink -f" equivalent
command for recursive script
2017-05-30 13:30:49 +01:00
ceab23964d Scripts in bin: improved -help message for foamNew 2017-05-29 23:27:13 +01:00
4eaafb3e11 Scripts in bin: improved -help message for mpirunDebug 2017-05-29 23:06:29 +01:00
87eeba42c4 Scripts in bin: improved -help message for foamEtcFile 2017-05-29 23:05:38 +01:00
2d0ccb4f8e Scripts in bin: made -help flag message consistent 2017-05-29 22:02:05 +01:00
d3924a4bbf Scripts in bin: added -help and -0 on xargs 2017-05-29 21:53:02 +01:00
8f41539743 Scripts in bin: added -help to scripts 2017-05-29 21:24:29 +01:00
868a6ddfba Scripts in bin: deleted redundant scripts 2017-05-29 21:07:17 +01:00
400ce63f5f Scripts in bin: foamUpdateCaseFileHeader check on version number 2017-05-29 21:05:21 +01:00
1697274cc4 Scripts in bin: tidied functions 2017-05-29 21:03:54 +01:00
d8291f848d Scripts in bin: added -help to scripts 2017-05-29 21:02:16 +01:00
72d2f4c700 bin/foamPack.*: removed; replaced by git tagging and github packing 2017-05-29 18:15:49 +01:00
3d17169a3c Scripts in bin: improved script quality, option listing and
exit status on -help
2017-05-29 16:18:36 +01:00
33b88991da localEulerDdtScheme: Removed unused variable 2017-05-25 10:08:28 +01:00
58452c40bd localEulerDdtScheme: Completed and tested support for moving meshes
Now the "localEuler" ddt scheme does not apply any corrections due to
mesh-motion; the old-time volumes are not used and the mesh-motion flux is set
to zero.  A consequence of these changes is that boundedness of transported
scalars is ensured but mesh-motion causes a conservation error which will
reduces to zero as steady-state is approached and the mesh becomes stationary.
2017-05-25 09:38:33 +01:00
ff70ced474 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-05-23 09:54:56 +01:00
95fbff3e42 levelSetTemplates: Fix for gcc-4.8.5 2017-05-22 22:31:40 +01:00
1fc14370f8 thermalBaffle1DFvPatchScalarField: Changed name of "qr" relaxation factor to "qrRelaxation"
for consistency with externalWallHeatFluxTemperature boundary condition.
2017-05-22 13:07:03 +01:00
944fdd07ab vectorField: vector2DField: Added zip functions for stitching together a
vectorField or vector2DField from scalarField components. To do this
properly and have it work for field-type combinations would require some
new field function macros.
2017-05-22 12:58:25 +01:00
eaf77d61e6 cfdTools: Added a number of functions for performing volume averages of
discontinuous fields, with the discontinuity defined by a level set. The
functions do a proper integration of the discontinuous fields by tet-
and tri-cutting along the plane of the level set.
2017-05-22 12:29:27 +01:00
df1f4be854 primitiveShapes: Generalised tetrahedron and triangle cutting. Cuts are
now possible with level-sets as well as planes. Removed tetPoints class
as this wasn't really used anywhere except for the old tet-cutting
routines. Restored tetPointRef.H to be consistent with other primitive
shapes. Re-wrote tet-overlap mapping in terms of the new cutting.
2017-05-22 12:23:22 +01:00
ac6f881502 foamNewBC: correction to character match in sed
Thanks to Daisuke Hitomi for the change
2017-05-21 21:25:21 -04:00
a356adbfd8 Scripts in bin: improved script quality, option listing and
exit status on -help
2017-05-21 19:58:36 -04:00
8fe9195c5f Scripts in bin: reinstating foamEtcFile which was unintentionally removed 2017-05-21 19:52:45 -04:00
ea28ba014d Scripts in bin: minor cleanup of short scripts 2017-05-21 19:47:39 -04:00
55866c6937 Scripts in bin: removed outdated, unused scripts 2017-05-21 19:29:50 -04:00
1aa5d300a5 Scripts in bin: removed outdated, unused scripts 2017-05-21 19:29:06 -04:00
676bf64018 Scripts in bin: removed redundant job management scripts 2017-05-21 19:26:42 -04:00
be0fbcffaf Scripts in bin: removed deprecated, redundant residuals scripts 2017-05-21 19:23:48 -04:00
acf3ac4486 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-05-21 17:19:55 +01:00
f04f5b1563 chtMultiRegionSimpleFoam: Added residual convergence control
Patch contributed by Tobias Holzmann
Resolves contribution request https://bugs.openfoam.org/view.php?id=2548
2017-05-21 11:39:24 +01:00
51e2d077c7 postProcessing: reverted isosurface function to use isoSurface algorithm 2017-05-21 11:38:48 +01:00
11c0e19b0b postProcessing: reverted isosurface function to use isoSurface algorithm 2017-05-19 15:20:08 +01:00
4c49a1ed00 applications/test/liquid, applications/test/tensor: Updated
Resolves bug-report https://bugs.openfoam.org/view.php?id=2557
2017-05-19 08:28:00 +01:00
161b165a8c ISLList: Added missing #endif 2017-05-19 08:27:22 +01:00
4371e8504d fixedShearStressFvPatchVectorField: Removed duplicate "value" entry
Resolves bug-report https://bugs.openfoam.org/view.php?id=2556
2017-05-18 19:56:16 +01:00
3cf57145d1 sixDoFRigidBodyMotion: Corrected handling of acceleration update in first time-step
Resolves bug-report https://bugs.openfoam.org/view.php?id=2551
2017-05-18 16:30:08 +01:00
5a4a34e1f0 externalWallHeatFluxTemperatureFvPatchScalarField: Corrected decomposition mapping 2017-05-18 15:07:19 +01:00
f6a9aa063d codedFunctionObject.H: Removed spurious '"'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2554
2017-05-18 12:39:34 +01:00
79ff91350e rhoPimpleFoam: Improved support for compressible liquids
See tutorials/compressible/rhoPimpleFoam/RAS/squareBendLiq for exapmle

pimpleControl: Added SIMPLErho option for running in SIMPLE mode

with large time-step/Courant number and relaxation.  With this option the
density is updated from thermodynamics rather than continuity after the pressure
equation which is better behaved if pressure is relaxed and/or solved to a
loose relative tolerance.  The need for this option is demonstrated in the
tutorials/compressible/rhoPimpleFoam/RAS/angledDuct tutorial which is unstable
without the option.
2017-05-17 17:05:43 +01:00
8462549695 chtMultiRegionFoam::readSolidMultiRegionResidualControls: simplified
Patch contributed by Tobias Holzmann
2017-05-17 08:20:31 +01:00
e3fe02296e doxyDocDirs: Added support for HTTP servers
In addition to local Doxygen HTML directories an optional HTTP server directory
may be specified:

Documentation
{
    docBrowser      "firefox";
    doxyDocDirs
    (
        "$WM_PROJECT_USER_DIR/html"
        "~OpenFOAM/html"
        "$WM_PROJECT_DIR/doc/Doxygen/html"
        "http://cpp.openfoam.org/dev"
    );
    doxySourceFileExt "_8C.html";
}

from which the Doxygen documentation files may be obtained so now the "-doc"
command-line option may be used even if if Doxygen has not been run locally,
e.g.

pimpleFoam -doc
2017-05-15 15:33:51 +01:00
2e3ee64e04 chtMultiRegionFoam/solid/createSolidFields.H: Corrected construction of residualReachedSolid
Resolves part of bug-report https://bugs.openfoam.org/view.php?id=2548
2017-05-15 14:49:15 +01:00
72277ed677 Standardized names of extrude2DMesh and polyDualMesh application source files 2017-05-14 15:44:48 +01:00
90f39e0d89 Added Bash [TAB] completion to all OpenFOAM applications
When typing OpenFOAM commands, the bash completion system will
complete option names, e.g. -help, -parallel, etc.  After typing an
option that includes an argument, e.g. -case <dir>, completion will
adjust to the type of argument, e.g. present directories if the
argument is a directory.  Similarly, for applications with mandarory
file arguments, file (and directory) names will appear on the
completion list.
2017-05-14 10:53:27 +01:00
7e04e6b55f Reinstated operation of "-doc" and "-srcDoc"
Changed Doxyfile to generate descriptive names for the HTML files.
Added "-file" option to firefox to read the HTML file name from the command line.
2017-05-12 18:35:50 +01:00
04fb4c04f2 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-05-12 18:34:35 +01:00
e3dbff06e6 rhoPimpleDyMFoam: Updated transonic formulation for consistency with sonicFoam 2017-05-12 18:34:00 +01:00
d05ef92a47 Other utilities: standardised argument naming for files 2017-05-12 15:16:29 +01:00
0314fca170 Thermophysical utilities: standardised argument naming for files 2017-05-12 15:07:54 +01:00
da6b1bf361 Surface utilities: standardised argument naming and ordering
for input and output surface files
2017-05-12 14:43:10 +01:00
3aec2ad4ac src/functionObjects/field/Make/options updated 2017-05-12 11:07:50 +01:00
56283c39e5 functionObjects::wallHeatFlux: Added support for solid regions
Patch contributed by Stephan Goeke
2017-05-12 11:05:45 +01:00
29615cdd29 rhoPimpleFoam: Updated transonic option to be consistent with sonicFoam
Improves stability on start-up and allows running at slightly larger time-steps.
2017-05-12 11:04:38 +01:00
1bb7db2b79 CrankNicolsonDdtScheme: Corrected input of off-centering coefficient of 1 2017-05-11 19:33:01 +01:00
9fbe68fca6 Replacing const_cast lookupObject to lookupObjectRef 2017-05-11 14:42:59 +01:00
e8f9d6a7fe Replacing const_cast lookupObject to lookupObjectRef 2017-05-10 16:07:45 +01:00
382a0544fa objectRegistry: Added lookupObjectRef to obtain non-const access to objects
Allows simplification of BCs, functionObjects etc. which manipulate objects
which are transferred to and held by the objectRegistry.
2017-05-10 15:13:14 +01:00
093f23bef2 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-05-09 09:34:36 +01:00
8f2735ebba reconstructParMesh: Use tree method to improve speed and scaling
Based on development contributed by Paul Edwards, Intel.
2017-05-09 09:32:25 +01:00
80c101b14f Euler-Euler: turbulentDispersionModels: Burns: Minor re-formulation to
improve stability.

Resolves bug report <https://bugs.openfoam.org/view.php?id=2544>
2017-05-09 08:55:29 +01:00
130b051b54 tutorials/multiphase/interDyMFoam/RAS/DTCHull: Resolve stability issue caused by improvements to MULES 2017-05-08 22:44:14 +01:00
cd6dc3eb55 tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict: removed 2017-05-08 17:03:30 +01:00
bcebb18968 fvOptions/radiation: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2545
2017-05-08 17:02:28 +01:00
31862aeb6f bin/tools/pre-commit-hook: Improved handling of 'NULL'
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2540
2017-05-08 16:57:17 +01:00
8eb01d5424 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-05-05 18:31:21 +01:00
742446dffd flowRateFaceZone: faceZone configuration for the surfaceFieldValue functionObject 2017-05-05 18:29:14 +01:00
3a63925664 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-05-05 10:04:11 +01:00
58ca4199fc COPYING: Updated date and contact details 2017-05-05 09:04:55 +01:00
a884a44e47 chtMultiRegionFoam: Added support for residual convergence controls
Patch contributed by Tobias Holzmann
Resolves patch request https://bugs.openfoam.org/view.php?id=2524
2017-05-04 22:13:24 +01:00
6ff7de9c49 particle: Corrected the direction of tracking when passing through an
AMI. Applied the transformation.
2017-05-04 18:25:41 +01:00
53d3d6fb6f snappyHexMesh: Feature line tracking should end on AMI patches 2017-05-04 18:25:03 +01:00
d26c6c342b DPMDyMFoam, DPMDyMFoam: Corrected support for closed-domain simulations
Also added support for extrapolated pressure boundary conditions.
2017-05-04 09:39:23 +01:00
7863708489 reactingEulerFoam: Corrected definition of Reynolds number in Beetstra and Tenneti drag laws
Patch contributed by Alberto Passalacqua, Iowa State University
2017-05-03 19:18:30 +01:00
1328b5be0f surfaceTensionModels: Resolved warning from Clang concerning virtual function overload 2017-05-03 19:17:43 +01:00
ed10018d1f Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-05-03 15:03:46 +01:00
7acfa95ea0 thermophysicalModels: Corrected alphah to be enthalpy based
in

solidSpecie/transport/const/constAnIsoSolidTransport
solidSpecie/transport/const/constIsoSolidTransport
solidSpecie/transport/exponential/exponentialSolidTransport
solidSpecie/transport/polynomial/polynomialSolidTransport
specie/transport/logPolynomial/logPolynomialTransport
specie/transport/polynomial/polynomialTransport
specie/transport/sutherland/sutherlandTransport

Resolves bug-report https://bugs.openfoam.org/view.php?id=2532
2017-05-03 14:59:07 +01:00
d041f6e037 KinematicParcel: Bug fix. Restored steady particle tracking coupling.
This was broken when the minimum-step-fraction tolerance was removed.
2017-05-03 12:46:19 +01:00
a41f84e925 decomposePar: Added "-dict" option
to specify an alternative name and/or location for the decomposition dictionary.

Based on patch contributed by Niklas Nordin, Scania.
2017-05-03 10:35:08 +01:00
8514ff55d0 VoF solvers: New interfaceCompressionFvPatchScalarField BC and additional shear compression
Provides the additional compression necessary to ensure interface integrity
adjacent to a boundary at a low angle of incidence to the interface.  This is
particularly important when simulating planing hulls.
2017-04-30 19:38:47 +01:00
72ef348fdb Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-04-28 12:09:26 +01:00
759cbcce47 particle: Avoid warning about uninitialized edge 2017-04-28 12:08:21 +01:00
c9a6995082 tutorials/lagrangian: Added mixedVesselAMI2D
This tutorial demonstrates moving mesh and AMI with a Lagrangian cloud.
It is very slow, as interaction lists (required to compute collisions)
are not optimised for moving meshes. The simulation time has therefore
been made very short, so that it finishes in a reasonable time. The
mixer only completes a small fraction of a rotation in this time. This
is still sufficient to test tracking and collisions in the presence of
AMI and mesh motion.

In order to generate a convincing animation, however, the end time must
be increased and the simulation run for a number of days.
2017-04-28 11:00:31 +01:00
371762757d Lagrangian: Rewrite of the particle tracking algorithm to function in
terms of the local barycentric coordinates of the current tetrahedron,
rather than the global coordinate system.

Barycentric tracking works on any mesh, irrespective of mesh quality.
Particles do not get "lost", and tracking does not require ad-hoc
"corrections" or "rescues" to function robustly, because the calculation
of particle-face intersections is unambiguous and reproducible, even at
small angles of incidence.

Each particle position is defined by topology (i.e. the decomposed tet
cell it is in) and geometry (i.e. where it is in the cell). No search
operations are needed on restart or reconstruct, unlike when particle
positions are stored in the global coordinate system.

The particle positions file now contains particles' local coordinates
and topology, rather than the global coordinates and cell. This change
to the output format is not backwards compatible. Existing cases with
Lagrangian data will not restart, but they will still run from time
zero without any modification. This change was necessary in order to
guarantee that the loaded particle is valid, and therefore
fundamentally prevent "loss" and "search-failure" type bugs (e.g.,
2517, 2442, 2286, 1836, 1461, 1341, 1097).

The tracking functions have also been converted to function in terms
of displacement, rather than end position. This helps remove floating
point error issues, particularly towards the end of a tracking step.

Wall bounded streamlines have been removed. The implementation proved
incompatible with the new tracking algorithm. ParaView has a surface
LIC plugin which provides equivalent, or better, functionality.

Additionally, bug report <https://bugs.openfoam.org/view.php?id=2517>
is resolved by this change.
2017-04-28 09:25:10 +01:00
d2a62df7c4 externalWallHeatFluxTemperature: Added optional support for radiative flux to the outside
By specifying the optional outside surface emissivity radiative heat transfer to
the ambient conditions is enabled.  The far-field is assumed to have an
emissivity of 1 but this could be made an optional input in the future if
needed.

Relaxation of the surface temperature is now provided via the optional
"relaxation" which aids stability of steady-state runs with strong radiative
coupling to the boundary.
2017-04-26 12:32:23 +01:00
5173e6b88f turbulenceModels: The "<type>Coeffs" sub-dictionary is now optional 2017-04-21 18:22:46 +01:00
b0d13b51d8 surfaceLambdaMuSmooth: Added meshTools to link 2017-04-21 16:50:20 +01:00
37cd5434a6 Merged the edgeMesh library into the meshTools library 2017-04-21 10:38:53 +01:00
6a3409a60a motionSolver: Changed keyword to select the motionSolver type to "motionSolver"
with backward-compatibility so that the previous keyword "solver" is supported.
2017-04-20 15:59:34 +01:00
0a32d8a11e tutorials/mesh/blockMesh/pipe: Corrected constant/triSurface -> constant/geometry 2017-04-20 12:51:23 +01:00
f9db06441a searchableExtrudedCircle: Relocated to the edgeMesh library
Corrected the geometry directory name from "triSurface" to "geometry".

Resolves bug-report https://bugs.openfoam.org/view.php?id=2529
2017-04-20 12:46:50 +01:00
9ef718b265 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-04-20 11:34:55 +01:00
646a269217 SVD: Improved overflow/division protection.
Resolves bug report https://bugs.openfoam.org/view.php?id=2486
2017-04-20 10:54:08 +01:00
9801c25788 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
e2ccbbbbe5 codeTemplates: The copyright year is now set automatically 2017-04-18 11:01:41 +01:00
d96a221b31 Admin: fixed file permissions from wall boiling model refinements 2017-04-16 18:27:19 +01:00
9a06a1e42b fvOption::radiation: New fvOption providing the radiation source to the energy equation
Radiative heat transfer may now be added to any solver in which an energy
equation is solved at run-time rather than having to change the solver code.

For example, radiative heat transfer is now enabled in the SandiaD_LTS
reactingFoam tutorial by providing a constant/fvOptions file containing

radiation
{
    type            radiation;
    libs ("libradiationModels.so");
}

and appropriate settings in the constant/radiationProperties file.
2017-04-13 14:03:58 +01:00
045014d232 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
9ece58af9d radiationModel: Added "he" argument to the "Sh" function
for consistency with the other energy sources.
2017-04-13 13:57:33 +01:00
e3c67dc111 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
24b7901d09 FieldFieldFunctionsM: Corrected macro names and order for binary functions 2017-04-12 14:33:45 +01:00
95ab9a5f67 reactingtwoPhaseEulerFoam: Wall boiling model refinements
Patch contributed by Juho Peltola, VTT.

Resolves patch request https://bugs.openfoam.org/view.php?id=2521
2017-04-12 14:31:35 +01:00
0fa88b8de4 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection: Improved stability
Main changes in the tutorial:
  - General cleanup of the phaseProperties of unnecessary entries
  - sensibleEnthalpy is used for both phases
  - setTimeStep functionObject is used to set a sharp reduction in time step near the start of the injection
  - Monitoring of pressure minimum and maximum

Patch contributed by Juho Peltola, VTT.
2017-04-11 20:48:32 +01:00
bb8a3b2e87 DPMDyMFoam, MPPICDyMFoam: New dynamic mesh versions of DPMFoam and MPPICFoam
supporting both mesh morphing and topology change.
2017-04-11 10:33:34 +01:00
8aac0a1808 radiation: Corrected the name of the radiative heat flux from Qr to qr
The standard naming convention for heat flux is "q" and this is used for the
conductive and convective heat fluxes is OpenFOAM.  The use of "Qr" for
radiative heat flux is an anomaly which causes confusion, particularly for
boundary conditions in which "Q" is used to denote power in Watts.  The name of
the radiative heat flux has now been corrected to "qr" and all models, boundary
conditions and tutorials updated.
2017-04-08 22:23:40 +01:00
e72e7c5625 externalWallHeatFluxTemperatureFvPatchScalarField: Added "power" heat source option
by combining with and rationalizing functionality from
turbulentHeatFluxTemperatureFvPatchScalarField.
externalWallHeatFluxTemperatureFvPatchScalarField now replaces
turbulentHeatFluxTemperatureFvPatchScalarField which is no longer needed and has
been removed.

Description
    This boundary condition applies a heat flux condition to temperature
    on an external wall in one of three modes:

      - fixed power: supply Q
      - fixed heat flux: supply q
      - fixed heat transfer coefficient: supply h and Ta

    where:
    \vartable
        Q  | Power [W]
        q  | Heat flux [W/m^2]
        h  | Heat transfer coefficient [W/m^2/K]
        Ta | Ambient temperature [K]
    \endvartable

    For heat transfer coefficient mode optional thin thermal layer resistances
    can be specified through thicknessLayers and kappaLayers entries.

    The thermal conductivity \c kappa can either be retrieved from various
    possible sources, as detailed in the class temperatureCoupledBase.

Usage
    \table
    Property     | Description                 | Required | Default value
    mode         | 'power', 'flux' or 'coefficient' | yes |
    Q            | Power [W]                   | for mode 'power'     |
    q            | Heat flux [W/m^2]           | for mode 'flux'     |
    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
    thicknessLayers | Layer thicknesses [m] | no |
    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
    qr           | Name of the radiative field | no | none
    qrRelaxation | Relaxation factor for radiative field | no | 1
    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
    kappa        | Inherited from temperatureCoupledBase | inherited |
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            externalWallHeatFluxTemperature;

        mode            coefficient;

        Ta              uniform 300.0;
        h               uniform 10.0;
        thicknessLayers (0.1 0.2 0.3 0.4);
        kappaLayers     (1 2 3 4);

        kappaMethod     fluidThermo;

        value           $internalField;
    }
    \endverbatim
2017-04-08 22:06:41 +01:00
76579f5814 surfaceTensionModels::liquidProperties: New temperature-dependent surface tension model
Description
    Temperature-dependent surface tension model in which the surface tension
    function provided by the phase Foam::liquidProperties class is used.

Usage
    \table
        Property     | Description               | Required    | Default value
        phase        | Phase name                | yes         |
    \endtable

    Example of the surface tension specification:
    \verbatim
        sigma
        {
            type    liquidProperties;
            phase   water;
        }
    \endverbatim

for use with e.g. compressibleInterFoam, see
tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D
2017-04-05 14:36:11 +01:00
392d196bc8 template cases: added minor comment to blockMeshDict files 2017-04-04 12:36:50 +01:00
a13deb2cb5 template cases: added nCellsBetweenLevels to snappyHexMeshDict files 2017-04-04 12:33:17 +01:00
d9b9118ee4 template cases: added cylindrical background mesh in rotating geometry cases
snappyHexMesh produces a far better quality AMI interface using a cylindrical background mesh,
leading to much more robust performance, even on a relatively coarse mesh.  The min/max AMI
weights remain close to 1 as the mesh moves, giving better conservation.

The rotating geometry template cases are configured with a blockMeshDict file for a cylindrical
background mesh aligned along the z-axis.  The details of use are found in the README and
blockMeshDict files.
2017-04-04 12:29:04 +01:00
28df1a2d1d template cases: minor edit to README files 2017-04-04 11:48:29 +01:00
9004964df2 template cases: added pre-commented external patches to blockMeshDict
Uncommenting the patches provides a convenient way to use the patches in the background mesh
to define the external boundary of the final mesh.  Replaces previous setup with a separate
blockMeshDict.extPatches file.
2017-04-04 10:47:04 +01:00
4d5505d3ef surfaceFilmModels::perturbedTemperatureDependentContactAngleForce: New contact angle model
Combining a Function1 temperature dependency with a distributionModel stochastic
perturbation.
2017-04-04 00:09:38 +01:00
e045a7ef48 chemistrySolver::EulerImplicit: Corrected thermodynamics update to mass basis
Resolves bug-report https://bugs.openfoam.org/view.php?id=2513
2017-03-31 22:34:47 +01:00
a4eee79496 surfaceFilmModels::contactAngleForces: Provide empty list default value for zeroForcePatches 2017-03-31 22:33:41 +01:00
05d945c9ce surfaceFilmModels::contactAngleForce: Use of boundary values of surface tension and contact angle 2017-03-31 20:46:52 +01:00
51af7c4d78 functionObjects:functionObjects:: Corrected documentation 2017-03-31 20:46:03 +01:00
79a050573b tutorials/multiphase: Removed unnecessary specification of name and dimensions for transport properties 2017-03-31 17:11:30 +01:00
cf0b6126d0 surfaceTensionModels: New class hierarchy for run-time selectable surface tension models
These models have been particularly designed for use in the VoF solvers, both
incompressible and compressible.  Currently constant and temperature dependent
surface tension models are provided but it easy to write models in which the
surface tension is evaluated from any fields held by the mesh database.
2017-03-31 14:32:38 +01:00
54506f8307 faceOnlySet, uniformSet: Reset mesh.moving before returning
Resolves bug-report https://bugs.openfoam.org/view.php?id=2514
2017-03-29 23:15:32 +01:00
f00542be8c regionModels: Renamed owner->region in regionModel and owner->film in surfaceFilmModel
This update does not change the operation or controls of the regionModels, it is
to aid understanding of the code.
2017-03-28 08:30:46 +01:00
3506a1561e Updated header 2017-03-28 08:30:06 +01:00
e53048addc transportModels::interfaceProperties: simplified interface 2017-03-28 08:29:28 +01:00
a026c36309 reactingParcelFilmFoam tutorials: Updated contact-angle specification 2017-03-28 08:27:48 +01:00
91c452d8e5 surfaceFilmModels::contactAngleForces: Corrected headers 2017-03-27 20:07:47 +01:00
cb1faea3f4 surfaceFilmModels::contactAngleForce: Added temperatureDependentContactAngleForce
Created a base-class from contactAngleForce from which the
distributionContactAngleForce (for backward compatibility) and the new
temperatureDependentContactAngleForce are derived:

Description
    Temperature dependent contact angle force

    The contact angle in degrees is specified as a \c Function1 type, to
    enable the use of, e.g.  contant, polynomial, table values.

See also
    Foam::regionModels::surfaceFilmModels::contactAngleForce
    Foam::Function1Types

SourceFiles
    temperatureDependentContactAngleForce.C
2017-03-27 20:03:28 +01:00
81ee0951b4 reactingTwoPhaseEulerFoam: Small change to avoid warning from wmkdep 2017-03-24 17:27:43 +00:00
84e61bb18d Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-24 14:59:06 +00:00
78e40da8ac lagrangian::ThermoSurfaceFilm: Updated adhesion->splash transition Weber number
according to

        Bai et al, `Modelling of gasoline spray impingement', Atom. Sprays,
        vol 12, pp 1-27, 2002

Resolves bug-report https://bugs.openfoam.org/view.php?id=2478
2017-03-24 14:56:47 +00:00
244109d2f8 sloshingCylinder tutorial: sloshing in cylinder under zero gravity
Demonstrates meshing a cylinder with hemispehrical ends using snappyHexMesh with
a polar background mesh that uses the point and edge projection feature of blockMesh.
The case prescribes a multiMotion on the cylinder, combining an oscillatingLinearMotion
and transverse rotatingMotion.
2017-03-24 14:44:41 +00:00
1cf43717ab tutorials: moved laminar interDyMFoam examples into "laminar" directory 2017-03-24 12:33:37 +00:00
644e212363 postProcessing: changed isosurface to use isoSurfaceCell algorithm 2017-03-24 11:40:36 +00:00
86bf44de10 CrankNicolsonDdtScheme: Reorganized the code to simplify maintenance 2017-03-23 12:11:24 +00:00
f316980e29 CrankNicolsonDdtScheme: Added option "ramp" function to smoothly transition from Euler
Off-centering is specified via the mandatory coefficient \c ocCoeff in the
    range [0,1] following the scheme name e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson 0.9;
    }
    \endverbatim
    or with an optional "ramp" function to transition from the Euler scheme to
    Crank-Nicolson over a initial period to avoid start-up problems, e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson
        ocCoeff
        {
            type scale;
            scale linearRamp;
            duration 0.01;
            value 0.9;
        };
    }
    \endverbatim

Note this functionality is experimental and the specification and implementation
may change if issues arise.
2017-03-22 22:27:47 +00:00
c95bf5e31d functionObjects::fieldAverage: Initialize totalTime_ for new fields following restart
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2510
2017-03-22 18:30:51 +00:00
bda41c441c Diffusion number: Corrected in chtMultiRegionFoam and pyrolysisModels::reactingOneDim
Resolves bug-report https://bugs.openfoam.org/view.php?id=2512
2017-03-22 17:13:53 +00:00
997b66913d Added robust primitive cubic/quadratic/linear equation solutions.
Applied to eigen-value calculations. Fixed repeated-eigen-value issues
in eigen-vector generation.
2017-03-22 15:11:54 +00:00
b3e4c547e8 applyBoundaryLayer: Ensure nut is up-to-date with the current turbulence fields
Resolves bug-report https://bugs.openfoam.org/view.php?id=2511
2017-03-22 10:08:37 +00:00
160ad85b25 applyBoundaryLayer: Provide non-const access to nut, k and epsilon 2017-03-21 15:07:13 +00:00
ba7260c8b4 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-20 17:57:57 +00:00
d7e54d5c92 setTimeStepFunctionObject: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2507
2017-03-20 17:57:06 +00:00
2afa80426b Case templates: updated dynamicMeshDict for syntax change to solid body motion 2017-03-20 12:27:07 +00:00
2da9c7f2b5 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-18 17:19:35 +00:00
289e05f81e tutorials/combustion/reactingFoam/RAS/DLR_A_LTS: Reduced the endTime 2017-03-18 17:15:58 +00:00
5a3048fbc5 Function1::Scale: New function to scale a given function by a scalar function, e.g. a ramp
For example in the potentialFreeSurfaceFoam/oscillatingBox tutorial it is
cleaner to apply the "linearRamp" function to the "sine" function rather than
using an amplitude table:

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

        normalVelocity
        {
            type            uniformFixedValue;

            uniformValue
            {
                type        scale;

                value
                {
                    type sine;

                    frequency   1;
                    amplitude   0.025;
                    scale       (0 1 0);
                    level       (0 0 0);
                }

                scale
                {
                    type linearRamp;

                    duration 10;
                }
            }
        }

        value           uniform (0 0 0);
    }
2017-03-18 17:11:11 +00:00
04876abedb Function1: Added "Ramp" to the names of the ramp functions to avoid conflict
with more general forms of those functions.
2017-03-18 17:10:48 +00:00
9e6cd5c125 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-03-17 17:37:31 +00:00
f540d6363b PatchInteractionModel: Skip application of patch interaction model for
coupled patches, to prevent rebound/stick/etc... on these patches. Also
added "none" interaction type to LocalInteraction, which reverts the
patch interaction to the fundamental behaviour. This is primarily useful
for non-coupled constraint types.

Resolves https://bugs.openfoam.org/view.php?id=2458
2017-03-17 17:26:39 +00:00
039986928d 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:20 +00:00
b440a9af91 Merge branch 'master' of https://github.com/OpenFOAM/OpenFOAM-dev 2017-03-17 11:30:27 +00:00
a166237d08 reactingMultiphaseEulerFoam: Ensure that an unordered phase pair gets
generated whenever a BlendedInterfacialModel is created.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2472
2017-03-17 11:29:15 +00:00
ad825903af combustionModels::EDC: New Eddy Dissipation Concept (EDC) turbulent combustion model
including support for TDAC and ISAT for efficient chemistry calculation.

Description
    Eddy Dissipation Concept (EDC) turbulent combustion model.

    This model considers that the reaction occurs in the regions of the flow
    where the dissipation of turbulence kinetic energy takes place (fine
    structures). The mass fraction of the fine structures and the mean residence
    time are provided by an energy cascade model.

    There are many versions and developments of the EDC model, 4 of which are
    currently supported in this implementation: v1981, v1996, v2005 and
    v2016.  The model variant is selected using the optional \c version entry in
    the \c EDCCoeffs dictionary, \eg

    \verbatim
        EDCCoeffs
        {
            version v2016;
        }
    \endverbatim

    The default version is \c v2015 if the \c version entry is not specified.

    Model versions and references:
    \verbatim
        Version v2005:

            Cgamma = 2.1377
            Ctau = 0.4083
            kappa = gammaL^exp1 / (1 - gammaL^exp2),

            where exp1 = 2, and exp2 = 2.

            Magnussen, B. F. (2005, June).
            The Eddy Dissipation Concept -
            A Bridge Between Science and Technology.
            In ECCOMAS thematic conference on computational combustion
            (pp. 21-24).

        Version v1981:

            Changes coefficients exp1 = 3 and exp2 = 3

            Magnussen, B. (1981, January).
            On the structure of turbulence and a generalized
            eddy dissipation concept for chemical reaction in turbulent flow.
            In 19th Aerospace Sciences Meeting (p. 42).

        Version v1996:

            Changes coefficients exp1 = 2 and exp2 = 3

            Gran, I. R., & Magnussen, B. F. (1996).
            A numerical study of a bluff-body stabilized diffusion flame.
            Part 2. Influence of combustion modeling and finite-rate chemistry.
            Combustion Science and Technology, 119(1-6), 191-217.

        Version v2016:

            Use local constants computed from the turbulent Da and Re numbers.

            Parente, A., Malik, M. R., Contino, F., Cuoci, A., & Dally, B. B.
            (2016).
            Extension of the Eddy Dissipation Concept for
            turbulence/chemistry interactions to MILD combustion.
            Fuel, 163, 98-111.
    \endverbatim

Tutorials cases provided: reactingFoam/RAS/DLR_A_LTS, reactingFoam/RAS/SandiaD_LTS.

This codes was developed and contributed by

    Zhiyi Li
    Alessandro Parente
    Francesco Contino
    from BURN Research Group

and updated and tested for release by

    Henry G. Weller
    CFD Direct Ltd.
2017-03-17 09:44:15 +00:00
e41fdb7761 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-17 09:04:09 +00:00
5ce031bd25 functionObjects::systemCall: Removed redundant Make directory 2017-03-17 09:02:59 +00:00
1e043911da rigidBodyMeshMotion: Added optional force damping ramp function
to provide smoother behavior on start-up when an acceleration impulse is
applied, e.g. if the body is suddenly released.  e.g.

dynamicFvMesh       dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so");

solver             rigidBodyMotion;

rigidBodyMotionCoeffs
{
    report          on;

    solver
    {
        type    Newmark;
    }

    ramp
    {
        type     quadratic;
        start    0;
        duration 10;
    }
.
.
.

will quadratically ramp the forces from 0 to their full values over the first
10s of the run starting from 0.  If the 'ramp' entry is omitted no force ramping
is applied.
2017-03-16 21:01:45 +00:00
139f1ce92e Function1::ramp: New set of scalar ramp functions
Description
    Ramp function base class for the set of scalar functions starting from 0 and
    increasing monotonically to 1 from \c start over the \c duration and
    remaining at 1 thereafter.

    Usage:
    \verbatim
        <entryName> <rampFunction>;
        <entryName>Coeffs
        {
            start     10;
            duration  20;
        }
    \endverbatim
    or
    \verbatim
        <entryName>
        {
            type      <rampFunction>;
            start     10;
            duration  20;
        }
    \endverbatim

    Where:
    \table
        Property | Description  | Required | Default value
        start    | Start time   | no       | 0
        duration | Duration     | yes      |
    \endtable

The following common ramp functions are provided: linear, quadratic, halfCosine,
quarterCosine and quaterSine, others can easily be added and registered to the run-time
selection system.
2017-03-16 20:56:57 +00:00
b14e2af2d4 postProcessing/noise: Updated for changes to Function1 2017-03-16 20:56:09 +00:00
01c758b79a Function1: Rationalized construction to support the simpler sub-dictionary format
e.g.
    ramp
    {
        type     quadratic;
        start    200;
        duration 1.6;
    }

but the old format is supported for backward compatibility:

    ramp linear;
    rampCoeffs
    {
        start    200;
        duration 1.6;
    }
2017-03-16 20:53:08 +00:00
ae9224b5d7 Updated header 2017-03-16 20:51:14 +00:00
25d523b7a0 dictionary: Added lookupType function for convenient lookup and setting of value
of the specified type
2017-03-16 20:50:11 +00:00
10c1d5697f autoPtr: Added assignment to pointer 2017-03-16 20:49:21 +00:00
96c6c52017 Function1: Added zero and one constant functions for convenience 2017-03-16 20:48:26 +00:00
2598b133a6 BernardCells: tutorial demonstrating Bernard cells
2D buoyancy-driven flow between flat plates with small temperature difference
2017-03-15 19:20:25 +00:00
fbc5595115 foamCreateVideo: avoid dropping frames for some color depths 2017-03-15 19:10:10 +00:00
1a33f4ddab postProcess: Added support for dsmcFields
e.g. postProcess -time 0.001 -func dsmcFields

Resolves bug-report https://bugs.openfoam.org/view.php?id=2499
2017-03-14 15:22:59 +00:00
ac41194341 reactingEulerFoam: Added fvOption support for incompressible phases 2017-03-14 11:56:01 +00:00
047460b053 etc/bashrc: Updated to better support zsh
Resolves patch request https://bugs.openfoam.org/view.php?id=2490
2017-03-13 19:41:38 +00:00
76213ac301 turbulenceModels::RAS: Corrected sign of "C3" dilatation term
Set default value of C3 to 0
Set C3 to -0.33 in the engineFoam/kivaTest tutorial.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2496
2017-03-13 18:01:39 +00:00
25ac9a410e laplacianFoam: added fvOptions library
Resolves bug-report https://bugs.openfoam.org/view.php?id=2492
2017-03-13 08:50:17 +00:00
1e6c9a0a54 Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
2b8a55c9e6 Upgraded to OpenMPI-2.0.2 2017-03-10 17:08:16 +00:00
692242f574 CrankNicolsonDdtScheme: Corrected fvcDdtUfCorr for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2491
2017-03-10 11:08:10 +00:00
0573d5771b turbulenceModels::LES::dynamicLagrangian: Converted advection to compressible convection form
Formally this is equivalent to the previous formulation but more convenient to
use given that for compressible flow the mass flux rather than the volume flux
is available.
2017-03-10 11:07:41 +00:00
55f3e808ed sixDoFRigidBodyDisplacementPointPatchVectorField, uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField: removed
These legacy boundary conditions are no longer needed and have been superseded
by the more flexible sixDoFRigidBodyMotion and rigidBodyMotion solvers.  See tutorials:

incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam
multiphase/interDyMFoam/RAS/DTCHull
multiphase/interDyMFoam/RAS/floatingObject

Resolves bug-report https://bugs.openfoam.org/view.php?id=2487
2017-03-09 23:12:06 +00:00
aae84af596 wingMotion tutorial: Corrected fvSolution file 2017-03-09 23:11:30 +00:00
ed488cb83e functionObjects::functionObjects: Corrected initial totalTime for cases with variable time-step
Resolves bug-report https://bugs.openfoam.org/view.php?id=2459
2017-03-09 17:39:27 +00:00
a600a2c91a LES::dynamicLagrangian: Corrected access to the volumetric flux for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2489
2017-03-09 09:37:59 +00:00
feb7ad8353 Updated header 2017-03-08 11:51:36 +00:00
6c103e247d decomposePar: Added 'copyZero' option
Using

decomposePar -copyZero

The mesh is decomposed as usual but the '0' directory is recursively copied to
the 'processor.*' directories rather than decomposing the fields.  This is a
convenient option to handle cases where the initial field files are generic and
can be used for serial or parallel running.  See for example the
incompressible/simpleFoam/motorBike tutorial case.
2017-03-08 11:48:06 +00:00
54b96fb765 verticalChannel tutorial: removed 'bounded' from the 'div(phid,p)' scheme. 2017-03-08 11:34:08 +00:00
0ba6179f23 tutorials: Updated pcorr settings in fvSolution to provide pcorrFinal if required 2017-03-07 11:48:20 +00:00
ba45546c32 tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun: Remove previous 0 directories
Patch contributed by Mattijs Janssens
2017-03-06 23:18:13 +00:00
a7166e3273 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure V00 is available for moving meshes 2017-03-06 23:15:54 +00:00
13aacde1c7 interFoam family of solvers: Improved Crank-Nicolson implementation
Fewer limiter iterations are now required to obtain sufficient boundedness and
restart is more consistent.
2017-03-06 17:34:10 +00:00
5546fe444d CorrectPhi: only use the "Final" tolerance for the last non-orthogonal iteration 2017-03-03 22:05:24 +00:00
577b089a34 GAMGSolverScale: minor update 2017-03-03 22:04:41 +00:00
e36a294de2 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the V00 field is cached 2017-03-03 22:03:29 +00:00
0d4b7cbab1 PBiCGStab: Instantiate for symmetric and asymmetric matrices
PBiCGStab has proved more reliable than PCG for solving the pressure equation in
compressible systems.
2017-02-28 20:08:38 +00:00
b053ad0356 tutorials/incompressible/pisoFoam/LES/motorBike: Removed unused $1 arguments to xargs
Resolves bug-report https://bugs.openfoam.org/view.php?id=2475
2017-02-28 11:27:28 +00:00
99c992d65c 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 655fc78748
2017-02-28 11:14:59 +00:00
5bc07189ee reactingTwoPhaseEulerFoam::Lavieville: Corrected fLiquid function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2477
2017-02-27 09:39:46 +00:00
8504e43657 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
655fc78748 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
cb2bc60fa5 MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-23 12:03:50 +00:00
4a22ab94b5 MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-22 15:34:13 +00:00
0f4fae169a GeometricField: corrected assignment to tmp which wraps a non-tmp 2017-02-22 13:20:49 +00:00
c3848b6e98 functionObjects::fieldCoordinateSystemTransform: added coordinateSystem sub-dict and updated the description
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2454
2017-02-22 13:20:15 +00:00
c9237fd980 chemkinToFoam: Increase the precision of the thermophysical coefficient written 2017-02-21 11:59:49 +00:00
0ab1758b2f solidMixtureProperties: Updated documentation, removed unused functions and corrected remaining 2017-02-20 15:30:25 +00:00
9f3cf0a7fa liquidMixtureProperties: Updated documentation 2017-02-20 15:30:07 +00:00
cdec9b23b9 liquidThermo: rhoThermo instantiated on liquidProperties
This allows single, multi-phase and VoF compressible simulations to be performed
with the accurate thermophysical property functions for liquids provided by the
liquidProperty classes.  e.g. in the
multiphase/compressibleInterFoam/laminar/depthCharge2D tutorial water can now be
specified by

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

mixture
{
    H2O;
}

as an alternative to the previous less accurate representation defined by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectFluid;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
{
    specie
    {
        molWeight   18.0;
    }
    equationOfState
    {
        R           3000;
        rho0        1027;
    }
    thermodynamics
    {
        Cp          4195;
        Hf          0;
    }
    transport
    {
        mu          3.645e-4;
        Pr          2.289;
    }
}

However the increase in accuracy of the new simpler and more convenient
specification and representation comes at a cost: the NSRDS functions used by
the liquidProperties classes are relatively expensive to evaluate and the
depthCharge2D case takes ~14% longer to run.
2017-02-19 16:44:00 +00:00
80123f59ce thermophysicalProperties: New base-class for liquidProperties and in the future gasProperties
Description
    Base-class for thermophysical properties of solids, liquids and gases
    providing an interface compatible with the templated thermodynamics
    packages.

liquidProperties, solidProperties and thermophysicalFunction libraries have been
combined with the new thermophysicalProperties class into a single
thermophysicalProperties library to simplify compilation and linkage of models,
libraries and applications dependent on these classes.
2017-02-18 21:53:20 +00:00
95574a6c6b liquidProperties, solidProperties: Simplified input
The entries for liquid and solid species can now be simply be the name unless
property coefficients are overridden in which are specified in a dictionary as
before e.g. in the tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek case
the water is simply specified

liquids
{
    H2O;
}

and solid ash uses standard coefficients but the coefficients for carbon are
overridden thus

solids
{
    C
    {
        rho             2010;
        Cp              710;
        kappa           0.04;
        Hf              0;
        emissivity      1.0;
    }

    ash;
}
2017-02-18 12:43:10 +00:00
081f1784f9 liquidProperties: Simplified dictionary format
The defaultCoeffs entry is now redundant and supported only for backward
compatibility.  To specify a liquid with default coefficients simply leave the
coefficients dictionary empty:

    liquids
    {
        H2O {}
    }

Any or all of the coefficients may be overridden by specifying the properties in
the coefficients dictionary, e.g.

    liquids
    {
        H2O
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
2017-02-17 22:08:42 +00:00
5bc064c165 liquidProperties: simplified and generalized the IO
When liquids are constructed from dictionary the coefficients are now first
initialized to their standard values and overridden by the now optional entries
provided in the dictionary.  For example to specify water with all the standard
temperature varying properties but override only the density with a constant
value of 1000 specify in thermophysicalProperties

liquids
{
    H2O
    {
        defaultCoeffs   no;

        H2OCoeffs
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
}
2017-02-17 20:29:58 +00:00
dc3c78c757 thermophysicalModels: Ostream operator calls write(os) for consistent IO 2017-02-17 16:35:43 +00:00
49cd45bb89 thermophysicalModels: Removed unused and unmaintained Istream constructors 2017-02-17 15:50:00 +00:00
565576b13c liquidProperties: Removed unused construction from Istream 2017-02-17 13:41:05 +00:00
abc50e214c 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
2d4bec327c functionObjects::scalarTransport: Corrected typo 2017-02-13 18:25:33 +00:00
0714ccecd6 functionObjects::scalarTransport: Added support for optional laminar and turbulent diffusion coefficients
Description
    Evolves a passive scalar transport equation.

    - To specify the field name set the \c field entry
    - To employ the same numerical schemes as another field set
      the \c schemesField entry,
    - A constant diffusivity may be specified with the \c D entry,

    - Alternatively if a turbulence model is available a turbulent diffusivity
      may be constructed from the laminar and turbulent viscosities using the
      optional diffusivity coefficients \c alphaD and \c alphaDt (which default
      to 1):
      \verbatim
          D = alphaD*nu + alphaDt*nut
      \endverbatim

Resolves feature request https://bugs.openfoam.org/view.php?id=2453
2017-02-12 17:19:27 +00:00
868651b167 csvSetWriter: Corrected axis header
Resolves bug-report https://bugs.openfoam.org/view.php?id=2455
2017-02-09 17:47:56 +00:00
1c8a0bdcb3 compressibleInterFoam: Completed LTS and semi-implicit MULES support
Now the interFoam and compressibleInterFoam families of solvers use the same
alphaEqn formulation and supporting all of the MULES options without
code-duplication.

The semi-implicit MULES support allows running with significantly larger
time-steps but this does reduce the interface sharpness.
2017-02-09 17:31:57 +00:00
1aec2695f1 compressibleInterFoam: More consistent with interFoam and added partial support for LTS 2017-02-08 20:50:07 +00:00
11e298382e interFoam, interDyMFoam: Removed duplicate include 2017-02-08 20:47:59 +00:00
e5b5a34014 interMixingFoam: Renamed alphaEqns.H and alphaEqnsSubCycle.H for consistency with interFoam 2017-02-08 20:46:31 +00:00
a3a7f5f0e6 functionObjects::scalarTransport: Corrected FatalError 2017-02-08 16:57:30 +00:00
aa4fc8445f porosityModels::solidification: Added optional phase-fraction for VoF solvers etc.
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \alpha \rho D(T) U
        \f]

    where
    \vartable
        \alpha  | Optional phase-fraction of solidifying phase
        D(T)    | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Optional phase-fraction of solidifying phase
            alpha alpha.liquid;

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-08 10:40:14 +00:00
6d272d6c8c porosityModels::solidification: New porosity model to simulate solidification
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \rho D(T) U
        \f]

    where
    \vartable
        D(T) | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-07 19:02:30 +00:00
8981c89476 porosityModel::powerLaw: Added groupName to rho lookup to support multiphase 2017-02-07 19:01:34 +00:00
719921acf6 porosityModels: Corrected documentation 2017-02-07 19:00:58 +00:00
58957cf7bd compressibleInterFoam: Added support for fvOptions in both the U and T equations 2017-02-07 18:59:40 +00:00
f3a347fd5b interDyMFoam: Reinstate alphaPhiCorr0 for moving meshes without topology change 2017-02-07 09:59:19 +00:00
f5b91be3d9 functionObjects:surfaceFieldValue, volFieldValue: Added weightedSum and weighted[Area|Vol]Integrate
Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2452
2017-02-06 15:48:11 +00:00
2bc20518c4 PBiCG: Suggest changing to the more robust PBiCGStab solver
if convergence is not achieved within the maximum number of iterations.

Sometimes, particularly running in parallel, PBiCG fails to converge or diverges
without warning or obvious cause leaving a solution field containing significant
errors which can cause divergence of the application.  PBiCGStab is more robust
and does not suffer from the problems encountered with PBiCG.
2017-02-03 18:36:40 +00:00
0b765c0b7d Time: when "writeFormat" is set to "binary" disallow compression
Compressing and decompressing binary files introduces a significant IO overhead
without a providing significant reduction in file-size.
2017-02-03 14:51:04 +00:00
6bdcb6f8ce lagrangian::NonInertialFrameForce: Use field references rather than copies
Patch contributed by Mattijs Janssens
2017-02-03 14:29:07 +00:00
2ee2323d42 Time: When increasing precision check if the time name is unchanged
Patch contributed by Mattijs Janssens
2017-02-03 14:27:38 +00:00
473cc6687e functionObjects::streamLine: Reinstated default "U" 2017-02-03 14:25:02 +00:00
3b671f5681 kOmegaSSTSato: removed debug message 2017-02-03 11:37:56 +00:00
c1031e9678 kOmegaSSTBase: make correctNut(S2, F2) virtual
kOmegaSSTSato: Change correctNut() to correctNut(S2, F2)

Resolves bug-report https://bugs.openfoam.org/view.php?id=2450
2017-02-03 10:52:35 +00:00
9943327215 NamedEnum: Updated to support C++11 scoped enumerations 2017-02-02 17:02:59 +00:00
457151db20 alphatWallBoilingWallFunctionFvPatchScalarField: Resolve restart issue
Patch contributed by Juho Peltola, VTT
Resolves patch request https://bugs.openfoam.org/view.php?id=2446
2017-01-30 16:39:36 +00:00
0deee0d2ba movingConeTopoFvMesh: M_PI -> Foam::constant::mathematical::pi 2017-01-30 16:38:58 +00:00
0d260489a1 ThermalPhaseChangePhaseSystem: Improved robustness
Patch contributed by Juho Peltola, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2443
2017-01-30 16:37:27 +00:00
6cf939eca3 codedFunctionObject: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2441
2017-01-28 18:01:11 +00:00
4d9a8870c6 functionObjects::streamLine,wallBoundedStreamLine: Removed outdated check for 'UName'
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2444
2017-01-28 17:59:34 +00:00
84f63ba979 Allwmake: Provides clearer message when OpenFOAM environment is not loaded
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2424
2017-01-28 17:57:13 +00:00
0dd9616dcf Corrected spelling mistake 2017-01-26 20:18:50 +00:00
7f0152e2d8 combustionModels: Minor cleanup 2017-01-26 17:48:31 +00:00
4b251034d3 Removed unhelpful clutter 2017-01-26 17:47:24 +00:00
ac28d44eff patchInjectionBase: Improved particle positioning
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2442
2017-01-26 15:34:51 +00:00
30a6595056 interDyMFoam: delete alphaPhiCorr0 if the mesh changes
The previous time-step compression flux is not valid/accurate on the new mesh
and it is better to re-calculate it rather than map it from the previous mesh to
the new mesh.
2017-01-25 11:54:12 +00:00
eaebd650ce snappyHexMesh: Added "noRefinement" writeFlag to control the writing of cellLevel, pointLevel etc. files
By default snappyHexMesh writes files relating to the hex-splitting process into
the polyMesh directory: cellLevel level0Edge pointLevel surfaceIndex

but by setting the noRefinement flag:

writeFlags
(
    noRefinement
    .
    .
    .
);

these optional files which are generally not needed are not written.

If you run the three stages of snappyHexMesh separately or run a dynamic mesh
solver supporting refinement and unrefinement these files are needed
and "noRefinement" should not be set.
2017-01-24 22:28:36 +00:00
233fdb3ea3 blockMesh: Delete the polyMesh directory before meshing
unless the blockMeshDict is in the polyMesh directory or the "-noClean" option
is specified.

This avoids problems running snappyHexMesh without first clearing files from
polyMesh which interfere with the operation of snappyHexMesh.
2017-01-24 16:18:20 +00:00
9129f5afc3 snappyHexMesh: Write correct refinement files once only
The files relating to the hex refinement are written out explicitly both by
snappyHexMesh and dynamicRefineFvMesh and hence should be set "NO_WRITE" rather
than "AUTO_WRITE" to avoid writing them twice.  This change corrects the
handling of the "refinementHistory" file which should not be written by
snappyHexMesh.
2017-01-24 08:15:43 +00:00
dd0dddf46a chemistryModel: General cleanup 2017-01-20 18:22:48 +00:00
6f338ed716 PaSR: Removed deprecated "turbulentReaction" switch
To run with laminar reaction rates choose the "laminar" combustion model rather
than setting "turbulentReaction no;" in the "PaSR" model.
2017-01-20 17:17:14 +00:00
77bd21177b meshSearch: Add support for cell decomposition mode CELL_TETS
Resolves bug-report https://bugs.openfoam.org/view.php?id=2428
2017-01-20 10:47:15 +00:00
0f91f62cef Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
a402896d50 setsToZones: Add support for multi-region cases
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2437
2017-01-19 08:17:54 +00:00
21d3931534 Updates for clang++-3.9 2017-01-18 21:45:26 +00:00
63dee8f2da Updates for clang++-3.9 2017-01-18 18:12:45 +00:00
9d39850df3 eConstThermo: Corrected entropy function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2436
2017-01-18 10:10:30 +00:00
ad92287afc Multi-phase solvers: Improved handling of inflow/outflow BCs in MULES
Avoids slight phase-fraction unboundedness at entertainment BCs and improved
robustness.

Additionally the phase-fractions in the multi-phase (rather than two-phase)
solvers are adjusted to avoid the slow growth of inconsistency ("drift") caused
by solving for all of the phase-fractions rather than deriving one from the
others.
2017-01-17 22:43:47 +00:00
8b930836d3 tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC: Added deltaT to TDAC controls 2017-01-17 22:41:30 +00:00
03362483db CodedSource: Corrected documentation
Patch contributed by zhulianhua
Resolves bug-report https://bugs.openfoam.org/view.php?id=2427
2017-01-13 14:14:06 +00:00
258091faee species::thermo<Thermo, Type>::T: Check for negative initial temperature
Starting from an negative initial temperature causes non-convergence and a
misleading error, now a specific message is generated.
2017-01-13 14:11:28 +00:00
67e9cf81e0 fieldMinMax: Added cell index to output
e.g.

fieldMinMax fieldMinMax write:
    min(T) = 291 in cell 255535 at location (-0.262546 -0.538933 1.00574) on processor 9
    max(T) = 336.298 in cell 419031 at location (1.7468 0.758405 8.10989) on processor 1
    min(mag(U)) = 0 in cell 14990 at location (-0.0824383 1.68479 1.5349) on processor 0
    max(mag(U)) = 652.341 in cell 218284 at location (0.609849 0.167247 1.00091) on processor 12
2017-01-13 14:10:04 +00:00
78f6aebb99 realizableKE: Removed unused Cmu coefficient
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2431
2017-01-13 14:08:41 +00:00
8b9fbf3681 CloudFunctionObjects::ParticleCollector: Corrected handling of "concentricCircle" mode
Patch contributed by Karl Meredith, FM Global.
2017-01-13 14:06:45 +00:00
7c02f6841f TDACChemistryModel: simplified, rationalized and automated the handling of variableTimeStep 2017-01-09 21:40:39 +00:00
80d540765a stressComponents, wallGradU: Additional backward-compatibility info scripts
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2423
2017-01-09 14:33:47 +00:00
959e4f17c9 Corrected spelling mistake existance -> existence
Patch provided by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2425
2017-01-08 23:08:41 +00:00
e6ef6eab85 TDACChemistryModel: resolved issue with single-precision build 2017-01-07 18:12:38 +00:00
923350fa6e TDACChemistryModel: Added support for variable time-step and LTS in ISAT
New reactingFoam tutorial counterFlowFlame2DLTS_GRI_TDAC demonstrates this new
functionality.

Additionally the ISAT table growth algorithm has been further optimized
providing an overall speedup of between 15% and 38% for the tests run so far.

Updates to TDAC and ISAT provided by Francesco Contino.

Implementation updated and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.
2017-01-07 16:29:15 +00:00
78a396430b Rationalized the keyword to specify a file name in a dictionary to 'file'
e.g. in tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T

    hot
    {
        type            externalCoupledTemperature;
        commsDir        "${FOAM_CASE}/comms";
        file            "data";
        initByExternal  yes;
        log             true;
        value           uniform 307.75; // 34.6 degC
    }

Previously both 'file' and 'fileName' were used inconsistently in different
classes and given that there is no confusion or ambiguity introduced by using
the simpler 'file' rather than 'fileName' this change simplifies the use and
maintenance of OpenFOAM.
2017-01-07 09:38:54 +00:00
80e22788e4 triSurfaceMesh: Added support for specifying the tri-surface file name:
e.g.

motorBike
{
    type triSurfaceMesh;
    file "motorBike.obj";
}

Based on patch provided by Mattijs Janssens
Resolves part of bug-report https://bugs.openfoam.org/view.php?id=2396
2017-01-07 09:23:43 +00:00
695466a3cd foamDictionary: Removed unnecessary spaces and blank lines from output
Resolves bug-report https://bugs.openfoam.org/view.php?id=2422
2017-01-05 20:19:30 +00:00
db69053ef7 fluentMeshToFoam: Added '-2D' option consistent with plot3dToFoam
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2238
2017-01-05 15:59:42 +00:00
fcde201a40 Updated tutorial scripts 'createGraphs' and 'patchifyObstacles' for clearer messages
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2411
2016-12-27 15:44:30 +00:00
3d5e4c924b Make/options: Added -lscotchDecomp where appropriate
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2410
2016-12-27 15:26:53 +00:00
08165a9c1e Documentation updates
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2409
2016-12-27 14:35:39 +00:00
9efade0139 wmake: Corrected comments
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2408
2016-12-27 14:15:32 +00:00
842aa71ed7 functionObjects::volRegion: Improved parallel efficiency
Based on patch contributed by Kevin Nordin-Bates
Resolves bug-report https://bugs.openfoam.org/view.php?id=2401
2016-12-19 19:20:09 +00:00
d36d8e3772 reactingFoam::setRDeltaT: Add support for limiting the local time-step by the reaction rates
e.g. in the reactingFoam/laminar/counterFlowFlame2DLTS tutorial:

PIMPLE
{
    momentumPredictor no;
    nOuterCorrectors  1;
    nCorrectors     1;
    nNonOrthogonalCorrectors 0;

    maxDeltaT       1e-2;
    maxCo           1;
    alphaTemp       0.05;
    alphaY          0.05;
    Yref
    {
        O2          0.1;
        ".*"        1;
    }
    rDeltaTSmoothingCoeff 1;
    rDeltaTDampingCoeff 1;
}

will limit the LTS time-step according to the rate of consumption of 'O2'
normalized by the reference mass-fraction of 0.1 and all other species
normalized by the reference mass-fraction of 1.  Additionally the time-step
factor of 'alphaY' is applied to all species.  Only the species specified in the
'Yref' sub-dictionary are included in the LTS limiter and if 'alphaY' is omitted
or set to 1 the reaction rates are not included in the LTS limiter.
2016-12-19 14:19:31 +00:00
569d40de86 foamList: removed '-lreactingMultiphaseSystem' to avoid duplicate name conflict
Resolves bug-report https://bugs.openfoam.org/view.php?id=2398
2016-12-16 10:12:09 +00:00
1a2c77abfa Rationalized heat release rate functions
Combined 'dQ()' and 'Sh()' into 'Qdot()' which returns the heat-release rate in
the normal units [kg/m/s3] and used as the heat release rate source term in
the energy equations, to set the field 'Qdot' in several combustion solvers
and for the evaluation of the local time-step when running LTS.
2016-12-15 17:10:21 +00:00
0fdaafce7c Template function objects: added read rhoInf entry 2016-12-14 15:30:04 +00:00
c3ca6de336 Template function objects: forces and forceCoeffs correction/tidy 2016-12-14 14:38:04 +00:00
94f3919ed6 Template function objects: corrected forces and forceCoeffs for code correction
See bug-report https://bugs.openfoam.org/view.php?id=2387
2016-12-14 14:10:24 +00:00
f14e69bdc5 functionObjects::forceCoeffs: Corrected setting of rhoRef for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2387
2016-12-14 10:39:32 +00:00
6405663f67 reactingTwoPhaseEulerFoam: Removed temporary debug option 2016-12-14 09:00:14 +00:00
8a35103a10 reactingTwoPhaseEulerFoam: Updated LTS support in the cell-based momentum algorithm 2016-12-13 15:47:24 +00:00
240ff33eb1 Removed blank-line 2016-12-13 15:46:39 +00:00
8c51e6d272 sprayFoam: Explicitly write cloud when not solving flow 2016-12-13 13:19:22 +00:00
fb29712c51 reactingTwoPhaseEulerFoam::partitioningModels::cosine: Corrected slope
Patch contributed by Juho Peltola, VTT.
2016-12-13 12:03:56 +00:00
32266e64fb wallBoilingSubModels: Corrected references
Patch contributed by Juho Peltola, VTT
2016-12-12 16:58:52 +00:00
ef65521b6a pimpleControl: Added optional 'solveFlow' control
sprayFoam: Added support for the optional 'solveFlow' control to allow
           simulation of the spray evolution with all sub-models in a 'frozen'
           flow-field.
2016-12-12 14:35:21 +00:00
249c09933e functionObjects::writeLocalObjects: Provides support for controlled writing of field
defined by functionObjects, e.g. wallHeatFlux, wallShearStress and yPlus.

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2353
2016-12-09 21:54:13 +00:00
3140cfa906 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
14973e39a6 gaussConvectionScheme: Removed temporary warnUnboundedGauss debug switch
which provided warning about backward-compatibility issue with setting div
schemes for steady-state.  It caused confusion by generating incorrect warning
messages for compressible cases for which the 'bounded' should NOT be applied to
the 'div(phid,p)'.
2016-12-09 16:36:56 +00:00
c007fcdbfe Renamed searchableCurve -> searchableExtrudedCircle
to clarify purpose.

Patch contributed by Mattijs Janssens
2016-12-09 16:30:46 +00:00
dc1c6d7600 MRFZone: Do not correct boundary conditions when inactive
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2380
2016-12-09 16:29:27 +00:00
9eb6736ef6 PBiCGStab: Corrected to support processorAgglomerator
Patch contributed by Battijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2383
2016-12-09 16:27:54 +00:00
b76184e56b mappedFieldFvPatchField: Corrected autoMap function
Patch contributed by Mattijs Janssens
2016-12-09 15:08:43 +00:00
3f0468fe32 fieldAverageTemplates: General clean-up 2016-12-09 14:28:04 +00:00
9edf3b5215 dynamicMotionSolverListFvMesh: Ensure independence of zone-based motion 2016-12-09 14:19:07 +00:00
8dafde6048 tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allrun: Removed spurious '-parallel' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2378
2016-12-07 15:39:40 +00:00
f775751b51 PVReaders: Update link order to avoid problems on Ubuntu
Resolves bug-report http://bugs.openfoam.org/view.php?id=2372
2016-12-06 10:57:35 +00:00
e00a56cdbb reactingTwoPhaseEulerFoam: Corrected LTS support
Resolves bug-report http://bugs.openfoam.org/view.php?id=2374
2016-12-06 09:30:50 +00:00
49f5f1ccd7 alphatWallBoilingWallFunctionFvPatchScalarField.H: corrected mode 2016-12-05 20:08:24 +00:00
03e0ce5d4b advectiveFvPatchField, waveTransmissiveFvPatchField: Updated docs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2373
2016-12-05 20:07:40 +00:00
4a45e4f519 thermalBaffle: ensure mappedPatchBase is updated following mesh topology changes
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2323
2016-12-05 08:44:43 +00:00
b592eb09e9 reactingTwoPhaseEulerFoam: Added LTS support to the face-momentum algorithm 2016-12-04 10:14:43 +00:00
6b161934c9 metisDecomp: Corrected return from metisDecomp::decompose
Resolves bug-report http://bugs.openfoam.org/view.php?id=2370
2016-12-03 19:26:21 +00:00
65402d6831 setFields: Added '-dict' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2366
2016-12-03 11:45:36 +00:00
eebac17c1e tmp: Removed temporary global functions 2016-12-03 11:44:18 +00:00
2f9e72b53f motionSolver: Removed unused member data 2016-12-02 12:44:09 +00:00
01083dd877 dictionary: Handle the distinction between '.' as a keyword character and a scope operator
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2358
2016-12-02 12:23:17 +00:00
a5f3c25c06 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling.*: Correct q entry
Patch contributed by Mattijs Janssens
2016-12-02 12:22:30 +00:00
e86168d964 processorMeshes::read destruct before de-register
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2368
2016-12-01 22:07:50 +00:00
2cff1e084d meshToMesh0: fixed segmentation fault
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2363
2016-12-01 19:55:39 +00:00
5a6db56219 etc/bashrc,cshrc: Added FJMPI and INTELMPI
Resolves request http://bugs.openfoam.org/view.php?id=2367
2016-12-01 19:53:08 +00:00
23e6eee712 mixerVesselAMI2D/constant/dynamicMeshDict: Removed unused motionSolverLibs entry 2016-12-01 16:13:18 +00:00
2eac40eac6 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
f3bd633dae orthogonalSnGrad, uncorrectedSnGrad: Improved documentation
Resolves request http://bugs.openfoam.org/view.php?id=2364
2016-12-01 15:17:14 +00:00
335df22c82 reactingEulerFoam: Updated to support zoneCombustion models 2016-12-01 15:16:19 +00:00
ea67173330 Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
9ed8a6bdf5 combustionModels::zoneCombustion: Corrected base-class
to avoid duplicate instantiation of the thermodynamics package.

The 'zoneCombustion' model is now selected in constant/combustionProperties by
either

combustionModel zoneCombustion<psiCombustionModel>;

or

combustionModel zoneCombustion<rhoCombustionModel>;

as appropriate.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2354
2016-11-28 11:59:17 +00:00
8bfff27468 Updated member type comments
See http://bugs.openfoam.org/view.php?id=2356
2016-11-28 09:22:56 +00:00
4eaa06a60f tensor::eigenValues: Test the magnitude of 'QQ' before dividing by it.
Resolves bug-report http://bugs.openfoam.org/view.php?id=2351
2016-11-26 20:49:54 +00:00
e402e5d4b2 functionObject.H: Updated documentation
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2355
2016-11-26 18:42:25 +00:00
644a641b5f functionObjects::yPlus: Removed the AUTO_WRITE option on yPlus
Writing is controlled directly by the functionObject
2016-11-26 17:30:52 +00:00
bfa7bb85e5 POSIX: removed spurious double literal suffix 2016-11-25 22:40:49 +00:00
a7256d6fa9 foamDictionary: Added support for manipulating lists of dictionaries
- provides support for manipulating polyMesh/boundary

  - changed behaviour of disableFunctionEntries option to preserve
    #include

  - dictionary: added reading of lists of dictionaries.
    + each list element may be accessed using the 'entryDDD' keyword
      according to their list index.

Patch contributed by Mattijs Janssens
2016-11-25 20:33:03 +00:00
ce83f50f36 topoSet: cellZoneSet, pointZoneSet extensions
cellZones and pointZones can now be created in one action without the
need to first create a cellSet or pointSet and converting that to the
corresponding zone, e.g.

actions
(
    // Example: create cellZone from a box region
    {
        name    c0;
        type    cellZoneSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box   (0.04 0 0)(0.06 100 100);
        }
    }
);
2016-11-25 16:01:41 +00:00
085313c7c1 fileModification: time checking now with nano-second precision
fileModificationSkew: now a floating-point number to support sub-second
specification.

Patch contributed by Mattijs Janssens
2016-11-25 15:36:10 +00:00
b2d5dca488 functionObjects::timeActivatedFileUpdate: Copy file then move
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2324
2016-11-25 14:37:24 +00:00
146f7e6bea functionObjects::fieldExpression: Correct and improve warning messages
postProcess -func MachNo

previously generated the warning

Executing functionObjects
--> FOAM Warning :     functionObjects::MachNo MachNo cannot find required field U

which is incorrect; the field 'U' is available but the
thermophysicalProperties is not.  Now 'postProcess' generates the
warning:

Executing functionObjects
--> FOAM Warning :     functionObjects::MachNo MachNo cannot find required object thermophysicalProperties of type fluidThermo
--> FOAM Warning :     functionObjects::MachNo MachNo failed to execute.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2352
2016-11-25 12:20:07 +00:00
f5d5031561 zoneCombustion: New cellZone based combustion model
in which the reactions are enabled only in the specified list of
cellZones.  e.g. in constant/combustionProperties

combustionModel zoneCombustion<psiChemistryCombustion>;

active  true;

zoneCombustionCoeffs
{
    zones (catalyst);
}

and in constant/zoneCombustionProperties

combustionModel laminar<psiChemistryCombustion>;

active  true;

laminarCoeffs
{}
2016-11-25 11:20:07 +00:00
c0a950c5c6 functionObjects::grad: Avoid cache conflict with 'postProcess' utility
Resolves bug-report http://bugs.openfoam.org/view.php?id=2350
2016-11-24 23:04:01 +00:00
2e66ae60ae primitiveShapes::plane: Removed redundant 'explicit'
Declaration of 'explicit' constructor without a single argument are redundant.
2016-11-23 16:22:10 +00:00
5fc1285061 etc/caseDicts/postProcessing/fields: New 'add' and 'subtract' functionObjects 2016-11-23 16:21:38 +00:00
2d8330fff7 massRosinRammler: New Lagrangian size-distribution model
Corrected form of the Rosin-Rammler distribution taking into account the
    varying number of particels per parces for for fixed-mass parcels.  This
    distribution should be used when
    \verbatim
        parcelBasisType mass;
    \endverbatim

    See equation 10 in reference:
    \verbatim
        Yoon, S. S., Hewson, J. C., DesJardin, P. E., Glaze, D. J.,
        Black, A. R., & Skaggs, R. R. (2004).
        Numerical modeling and experimental measurements of a high speed
        solid-cone water spray for use in fire suppression applications.
        International Journal of Multiphase Flow, 30(11), 1369-1388.
    \endverbatim
2016-11-22 15:25:43 +00:00
dfd0ba16a5 Matrix: Minor reformatting 2016-11-21 11:47:25 +00:00
56919a4442 functionObjects::add: Add list of fields
The operation can be applied to any volume or surface fields generating a
    volume or surface scalar field.

    Example of function object specification:
    \verbatim
    Ttot
    {
        type            add;
        libs            ("libfieldFunctionObjects.so");
        fields          (T Tdelta);
        result          Ttot;
        executeControl  writeTime;
        writeControl    writeTime;
    }
    \endverbatim

Also refactored functionObjects::fieldsExpression to avoid code
duplication between the 'add' and 'subtract' functionObjects.
2016-11-19 21:48:48 +00:00
21fbad85fb Removed temporary file 2016-11-18 22:43:52 +00:00
028956e79c functionObjects::subtract: From the first field subtract the remaining fields in the list
The operation can be applied to any volume or surface fields generating a
    volume or surface scalar field.

    Example of function object specification:
    \verbatim
    Tdiff
    {
        type            subtract;
        libs            ("libfieldFunctionObjects.so");
        fields          (T Tmean);
        result          Tdiff;
        executeControl  writeTime;
        writeControl    writeTime;
    }
    \endverbatim
2016-11-18 22:20:22 +00:00
2001653352 lagrangian::patchInjectionBase: corrected initialization of tetFaceI and tetPtI
Patch contributed by Timo Niemi, VTT.
Resolved bug-report http://bugs.openfoam.org/view.php?id=2286
2016-11-18 14:31:51 +00:00
efca046515 lagrangian::InjectionModel.C: Corrected indentation 2016-11-18 14:31:18 +00:00
fba6ebbac4 functionObjects::fieldValueDelta: Corrected documentation 2016-11-18 14:30:42 +00:00
1bf8014d58 viscosityModels::strainRateFunction: New run-time selected strain-rate function non-Newtonian viscosity model
Uses 'Function1' to provide support for an extensible range of run-time
selected functions including interpolation of tabulated data etc.
2016-11-17 22:33:48 +00:00
cbad2dac5e etc/config.sh/aliases: Use 'declare' instead of 'type' for bash/zsh compatibility
Resolves bug-report http://bugs.openfoam.org/view.php?id=2333
2016-11-16 22:33:16 +00:00
c696e71fce TurbulenceModels::ReynoldsStress: Added support for incompressible VoF solvers
and other incompressible mixture-based multiphase solvers.
2016-11-14 17:59:07 +00:00
6f4908ed00 TurbulenceModels::ReynoldsStress: remove the spherical part of the wall-function Reynolds stress
The spherical part of the Reynolds stress is included in the pressure so
that the wall boundary condition for the pressure is zeroGradient.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2325
2016-11-14 15:03:08 +00:00
e540e333f0 wmake/scripts/AllwmakeParseArguments: Avoid duplicate command message
when Allwmake is called from wmake -all
2016-11-14 12:37:52 +00:00
a856ea0b0e VectorSpace: Added cmptSqr 2016-11-14 11:22:43 +00:00
4fcff9e106 wmkdep.l: Removed redundant #include 2016-11-14 11:22:00 +00:00
c425d745ad wclean: Removed duplicate echo of directory 2016-11-14 08:54:53 +00:00
0568f8b42d wmake: Removed redundant QUIET_OP 2016-11-14 08:39:55 +00:00
cebac21893 wmake: Moved wmkdep messages into rules/General/transform makefile 2016-11-14 08:32:30 +00:00
9cf0a44d12 wmake: Suppress the "is up to date" messages
Avoids a lot of unnecessary clutter in the compilation log.
2016-11-13 22:41:42 +00:00
a760ce5d08 wmake: Removed unnecessary '->>' line from output
Changed 'ld' line to include path of target library or executable.
2016-11-13 22:14:53 +00:00
3dab5f913a wmake: Indent the 'result' message 2016-11-13 18:42:08 +00:00
48e3fb7805 Allwmake: Remove 'set -x' which generates a lot of noise
'set -x' should be used for debugging.

Added command printing into wmake and Allwmake as a replacement for
'set -x' to log current target.
2016-11-13 18:08:22 +00:00
1d6637a81b renumberMesh/Allwmake: Removed 'set -x' 2016-11-13 15:27:25 +00:00
32990e2898 wmake: Declare all makefiles to be specifically GNU make files 2016-11-13 15:18:09 +00:00
7f035f546d wmake: suppress "Nothing to be done for" messages 2016-11-13 15:16:42 +00:00
2b3f1d6a41 wmake: Simplified QUIET_MESSAGE function 2016-11-13 11:19:29 +00:00
9c3ea9c4ff wmake/src/Makefile: Removed additional $E 2016-11-13 10:24:16 +00:00
b6d061cac8 wmake/rules/General/yacc: Added QUIET_MESSAGE 2016-11-13 10:23:53 +00:00
a0094dee38 wmake: Update '-s' option to print the files processed without the rules
Based on patch contributed by Alexey Matveichev
Resolves feature request http://bugs.openfoam.org/view.php?id=2328
2016-11-12 22:01:44 +00:00
1fc8529672 metisDecomp: Use real_t for processor weights
Based on patch contributed by Alexey Matveichev
Resolves feature-request http://bugs.openfoam.org/view.php?id=2330
2016-11-12 09:03:56 +00:00
11a569148c STLpoint: declare operator point() for double-precision only
The base-class provides the point for single-precision.
2016-11-12 09:02:51 +00:00
c73f1fa5b1 foamDictionary: Corrected error message type 2016-11-11 17:21:13 +00:00
394fd5c824 PVblockMeshReader: Removed unnecessary 'UpdateGUI' button
The 'Refresh' button updates the blockMesh and the GUI.
2016-11-11 12:17:53 +00:00
b8442f5a77 blockMesh: corrected debug messages
Patch contributed by Mattijs Janssens
2016-11-11 11:19:55 +00:00
d0b633a103 .gitignore: Ignore emacs projectile configuration files 2016-11-09 11:23:20 +00:00
0b2e584fd4 reactingEulerFoam, twoPhaseEulerFoam: Reinstated interfacial pressure-work
Added the interfacial pressure-work terms according to:

Ishii, M., Hibiki, T.,
Thermo-fluid dynamics of two-phase flow,
ISBN-10: 0-387-28321-8, 2006

While this is the most common approach to handling the interfacial
pressure-work it introduces numerical stability issues in regions of low
phase-fraction and rapid flow deformation.  To alleviate this problem an
optional limiter may be applied to the pressure-work term in either of
the energy forms.  This may specified in the
"thermophysicalProperties.<phase>" file, e.g.

pressureWorkAlphaLimit 1e-3;

which sets the pressure work term to 0 for phase-fractions below 1e-3.

For particularly unstable cases a limit of 1e-2 may be necessary.
2016-11-09 11:14:26 +00:00
3188013102 foamTags: Rationalized tagging
The best of the current options is to use the latest version of
exuberant ctags (which has a new C++ parser) to generate both
declaration and definition tags.

gtags works to some extent and provides additional information about the
function signatures but the C++ parser is not accurate and misses scope
information.  gtags can be used with the ctags parser which is effective
but looses the primary advantage of gtags being able to provide function
signatures so support has been switched-off by default.

ebrowse does not appear to be very useful for traversing the OpenFOAM
class tree and the support has been switched-off by default.
2016-11-09 11:07:29 +00:00
772766a8ca Revert "twoPhaseEulerFoam::EEqns: Updated pressure-work"
This reverts commit 41643ef28b.
2016-11-09 08:44:36 +00:00
41643ef28b twoPhaseEulerFoam::EEqns: Updated pressure-work
See commit 527e1c873f
2016-11-07 23:14:13 +00:00
26242f0de3 functionObjects::yPlus: Call read() in constructor to set base-class controls
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2320
2016-11-06 10:31:07 +00:00
c3fdc191c2 kOmegaSSTBase: Corrected read() to re-read the base-class settings
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2318
2016-11-05 23:25:58 +00:00
161addf58b PVblockMeshReader: Remove old vertex labels on refresh 2016-11-05 21:41:32 +00:00
379c16d410 Cloud: Added 'td.switchProcessor' check to processor transfer logic
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2315
2016-11-05 21:16:22 +00:00
03014998f5 indexedOctree: Corrected comment
Resolves bug-report http://bugs.openfoam.org/view.php?id=2319
2016-11-05 21:00:16 +00:00
ff04d59d2d foamTags: Changed ectags -> ctags-exuberant
ctags-exuberant is now the more common name for the exuberant ctags
program.

Commented-out gtags as it is not commonly available.
2016-11-05 18:31:19 +00:00
54c516120c driftFluxFoam: Corrected Udm BCs
Added 'READ_IF_PRESENT' option to support overriding of the default BCs
for complex problems requiring special treatment of Udm at boundaries.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2317
2016-11-05 18:17:24 +00:00
d175b347b6 PVblockMeshReader: Added "Refresh" button to update the blockMesh
Reconstructs the blockMesh and updates the display from the current
blockMeshDict so that any changes can viewed without exiting
paraFoam -block
2016-11-04 20:50:13 +00:00
2dc141d571 paraFoam -block: Added support for vertex and block names
Patch contributed by Mattijs Janssens
2016-11-04 17:29:02 +00:00
51a0663cd1 pointConstraint: Added constrainDisplacement
which directly applies the constraint to the displacement without
external tensor ops.

Patch contributed by Mattijs Janssens
2016-11-04 17:13:04 +00:00
daf845ba69 foamLog: Added clockTime
Patch contributed by Paul Edwards, Intel
2016-11-04 14:33:47 +00:00
cfcd1adacb etc/bashrc: Added support for sourcing etc/bashrc with relative path
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2310
2016-11-04 13:12:30 +00:00
527e1c873f reactingEulerFoam: Corrected and rationalized pressure-work
In many publications and Euler-Euler codes the pressure-work term in the
total enthalpy is stated and implemented as -alpha*dp/dt rather than the
conservative form derived from the total internal energy equation
-d(alpha*p)/dt.  In order for the enthalpy and internal energy equations
to be consistent this error/simplification propagates to the total
internal energy equation as a spurious additional term p*d(alpha)/dt
which is included in the OpenFOAM Euler-Euler solvers and causes
stability and conservation issues.

I have now re-derived the energy equations for multiphase flow from
first-principles and implemented in the reactingEulerFoam solvers the
correct conservative form of pressure-work in both the internal energy
and enthalpy equations.

Additionally an optional limiter may be applied to the pressure-work
term in either of the energy forms to avoid spurious fluctuations in the
phase temperature in regions where the phase-fraction -> 0.  This may
specified in the "thermophysicalProperties.<phase>" file, e.g.

pressureWorkAlphaLimit 1e-3;

which sets the pressure work term to 0 for phase-fractions below 1e-3.
2016-11-04 12:07:09 +00:00
2d3ddd4204 buoyantBoussinesqSimpleFoam: Correct laminar and turbulent Prandtl numberl
Resolves bug-report http://bugs.openfoam.org/view.php?id=2314
2016-11-01 16:07:52 +00:00
24b2335f19 blockMesh: Added edge projection
New functionality contributed by Mattijs Janssens:
  - new edge projection: projectCurve for use with new geometry
    'searchableCurve'
  - new tutorial 'pipe'
  - naming of vertices and blocks (see pipe tutorial). Including back
    substitution for error messages.
2016-10-31 18:00:15 +00:00
fcdfddf5a7 etc/config.csh/paraview: avoid ParaView_DIR: Undefined variable.
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2309
2016-10-31 15:49:19 +00:00
c8ab53dc4d codedFunctionObject.H: Corrected docs
Resolved bug-report http://bugs.openfoam.org/view.php?id=2313
2016-10-31 15:45:59 +00:00
d950e2bc20 chemFoam: Construct fields on the mesh database for consistency 2016-10-31 13:15:48 +00:00
34e03c57cb reactingEulerFoam: Correct continuity error at the end of the energy correction loop
to handle the change in density generated by the temperature correction.
2016-10-31 08:23:51 +00:00
1160bd474a etc/cshrc: Removed echo $FOAM_INST_DIR 2016-10-30 09:38:23 +00:00
fa7f61b32e etc/config: Removed references to gcc versions < 4.8
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2312
2016-10-30 00:01:48 +01:00
8a33e41a44 twoPhaseEulerFoam::twoPhaseSystem: Ensure inlet flow of BOTH phases matches the BCs
Previously the inlet flow of phase 1 (the phase solved for) is corrected
to match the inlet specification for that phase.  However, if the second
phase is also constrained at inlets the inlet flux must also be
corrected to match the inlet specification.
2016-10-28 10:50:10 +01:00
37c5d28e45 Revert "VectorSpace: Added printing of out-of-range index"
This reverts commit f6472568b3.
2016-10-27 20:57:10 +01:00
fe7c8b7d4e solidRegionDiffNo: Include the boundary faces in the calculation of the diffusion number
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2303
2016-10-25 18:33:59 +01:00
f6472568b3 VectorSpace: Added printing of out-of-range index
Patch contributed by Mattijs Janssens
2016-10-25 17:08:11 +01:00
1685585b82 foamCleanPath: Changed sed delimiter from '@' to '|' to allow Email addresses
Patch contributed by Bruno Santos
http://bugs.openfoam.org/view.php?id=2306
2016-10-25 17:06:59 +01:00
13763ba6ec blockMesh::projectEdge: Added support for point position adjustment
Re-positions points after projection to correct distribution

Patch contributed by Mattijs Janssens
2016-10-21 12:10:48 +01:00
637cacfa29 primitiveMeshEdges: Added support for edges with duplicate vertices
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2301
2016-10-21 12:08:18 +01:00
667dc10af6 SpalartAllmarasDES: Recalculate fv1 for the update of nut
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2292
2016-10-20 09:08:48 +01:00
7ae0766a31 sixDoFSolvers::symplectic: Removed the restriction on outer iteration
Resolves bug-report http://bugs.openfoam.org/view.php?id=2297
2016-10-19 15:10:52 +01:00
0391e73f2c blockMesh: Update the curved-edge consistency checking
Loop over the edges of each block rather than the edgeList of the
topological mesh due to problems with calcEdges for blocks with repeated
point labels
2016-10-19 13:28:56 +01:00
496015135c blockMesh: Added checks for duplicate and unmatched curved-faces 2016-10-19 09:54:19 +01:00
bf8e1ba036 foamDictionary: Added '-diff <dict>' option
- Write differences with respect to the specified dictionary
    (or sub entry if -entry specified)

  - Write the differences with respect to a template dictionary:
      foamDictionary 0/U -diff $FOAM_ETC/templates/closedVolume/0/U

  - Write the differences in boundaryField with respect to a
    template dictionary:
      foamDictionary 0/U -diff $FOAM_ETC/templates/closedVolume/0/U \
        -entry boundaryField

Patch contributed by Mattijs Janssens
2016-10-18 18:23:24 +01:00
087ad615b6 blockMesh: Added check for duplicate curved-edge definitions 2016-10-18 15:18:52 +01:00
adb4fdd613 blockMesh: Added projected vertices and edges
Patch contributed by Mattijs Janssens

    - Added projected vertices
    - Added projected edges
    - Change of blockEdges API (operate on list lambdas)
    - Change of blockFaces API (pass in blockDescriptor and blockFacei)
    - Added sphere7ProjectedEdges tutorial to demonstrate vertex and edge projection
2016-10-18 14:06:23 +01:00
8e95f73249 blockMesh: Added check for curved-edge/block-edge consistency 2016-10-18 13:05:20 +01:00
b43cecd120 inletOutletTotalTemperature,waveTransmissiveFvPatchField: default psi -> thermo:psi
Resolves bug-report http://bugs.openfoam.org/view.php?id=2294
2016-10-17 19:12:55 +01:00
6037ff8980 tutorials/mesh/blockMesh/sphere7: New 7-block sphere mesh example
Contributed by Georg Skillas
2016-10-16 15:14:26 +01:00
5012549d4f blockMesh::BSplineEdge: Updated #ifndef BSplineEdge_H to #ifndef blockEdges_BSplineEdge_H 2016-10-15 14:31:06 +01:00
23867b0641 blockMesh: Added support for run-time selectable methods to set the block vertex locations 2016-10-15 14:24:36 +01:00
f5be4b05a5 blockMesh: New experimental support for projecting block face point to geometric surfaces
For example, to mesh a sphere with a single block the geometry is defined in the
blockMeshDict as a searchableSurface:

    geometry
    {
        sphere
        {
            type searchableSphere;
            centre (0 0 0);
            radius 1;
        }
    }

The vertices, block topology and curved edges are defined in the usual
way, for example

    v 0.5773502;
    mv -0.5773502;

    a 0.7071067;
    ma -0.7071067;

    vertices
    (
        ($mv $mv $mv)
        ( $v $mv $mv)
        ( $v  $v $mv)
        ($mv  $v $mv)
        ($mv $mv  $v)
        ( $v $mv  $v)
        ( $v  $v  $v)
        ($mv  $v  $v)
    );

    blocks
    (
        hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)
    );

    edges
    (
        arc 0 1 (0 $ma $ma)
        arc 2 3 (0 $a $ma)
        arc 6 7 (0 $a $a)
        arc 4 5 (0 $ma $a)

        arc 0 3 ($ma 0 $ma)
        arc 1 2 ($a 0 $ma)
        arc 5 6 ($a 0 $a)
        arc 4 7 ($ma 0 $a)

        arc 0 4 ($ma $ma 0)
        arc 1 5 ($a $ma 0)
        arc 2 6 ($a $a 0)
        arc 3 7 ($ma $a 0)
    );

which will produce a mesh in which the block edges conform to the sphere
but the faces of the block lie somewhere between the original cube and
the spherical surface which is a consequence of the edge-based
transfinite interpolation.

Now the projection of the block faces to the geometry specified above
can also be specified:

    faces
    (
        project (0 4 7 3) sphere
        project (2 6 5 1) sphere
        project (1 5 4 0) sphere
        project (3 7 6 2) sphere
        project (0 3 2 1) sphere
        project (4 5 6 7) sphere
    );

which produces a mesh that actually conforms to the sphere.

See OpenFOAM-dev/tutorials/mesh/blockMesh/sphere

This functionality is experimental and will undergo further development
and generalization in the future to support more complex surfaces,
feature edge specification and extraction etc.  Please get involved if
you would like to see blockMesh become a more flexible block-structured
mesher.

Henry G. Weller, CFD Direct.
2016-10-13 15:05:24 +01:00
fead57c2ab foamCleanTutorials: Simplified cleaning the mesh by removing the constant/polyMesh directory 2016-10-13 15:02:32 +01:00
c12573c799 twoPhaseEulerFoam, reactingTwoPhaseEulerFoam: Corrected support for implicitPhasePressure with nAlphaCorr > 1
Resolves bug-report http://bugs.openfoam.org/view.php?id=2290
2016-10-12 18:43:18 +01:00
b6e740bd74 snappyHexMesh: Added support for scotch redistribution
Requires scotch-6.?.?
2016-10-12 16:28:26 +01:00
8726fa4f57 reactingTwoPhaseEulerFoam wallBoiling.* tutorials: only run start-up in test-mode 2016-10-11 08:44:36 +01:00
83d0cc875d vtkPVblockMeshConvert: Updated to use the new blockDescriptor::edgesPointsWeights 2016-10-09 17:52:52 +01:00
4ad7d79e70 blockMesh::blockDescriptor: Generate the edge points and weights on demand 2016-10-09 15:16:41 +01:00
44281e2403 etc/config.*/unset: unset FOAM_ETC
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2285
2016-10-09 15:15:29 +01:00
a8e62ec9db wmake/rules/General/transform: added filter for third-party paths
Resolves bug-report http://bugs.openfoam.org/view.php?id=2283
2016-10-09 15:14:19 +01:00
a003028582 foamToTecplot360: Updated to use tmp.ref()
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2288
2016-10-09 15:13:50 +01:00
3542700432 blockMesh: rationalizing class and member names 2016-10-08 19:48:39 +01:00
5d93489fe7 blockMesh: Simplify reading of curvedEdges 2016-10-07 20:31:36 +01:00
30f729c023 movingWallVelocityFvPatchVectorField: Removed incorrect documentation concerning MRF
Resolves bug-report http://bugs.openfoam.org/view.php?id=2287
2016-10-07 17:38:17 +01:00
cc9aba2426 foamDictionary: New '-remove' to remove a dictionary entry
Patch contributed by Mattijs Janssens
2016-10-07 17:35:39 +01:00
dd3cd529ba reactingTwoPhaseEulerFoam::IATE: Added phaseChange source
to handle the effect of condensation and evaporation on bubble size
2016-10-07 09:34:35 +01:00
0a75f7853c plane: Make constructors explicit
Resolves bug-report http://bugs.openfoam.org/view.php?id=2284
2016-10-06 14:20:59 +01:00
164540eb3d reactingTwoPhaseEulerFoam::IATE: Added wallBoiling sub-model
to handle the size of bubbles created by boiling.  To be used in
conjunction with the alphatWallBoilingWallFunction boundary condition.

The IATE variant of the wallBoiling tutorial case is provided to
demonstrate the functionality:

tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE
2016-10-06 12:40:58 +01:00
b45452d14a twoPhaseEulerFoam: Corrected kineticTheory frictional stress at walls
Patch contributed by Juho Peltola, VTT

The new JohnsonJacksonSchaefferFrictionalStress model is included.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2058
2016-10-05 09:27:28 +01:00
38b784244b tutorials/multiphase/reactingTwoPhaseEulerFoam: Initialize by first running without boiling
then restart with boiling.

Contributed by Juho Peltola, VTT
2016-10-04 16:39:49 +01:00
f06f20662e alphatWallBoilingWallFunctionFvPatchScalarField: Evaluate alphatConv_ outside loop to improve speed
Patch contributed by Juho Peltola
2016-10-04 16:37:32 +01:00
213e131d0f reactingTwoPhaseEulerFoam: Enhanced support for wall boiling
Contributed by Juho Peltola, VTT

Notable changes:

    1. The same wall function is now used for both phases, but user must
       specify phaseType ‘liquid’ or ‘vapor’

    2. Runtime selectable submodels for:
       - wall heat flux partitioning between the phases
       - nucleation site density
       - bubble departure frequency
       - bubble departure diameter

    3. An additional iteration loop for the wall boiling model in case
       the initial guess for the wall temperature proves to be poor.

The wallBoiling tutorial has been updated to demonstrate this new functionality.
2016-10-04 09:53:09 +01:00
f7fb15fa39 icpc rules: removed another unimportant warning 2016-10-04 08:10:28 +01:00
dee0264768 Removed #define __STDC_LIMIT_MACROS needed for C++ < 11
See http://bugs.openfoam.org/view.php?id=1474
2016-10-04 08:08:42 +01:00
3a058e9562 Updated header 2016-10-03 09:12:55 +01:00
cc4c2989c3 fieldTypes: Using C++11 __VA_ARGS__ functionality created the FOR_ALL_FIELD_TYPES macro
This supports the abstraction of the set of fields from the field code
generation macros making it easier to change the set of fields supported
by OpenFOAM.  This functionality is demonstrated in the updated
fvPatchFields macros and will be applied to the rest of the field code
generation macros in the future.
2016-10-03 09:08:01 +01:00
298003f333 Map, SortableList: Added constructors from and assignment to initializer list
Patch based on contribution from Mattijs Janssens
Resolves http://bugs.openfoam.org/view.php?id=2276
2016-09-30 18:49:38 +01:00
a316584c72 Field: Added constructor from UIndirectList
Patch contributed by Mattijs Janssens
2016-09-30 18:48:26 +01:00
ff28c48477 triangle storage: Return barycentric coordinates as FixedList instead of List
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2278
2016-09-30 16:22:55 +01:00
deecbf9e06 fvOptions: Corrected docs: 'fieldName' -> 'fields'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2273
2016-09-28 19:42:07 +01:00
cdde2d63ad blockMesh: Added printing of the block description to the '-help' output
blockMesh -help

Usage: blockMesh [OPTIONS]
options:
  -blockTopology    write block edges and centres as .obj files
  -case <dir>       specify alternate case directory, default is the cwd
  -dict <file>      specify alternative dictionary for the blockMesh description
  -noFunctionObjects
                    do not execute functionObjects
  -region <name>    specify alternative mesh region
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Block description

  For a given block, the correspondence between the ordering of
  vertex labels and face labels is shown below.
  For vertex numbering in the sequence 0 to 7 (block, centre):
    faces 0 (f0) and 1 are left and right, respectively;
    faces 2 and 3 are bottom and top;
    and faces 4 and 5 are front the back:

           4 ---- 5
      f3   |\     |\   f5
      |    | 7 ---- 6   \
      |    0 |--- 1 |    \
      |     \|     \|    f4
      f2     3 ---- 2

            f0 ----- f1

Using: OpenFOAM-dev (see www.OpenFOAM.org)
Build: dev-9d3f407fc741
2016-09-25 20:05:12 +01:00
f8d3a2a0a6 pre-commit-hook: Added checks for multi-level template parameters and 'NULL'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2267

   1. Spaced ending of multi-level template parameters are not allowed, such as:

       List<List<scalar> >

     which instead should be:

       List<List<scalar>>

   2. The use of the 'NULL' macro should be replaced by 'nullptr'
2016-09-25 18:43:50 +01:00
a96b1c2325 blockMesh::blockDescriptor: Added block indexing description 2016-09-25 18:38:31 +01:00
25e5f67f86 processorFvPatchField: If the value is not supplied set to the internal field 2016-09-25 18:38:06 +01:00
9d3f407fc7 processorFvPatchField: Reinstate 'value' as an optional entry 2016-09-25 16:54:20 +01:00
c6b3632c85 tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4: deleted
Resolves bug-report http://bugs.openfoam.org/view.php?id=2268
2016-09-25 16:53:37 +01:00
4603a8b253 fvPatchFields: Constructors from dictionary now call the corresponding constructor of the fvPatchField base-class
to ensure 'patchType' is set as specified.

Required substantial change to the organization of the reading of the
'value' entry requiring careful testing and there may be some residual
issues remaining.  Please report any problems with the reading and
initialization of patch fields.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2266
2016-09-25 09:11:53 +01:00
8bbb379df0 blockMesh: Added support for (<block> <face>) specification of patch faces
e.g. for the cavity tutorial the moving wall patch can be specified in
terms of the block vertices as before:

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (3 7 6 2)
        );
    }
    .
    .
    .

or the new specification of the face as block 0, block face 3:

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (0 3)
        );
    }
2016-09-24 08:40:13 +01:00
c169ca14f5 Updated template formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2264
2016-09-22 21:03:30 +01:00
7a52d2a5b1 globalMeshData: Revert NULL -> nullptr 2016-09-22 14:22:26 +01:00
521d7a4aec globalIndexAndTransform: Support any number of transforms but no more than 3 per point
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1815
2016-09-22 14:10:45 +01:00
0e429dad08 wmake: export WM_SCHEDULER from sub-shell for non-POSIX bash compliance 2016-09-22 08:34:15 +01:00
a27eb13ad6 decomposePar: Corrected construction of cloud for processors
Resolves bug-report http://bugs.openfoam.org/view.php?id=2239
2016-09-21 17:19:58 +01:00
ee3cf86008 linearUpwind: Simplified the vector specialization 2016-09-21 11:09:59 +01:00
4fbdef6444 linearUpwind: Specialize for volVectorField to support cached gradients 2016-09-21 09:50:49 +01:00
450779d29a linearUpwind: Evaluate the gradient of each component of the field to provide support all field types
Also reduces peak-storage as it now generates a volVectorField for each component
rather than the gradient of the field type.
2016-09-20 21:34:47 +01:00
2fd4b6bce4 turbulentTransportModels: Add new Maxwell model 2016-09-20 21:11:41 +01:00
10fb32db8d tutorials: Renamed sub-directories ras -> RAS and les -> LES 2016-09-20 19:03:40 +01:00
3264ba7ad5 Maxwell model for viscoelasticity using the upper-convected time
derivative of the stress tensor.  See
http://en.wikipedia.org/wiki/Upper-convected_Maxwell_model

The model includes an additional viscosity (nu) from the transport
model from which it is instantiated, which makes it equivalent to the
Oldroyd-B model for the case of an incompressible transport model.
See https://en.wikipedia.org/wiki/Oldroyd-B_model
2016-09-20 18:38:15 +01:00
f6fa3d5cc6 Organisation of pimpleFoam tutorials into categories of turbulence modelling 2016-09-20 18:24:09 +01:00
855f424635 TurbulenceModels: Created a general base-class and selection mechanism for laminar stress models
Renamed the original 'laminar' model to 'Stokes' to indicate it is a
linear stress model supporting both Newtonian and non-Newtonian
viscosity.

This general framework will support linear, non-linear, visco-elastic
etc. laminar transport models.

For backward compatibility the 'Stokes' laminar stress model can be
selected either the original 'laminar' 'simulationType'
specification in turbulenceProperties:

    simulationType laminar;

or using the new more general 'laminarModel' specification:

    simulationType laminar;

    laminar
    {
        laminarModel        Stokes;
    }

which allows other laminar stress models to be selected.
2016-09-20 15:05:43 +01:00
eb8d593df2 foamList: Added missing -I$(LIB_SRC)/meshTools/lnInclude needed for recent changes to AMI 2016-09-20 14:51:13 +01:00
5df2c040fa reactingParcelFilmFoam: Corrected support for -postProcess option 2016-09-20 14:50:41 +01:00
b07a783fdd solvers: Moved createRDeltaT.H into createFields.H so that it is available with the -postProcess option
Required to support LTS with the -postProcess option with sub-models dependent on ddt
terms during construction, in particular reactingTwoPhaseEulerFoam.
2016-09-19 22:08:39 +01:00
87c78ca1ef blockMesh: Added block face orientation checks to aid debugging
Individual inward-pointing faces are checked and if all faces are
inward-pointing the block is inside-out.  These errors are fatal and the
message indicates which block the error occurs in and where in the
blockMeshDict the block is defined.
2016-09-19 07:52:42 +01:00
fba2c4f29b mapFields: reset the FOAM_CASE environment variable
Patch proveded by Alexey Matveichev
Resolves bug-report http://bugs.openfoam.org/view.php?id=2229
2016-09-17 14:53:15 +01:00
a6ee4f5af3 setInitialMultiRegionDeltaT: update to be consistent with the standard setInitialDeltaT
Resolves bug-report http://bugs.openfoam.org/bug_change_status_page.php
2016-09-16 17:39:50 +01:00
78e7952bfc PatchToPatchInterpolate: Update to use the tmp ref() non-const access function
Resolves bug-report http://bugs.openfoam.org/view.php?id=2248
2016-09-16 14:49:50 +01:00
b4bf4be700 GAMGAgglomeration: corrected continueAgglomerating
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2226
2016-09-16 11:10:03 +01:00
47811eae8e rigidBodyMotion: Change the transform averaging to use approximate inverse-distance weighting
Now works correctly for an arbitrary number of bodies
Resolves bug-report http://bugs.openfoam.org/view.php?id=2211
2016-09-14 14:14:14 +01:00
2c90bd2ee6 rigidBodyMeshMotionSolver: experimental nDoF mesh-motion solver supporting the displacement-based elliptic solvers
Specification for the tutorials/multiphase/interDyMFoam/ras/floatingObject case:

dynamicFvMesh       dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so" "libfvMotionSolvers.so");

solver             rigidBodyMotionSolver;

rigidBodyMotionSolverCoeffs
{
    report          on;

    meshSolver
    {
        solver displacementLaplacian;

        displacementLaplacianCoeffs
        {
            diffusivity inverseDistance (floatingObject);
        }
    }
.
.
.
2016-09-14 09:59:02 +01:00
a28370dda1 MGridGenGAMGAgglomeration: Update call to continueAgglomerating
Resolves bug-report http://bugs.openfoam.org/view.php?id=2244
2016-09-14 09:41:03 +01:00
a7210ecb1a GAMGSolverSolve: Replace PBiCG with PBiCGStab to solve the coarsest-level of asymmetric matrices 2016-09-10 16:44:01 +01:00
3033d4677b Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-09-09 21:49:06 +01:00
9a13c991cc reactingEulerFoam/interfacialModels/dragModels: Corrected file permissions 2016-09-09 21:48:29 +01:00
ed068e4c20 foamEtcFile: replaced redundant package directory name 2016-09-09 20:00:26 +01:00
017281a116 combustionModels/FSD: Corrected
Renamed 'omega' to 'FSDomega' to avoid a clash with the k-omega
turbulence models.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2237
2016-09-09 16:23:28 +01:00
7531b2a4be renumberMethods: Added missing .C file for structuredRenumber 2016-09-09 14:54:12 +01:00
ca4accb420 wmake: Updated '-q' option to work on Ubuntu and other 'dash'-based GNU/Linux distributions 2016-09-09 14:53:10 +01:00
52323f8dd1 codedFvOption: Added cellSet support
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2240
2016-09-09 12:29:06 +01:00
648c777dd0 structuredRenumber: Corrected to run in parallel
Patch contributed by Mattijs Janssens
2016-09-09 12:20:25 +01:00
758d76c795 functionObjectList::readFunctionObject: Added support for region specification
Now the postProcess utility '-region' option works correctly, e.g. for
the chtMultiRegionSimpleFoam/heatExchanger case

postProcess -region air -func "mag(U)"

calculates 'mag(U)' for all the time steps in region 'air'.
2016-09-09 11:01:37 +01:00
7b971a9ebf tutorials/multiphase/interFoam/ras/weirOverflow: Updated to improve robustness
Resolves bug-report http://bugs.openfoam.org/view.php?id=2236
2016-09-07 14:05:37 +01:00
faa6d0e4da GAMGAgglomeration: Add support for nCellsInCoarsestLevel = 1 and better agglomeration termination
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2226
2016-09-06 13:29:05 +01:00
4232f90093 algebraicPairGAMGAgglomeration: agglomerate based on the maximum of the upper and lower coefficients
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2234
2016-09-06 12:56:54 +01:00
630d2c76dc etc/config.sh/settings: Updated set of WM_CC, WM_CXX etc. variables to compile ThirdParty software
Patch provided by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2051
2016-09-05 20:48:50 +01:00
cec98b2985 Solvers: Corrected typo 2016-09-05 11:58:41 +01:00
bebab24133 Updated header 2016-09-05 11:57:41 +01:00
c339d3018c 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
fec5c063f5 polyMesh: clear cellTree if mesh moves
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2235
2016-09-04 21:16:55 +01:00
3eacfb7621 PV*Readers/Allwmake: set CXX and CC if required
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2233
2016-09-04 21:05:20 +01:00
77152f3f10 polyBoundaryMesh: Remove patchGroups which clash with patch names
This allows freedom in the naming of patches when patchGroup-based
boundary specification is not used.

Patch contributed by Mattijs Janssens
2016-09-04 10:35:19 +01:00
a7df748094 tutorials/multiphase/interDyMFoam/ras/DTCHull: Corrected specification of restraints
Resolves bug-report http://bugs.openfoam.org/view.php?id=2224
2016-09-03 21:14:17 +01:00
dbe30eaef7 decomposePar: corrected decomposeParDict read using -region option
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2227
2016-09-03 20:54:16 +01:00
5507dd7868 EulerCoordinateRotation,STARCDCoordinateRotation: Corrected typo
Resolves bug-report http://bugs.openfoam.org/view.php?id=2225
2016-09-03 16:46:01 +01:00
133518f6e4 OpenFOAM-dev/etc/bashrc: Use 'pwd -P' to handle relative paths and links
Resolves bug-report http://bugs.openfoam.org/view.php?id=2223
2016-09-03 15:57:52 +01:00
582f59c4cb Revert "polyBoundaryMesh::groupPatchIDs(): Make name clash between patch and group name fatal"
This reverts commit 12ee017901.
2016-08-26 11:44:56 +01:00
12ee017901 polyBoundaryMesh::groupPatchIDs(): Make name clash between patch and group name fatal
If this clash is allowed boundary conditions set by wildcards are
processed incorrectly.
2016-08-25 16:42:08 +01:00
71a646e63c src/Pstream: Added Allwclean consistent with the Allwmake
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2218
2016-08-25 08:25:12 +01:00
22722a877c foamToVTK, PVFoamReader: Resolve problems converting VTK_WEDGE
- There will be triangles rendered inside the mesh (when
    surface-rendering), because one of the cell's triangles is defined
    as a quadrangle in VTK_WEDGE.

  - Therefore, this VTK_WEDGE representation is only used when
    decomposing the mesh, otherwise the correct representation is done
    by VTK_POLYHEDRON.

  - Furthermore, using VTK_PYRAMID gave worse result, because it renders
    2 triangles inside the mesh for the collapsed quadrangle, likely due
    to mismatch with the adjacent cell's face.

  - Using VTK_HEXAHEDRON was not tested in this iteration, given that it
    should give even worse results, when compared to using VTK_PYRAMID.

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2099
2016-08-24 22:08:10 +01:00
b37269d481 functionObjects: Improved handling of multi-file indexing and code style
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2216
2016-08-24 19:34:00 +01:00
f64624924e forceCoeffs: Removed duplicate header writing
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2216
2016-08-24 16:01:29 +01:00
73eee8e542 functionObjects::forces: Corrected file names when using the 'binData' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2214
2016-08-24 11:24:27 +01:00
f50d727863 foamToVTK::vtkTopo: Apply fix from #1633
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2213
2016-08-24 09:45:23 +01:00
8396a0faf2 functionObjects::volRegion: Cache integral properties for writeFileHeader 2016-08-24 09:32:34 +01:00
aef116bd60 Updated headers 2016-08-24 08:57:44 +01:00
68f57d3126 lagrangian::Analytical: improved analytical integration for the U-equation
Patch contributed by Timo Niemi
In response to bug-report http://bugs.openfoam.org/view.php?id=2199
2016-08-23 22:03:24 +01:00
9354748814 src/parallel/decompose: Remove dependency on "SCOTCH_ROOT" and repair "decompose/Allwclean"
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2212
2016-08-23 21:53:35 +01:00
73c48c5a7e etc/bashrc, etc/config.sh:
- "$FOAM_USER_APPBIN" and "$FOAM_USER_LIBBIN" have been added to
    "foamOldDirs" in "etc/bashrc" and "etc/config.sh/unset"

  - "$OPAL_PREFIX" is now undefined in the option "SYSTEMOPENMPI" within
    "etc/config.sh/mpi", but only if the path defined in this variable
    is cleaned when using "foamCleanPath".

  - "$OPAL_PREFIX" is now also conditionally undefined in
    "etc/config.sh/unset" when the path is picked up by "foamCleanPath".

Patch contributed by Bruno Santos
Resolved bug-report http://bugs.openfoam.org/view.php?id=2210
2016-08-23 21:02:55 +01:00
cf3d45016a wmake/rules/linux64.*KNL: Improved optimization option for Intel MIC (Knights Landing) processor
Patch contributed by Paul Edwards, Intel.
2016-08-22 16:27:46 +01:00
b74d95b2a9 Corrected documentation in classes derived from temperatureCoupleBase
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2207
2016-08-22 14:31:40 +01:00
4ebf07f9cc doc/Guides: Updated to OpenFOAM-4.0 2016-08-20 13:29:07 +01:00
8f12b35976 codingStyleGuide: Improved formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2194
2016-08-20 09:33:11 +01:00
d245a7e485 septernion: Correct quaternion normalization after averaging
Resolves bug-report http://bugs.openfoam.org/view.php?id=2203
2016-08-19 20:32:30 +01:00
3744137dc5 /primitives/triad: Initialize array to avoid warning from icpc 2016-08-18 11:22:15 +01:00
98ba05e02e ODESolvers::adaptiveSolver: Changed functions which need not be to non-virtual
Resolves warnings from clang
2016-08-18 10:36:52 +01:00
e8675e7088 functionObjects::writeObjects: Corrected namespace for the definition of the NamedEnum
Resolves compilation failure with clang
2016-08-18 10:36:04 +01:00
7a674dbc07 epsilonWallFunction, omegaWallFunction: Removed unused variabl 2016-08-18 08:23:54 +01:00
628d86e575 multivariateScheme: Correct local typedef name 2016-08-17 23:04:00 +01:00
68ebfd83c7 Update header 2016-08-17 23:03:49 +01:00
39c241689e primitives/hashes/SHA1: undef macros 2016-08-17 23:03:27 +01:00
4669fa03a1 sigWriteNow, sigStopAtWriteNow: Change runTimePtr_ to static member 2016-08-17 23:02:58 +01:00
15621678fa fvDOM radiation model: Removed unreliable 'cacheDiv' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2182
2016-08-17 17:12:20 +01:00
16804b9d6f functionObjects::writeObjects: improved code and docs
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2090
2016-08-17 14:41:42 +01:00
f6acf86a5e viscosityModels::Casson: Added example specification for blood
Contributed by Sergey Sindeev
2016-08-17 13:46:46 +01:00
12edcc8bad viscosityModels::Casson: Updated constructor to avoid the need to specify the dimensions of the coefficients 2016-08-17 13:45:18 +01:00
1ba4a19d96 ODESolvers: Updated references to APA style 2016-08-17 10:27:15 +01:00
ab205d2e94 viscosityModels::Casson: New viscosity model
Description
    An incompressible Casson non-Newtonian viscosity model.

    References:
    \verbatim
        Casson, N. (1959).
        Rheology of disperse systems.
        In Proceedings of a Conference Organized by the
        British Society of Rheology.
        Pergamon Press, New York.

        Fournier, R. L. (2011).
        Basic transport phenomena in biomedical engineering.
        CRC Press.
    \endverbatim

Contributed by Sergey Sindeev
2016-08-17 09:38:17 +01:00
4e0d45e821 viscosityModels: State virtual functions are virtual also in the derived classes 2016-08-17 09:37:37 +01:00
1c1791bb2a surfacePatch.C: Corrected formatting 2016-08-17 08:08:21 +01:00
7238bd1016 functionObjects::writeObjects: Added option "writeOption"
Description
    Allows specification of different writing frequency of objects registered
    to the database.

    It has similar functionality as the main time database through the
    \c writeControl setting:
      - timeStep
      - writeTime
      - adjustableRunTime
      - runTime
      - clockTime
      - cpuTime

    It also has the ability to write the selected objects that were defined
    with the respective write mode for the requested \c writeOption, namely:
      - \c autoWrite - objects set to write at output time
      - \c noWrite   - objects set to not write by default
      - \c anyWrite  - any option of the previous two

    Example of function object specification:
    \verbatim
    writeObjects1
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");
        ...
        objects     (obj1 obj2);
        writeOption anyWrite;
    }
    \endverbatim

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2090
2016-08-16 23:41:22 +01:00
fb22ab0b5f fvMesh,dynamicRefineFvMesh: Rename writeObjects -> writeObject for consistency with regIOobject 2016-08-16 23:40:27 +01:00
f61ff85e7c dlLibraryTable: Add support for library path expansion
Patch contributed by Mattijs Janssens
Resolves patch request http://bugs.openfoam.org/view.php?id=2195
2016-08-16 16:12:19 +01:00
e60bfc7d02 AMIInterpolation: Make tracking across AMI more robust
If a suitable face an the receiving side of the AMI cannot be found the
particle is marked for deletion.
2016-08-16 11:33:27 +01:00
2673f4e2dd lagrangian: Delete lost particles on restart
Warning messages are generated for each particle deleted
2016-08-16 11:32:27 +01:00
b24607a480 lagrangian::Cloud: Removed unused function 2016-08-16 11:31:51 +01:00
db5c230819 lagrangian:: hasWallImpactDistance() need not be virtual 2016-08-16 11:31:14 +01:00
8187170d2d tetPtI -> tetPti 2016-08-16 11:30:17 +01:00
813baea823 ParaView: GUI resource files in plugins are no longer supported
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2192
2016-08-16 08:46:39 +01:00
eaae7ef4e6 codingStyleGuide: Corrected typos
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2193
2016-08-16 08:36:36 +01:00
14470c0dda fvMatrixSolve: Set the solver name to that used to solve the components
Resolves bug-report http://bugs.openfoam.org/view.php?id=2189
2016-08-14 21:39:58 +01:00
d8a4643e81 functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write
Time: call functionObject 'execute()' and 'end()' for last time-step

Now the operation of functionObject 'end()' call is consistent between running and post-processing
2016-08-12 21:46:21 +01:00
18a64f437c Revert "functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write"
This reverts commit 4fda55b2ee.
2016-08-12 21:34:37 +01:00
4fda55b2ee functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write 2016-08-12 21:28:00 +01:00
8c0718cb43 LduMatrix/SolverPerformance: Changed nIterations from label to labelType corresponding to the type solved
Now the number of iterations to solve each component in a segregated
solution are stored and returned in the SolverPerformance class.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2189
2016-08-12 14:56:03 +01:00
5dea077008 ILList: Added doc for assignment 2016-08-12 13:28:56 +01:00
8e9a8373dd OpenFOAM/containers/LinkedLists: Replaced partially specialized template classes with C++11 template aliases
This feature of C++11 avoids complex code duplication simplifies code maintenance
2016-08-12 13:21:05 +01:00
0f6fb1c07a functionObjects::surfaceFieldValue: New rational name for the surfaceRegion functionObject
surfaceRegion will be the name of a class to provide support for surface
region selection.
2016-08-12 10:04:11 +01:00
8060826b2a LList, SLList: Added construction from and assignment to initializer_list
SLList: now a C++11 template alias rather than a wrapper-class.
2016-08-12 10:01:41 +01:00
3d742e78a9 OpenFOAM/containers: Standardized assignment docs 2016-08-12 10:00:48 +01:00
c4f844a68b FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
275a59af66 HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
e38022300f specieReactionRates: Corrected namespace of the debug switches 2016-08-11 16:27:05 +01:00
9fc31584f9 chemistryModel: Minor clean-up 2016-08-11 16:26:50 +01:00
1cd4e2b8c1 chemPointISAT: Removed deprecated 'register' type specifier 2016-08-11 16:26:19 +01:00
7c8c4d73da wmake/rules/linux.*Icc: Removed a new unhelpful warning message 2016-08-11 16:25:53 +01:00
d27e752ad6 functionObjects::volFieldValue: Updated to use the new volRegion functionObject 2016-08-11 16:25:27 +01:00
f43f34f1a8 functionObjects::specieReactionRates: Added volRegion support
Now the specie reaction rates may be averaged over the entire domain or
a specified cellZone.
2016-08-11 15:15:45 +01:00
6a529f2f76 functionObjects::volRegion: General base-class to handle vol (cell) region processing
Renamed the original volRegion -> volFieldValue to clarify the purpose
of this class to process vol fields on a volRegion.
2016-08-11 15:11:19 +01:00
3621de7990 functionObjects::specieReactionRates: New functionObject to write the domain averaged reaction rates for each specie for each reaction 2016-08-10 19:48:43 +01:00
4765702445 functionObjects: Further simplification and rationalization using the fvMeshFunctionObject base-class 2016-08-10 12:29:19 +01:00
5602c48426 List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
45a480709f reconstructPar: Handle the copy of the 'uniform' directory when only 1 region is reconstructed
Resolves bug-report http://bugs.openfoam.org/view.php?id=2186
2016-08-09 16:42:48 +01:00
5c11aa1007 kOmegaSSTLM: Corrected coefficient in Fsublayer 2016-08-09 13:54:10 +01:00
126813acae Corrected nullptr collateral damage
Resolves bug-report http://bugs.openfoam.org/view.php?id=2181
2016-08-08 15:38:53 +01:00
4a301e94c6 functionObjects: Separated writeFile and logFiles (previously writeFiles) from regionFunctionObject
Now the functionality to write single graph files or log files (vs time)
may be used in the creation of any form of functionObject, not just
those relating to a mesh region.
2016-08-07 15:23:55 +01:00
65207e29ea HashTable: Added C++11 initializer_list constructor
e.g.
    HashTable<label, string> table1
    {
        {"kjhk", 10},
        {"kjhk2", 12}
    };

    HashTable<label, label, Hash<label>> table2
    {
        {3, 10},
        {5, 12},
        {7, 16}
    };
2016-08-05 22:30:26 +01:00
d2982c18ab Test-fileName: Added recent etcFiles.H 2016-08-05 17:25:56 +01:00
7656c076c8 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
618753c5b4 C++11: Update compilation rules to specify C++11 support and conformance
The change from C++0x to C++11 allows all of C++11 functionality to be
used in OpenFOAM, in particular constructor delegation which avoids code
duplication or constructor helper functions.  However, this also means a
change to the minimum gcc version supported which is now 4.7 rather than
4.5.

Note that gcc-4.7 does not support the entire C++11 standard but does
support all of the functionality currently needed for further OpenFOAM
development.  The minimum gcc-version which supports the entire C++11
standard is 4.8 which is now the recommended minimum gcc version.
2016-08-05 16:28:19 +01:00
42e6cf574d FixedList: Add constructors from iterators and C++11 initializer_list using C++11 constructor delegation 2016-08-05 16:25:18 +01:00
438c9b901b Test-List: Add demonstration of C++11 initializer list in conjunction with uniform initialization of vector
List<vector> list5
     {
         {5, 3, 1},
         {10, 2, 2},
         {8, 1, 0}
     };
2016-08-05 16:22:51 +01:00
d439ec4d04 BrunDrippingInjection: Corrected default type of deltaStable 2016-08-05 08:26:45 +01:00
47c6b9e12e epsilonWallFunction, omegaWallFunction: Set generation to zero in laminar sub-layer
Improves stability for complex flows
2016-08-04 22:25:27 +01:00
454df8426d BrunDrippingInjection: Simplified implementation 2016-08-04 15:20:53 +01:00
8d564f1b04 BrunDrippingInjection: Calculate drop diameter from the capillary length
The diameter of the drops formed are obtained from the local capillary
length multiplied by the \c dCoeff coefficient which defaults to 3.3.

Reference:
    Lefebvre, A. (1988).
    Atomization and sprays
    (Vol. 1040, No. 2756). CRC press.
2016-08-04 15:02:51 +01:00
f260780b73 omegaWallFunction: Improved low-Reynolds number behavior and consistency with the epsilonWallFunction
Changed default mode of operation to use standard y+ based switching
rather than the previous ad hoc blending and added consistent handling
of the near-wall generation term.

This boundary condition provides a wall constraint on turbulnce specific
dissipation, omega for both low and high Reynolds number turbulence models.

The near-wall omega may be either blended between the viscous region and
logarithmic region values using:

    \f[
        \omega = sqrt(\omega_{vis}^2 + \omega_{log}^2)
    \f]

where

\vartable
    \omega_{vis} | omega in viscous region
    \omega_{log} | omega in logarithmic region
\endvartable

see eq.(15) of:
\verbatim
    Menter, F., Esch, T.
    "Elements of Industrial Heat Transfer Prediction"
    16th Brazilian Congress of Mechanical Engineering (COBEM),
    Nov. 2001
\endverbatim

or switched between these values based on the laminar-to-turbulent y+ value
derived from kappa and E.  Recent tests have shown that the standard
switching method provides more accurate results for 10 < y+ < 30 when used
with high Reynolds number wall-functions and both methods provide accurate
results when used with continuous wall-functions.  Based on this the
standard switching method is used by default.
2016-08-04 10:59:23 +01:00
ffa363b328 epsilonWallFunction: Updated to work with both low- and high-Reynolds number turbulence models
This boundary condition provides a turbulence dissipation wall constraint
for low- and high-Reynolds number turbulence models.

The condition can be applied to wall boundaries for which it
- calculates \c epsilon and \c G
- specifies the near-wall epsilon value

where

\vartable
    epsilon | turblence dissipation field
    G       | turblence generation field
\endvartable

The model switches between laminar and turbulent functions based on the
laminar-to-turbulent y+ value derived from kappa and E.

Recent tests have shown that this formulation is more accurate than
the standard high-Reynolds number form for 10 < y+ < 30 with both
standard and continuous wall-functions.

Replaces epsilonLowReWallFunction and should be used for all
low-Reynolds number models for which the epsilonLowReWallFunction BC was
recommended.
2016-08-04 10:52:12 +01:00
1405a31064 TurbulenceModels::derivedFvPatchFields: standardized the cell index of the 'faceCell' 2016-08-04 10:51:09 +01:00
cc8781f47d ORourkeCollision: Corrected probability test
Resolves bug-report http://bugs.openfoam.org/view.php?id=2097
2016-08-04 10:04:06 +01:00
232a2a092c FixedList: Corrected checkSize
Resolves bug-report http://bugs.openfoam.org/view.php?id=2178
2016-08-03 19:45:31 +01:00
1d4bedae68 surfaceFilmModels::BrunDrippingInjection: New dripping model based on the Rayleigh-Taylor stability analysis
of film flow on an inclined plane by Brun et.al.

    Brun, P. T., Damiano, A., Rieu, P., Balestra, G., & Gallaire, F. (2015).
    Rayleigh-Taylor instability under an inclined plane.
    Physics of Fluids (1994-present), 27(8), 084107.
2016-08-02 21:35:37 +01:00
1467bf2428 RunFunctions: corrected typo $SUFFIX -> $LOG_SUFFIX
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2176
2016-08-02 21:32:38 +01:00
e301f74c93 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
47bb19c525 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
22574e7133 List: Reinstated construction from two iterators and added construction from an initializer list
Until C++ supports 'concepts' the only way to support construction from
two iterators is to provide a constructor of the form:

        template<class InputIterator>
        List(InputIterator first, InputIterator last);

which for some types conflicts with

        //- Construct with given size and value for all elements
        List(const label, const T&);

e.g. to construct a list of 5 scalars initialized to 0:

    List<scalar> sl(5, 0);

causes a conflict because the initialization type is 'int' rather than
'scalar'.  This conflict may be resolved by specifying the type of the
initialization value:

    List<scalar> sl(5, scalar(0));

The new initializer list contructor provides a convenient and efficient alternative
to using 'IStringStream' to provide an initial list of values:

    List<vector> list4(IStringStream("((0 1 2) (3 4 5) (6 7 8))")());

or

    List<vector> list4
    {
        vector(0, 1, 2),
        vector(3, 4, 5),
        vector(6, 7, 8)
    };
2016-08-02 09:31:41 +01:00
6f82d23d17 Make/options: Removed duplicate entries
Thanks to Bruno Santos for providing the script to check the files
Resolves bug-report http://bugs.openfoam.org/view.php?id=2169
2016-08-01 20:55:16 +01:00
2519a47b74 tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile: Corrected typo
Resolves bug-report http://bugs.openfoam.org/view.php?id=2170
2016-08-01 20:10:19 +01:00
089b50696c tutorials/multiphase/reactingTwoPhaseEulerFoam: Corrected regular expressions
Resolves bug-report http://bugs.openfoam.org/view.php?id=2167
2016-08-01 17:11:44 +01:00
26f706da43 fvAgglomerationMethods/Allwmake: Removed reference to Scotch
Resolves bug-report http://bugs.openfoam.org/view.php?id=2168
2016-08-01 17:05:16 +01:00
cabe698d5f DimensionedField<scalar, volMesh> -> volScalarField::Internal
DimensionedField<vector, volMesh> -> volVectorField::Internal
2016-08-01 14:28:54 +01:00
d394cec0dc meshToMeshTemplates: Updated non-const access to the source patch field
Resolves bug-report http://bugs.openfoam.org/view.php?id=2165
2016-08-01 14:28:18 +01:00
84f50077a7 scalarTransport function: renamed scalar field -> s 2016-07-31 17:12:49 +01:00
aa7b3dfe7d CrankNicolsonDdtScheme: Corrected handling of the boundary field to avoid premature reset of the time-index
Resolves bug-report http://bugs.openfoam.org/view.php?id=2162
2016-07-29 17:48:04 +01:00
4ac9c54b46 tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict.sixDoF: Renamed 'rho' -> 'rhoSolid'
to avoid name clash
2016-07-29 17:47:20 +01:00
028617c30c TurbulenceModels: Reorganized support macros to simplify the creation of additional turbulence model libraries 2016-07-29 15:59:09 +01:00
7f4af1517d tutorials/incompressible/simpleFoam/T3A: ERCOFTAC T3A 3% test-case for the kOmegaSSTLM model
References:
    Savill, A. M. (1993).
    Some recent progress in the turbulence modelling of by-pass transition.
    Near-wall turbulent flows, 829-848.

    Savill, A. M. (1996).
    One-point closures applied to transition.
    In Turbulence and transition modelling (pp. 233-268).
    Springer Netherlands.

Based on case contributed by Florian Schwertfirm, Kreuzinger und Manhart Turbulenz GmbH.
2016-07-29 10:51:42 +01:00
4ad0f529a0 TurbulenceModels::kOmegaSSTLM: New correlation-based turbulent transition model
Description
    Langtry-Menter 4-equation transitional SST model
    based on the k-omega-SST RAS model.

    References:
        Langtry, R. B., & Menter, F. R. (2009).
        Correlation-based transition modeling for unstructured parallelized
        computational fluid dynamics codes.
        AIAA journal, 47(12), 2894-2906.

        Menter, F. R., Langtry, R., & Volker, S. (2006).
        Transition modelling for general purpose CFD codes.
        Flow, turbulence and combustion, 77(1-4), 277-303.

        Langtry, R. B. (2006).
        A correlation-based transition model using local variables for
        unstructured parallelized CFD codes.
        Phd. Thesis, Universität Stuttgart.

Implemented by Henry G. Weller, CFD Direct in collaboration with Florian
Schwertfirm, Kreuzinger und Manhart Turbulenz GmbH.
2016-07-29 10:45:49 +01:00
c8f8a6c162 fvMatrixSolve: Corrected ref() access to field
Resolves bug-report http://bugs.openfoam.org/view.php?id=2163
2016-07-28 18:00:21 +01:00
58b0f1bc5c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-28 13:52:27 +01:00
a18895cba0 functionObjects::wallShearStress: Corrected dimensions for compressible cases 2016-07-28 13:51:13 +01:00
2105fa6e91 kOmegaSSTSAS: Updated header 2016-07-28 13:50:58 +01:00
02dd85167e TurbulenceModels::kOmegaSST.*: Updated source-terms and associated functions to use volScalarField::Internal
This is more efficient, avoids divide-by-0 when evaluating unnecessary
boundary values and avoids unnecessary communications when running in parallel.
2016-07-28 13:48:38 +01:00
4f6117e973 wmake/rules/linux.*Icc: Updated for icpc (ICC) 16.0.3 20160415 2016-07-28 13:47:44 +01:00
a6056b7329 foamNewBC: removes phip completely for fixedValue condition 2016-07-26 15:25:18 +01:00
46d69e1dea lagrangian::BrownianMotionForce: Changed from a cubic to a spherical distribution
See also: StochasticDispersionRAS
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-23 11:53:48 +01:00
96645225ed BrownianMotionForce: Removed the spurious additional 'eta'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-22 21:12:09 +01:00
2915e6ba19 decomposePar: Speed-up decomposing with constraints
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2159
2016-07-22 17:19:21 +01:00
547987ab44 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-22 16:58:22 +01:00
0072b61124 checkMesh: Added option to write sets
- the checking for point-connected multiple-regions now also writes the
    conflicting points to a pointSet
  - with the -writeSets option it now also reconstructs & writes pointSets
2016-07-22 16:57:37 +01:00
38be36063a checkMesh: Added option to write sets
- the checking for point-connected multiple-regions now also writes the
    conflicting points to a pointSet
  - with the -writeSets option it now also reconstructs & writes pointSets
2016-07-22 16:53:49 +01:00
ac67f6a84b lagrangian::BrownianMotion: Corrected Boltzmann constant used in the force expression
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-22 16:15:04 +01:00
7f373fe967 snappyHexMesh: points on more than one cell region now duplicated if detected on any processor
rather than all processor
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1936
2016-07-22 14:48:38 +01:00
02c9367dee forces: Updated reading of 'nu'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2158
2016-07-22 09:56:02 +01:00
08a7438038 reconstructPar: Added support for decomposing "uniform" directories in multi-region cases
Resolves bug-report http://bugs.openfoam.org/view.php?id=2156
2016-07-20 18:47:58 +01:00
0dfb1d6935 decomposePar: Added support for decomposing "uniform" directories in multi-region cases
Resolves bug-report http://bugs.openfoam.org/view.php?id=2156
2016-07-20 16:41:45 +01:00
46ec7a35f3 reactingEulerFoam, twoPhaseEulerFoam: Added fvOption sources to the face-based momentum equations 2016-07-19 16:33:07 +01:00
edca9a4a1a postProcess: Added call to functionObject::end() at end of time-loop
Resolves bug-report http://bugs.openfoam.org/view.php?id=2148
2016-07-19 11:57:37 +01:00
4aa5e9299b Scalar.H: Minor reorganization 2016-07-18 16:02:29 +01:00
3b7de01705 SVD: VSinvUt is not always needed and is now calculated and returned by the 'VSinvUt()' function
rather than being calculated on construction and stored as member data.

The convergence warning has be replaced with the 'convergence()' member
function which returns 'true' if the SVD iteration converged, otherwise 'false'.
2016-07-18 13:15:25 +01:00
af6b67c719 scalarMatrices: update [i][j] -> (i, j) 2016-07-18 13:12:26 +01:00
3420fee771 ISAT::chemPointISAT: Use scalarMatrices::SVD 2016-07-18 07:49:53 +01:00
5a26fb0338 wmake: Use functions from wmakeFunctions to avoid code duplication
wclean: added support for automatic searching up the tree for the Make directory if in a sub-directory
2016-07-17 22:59:55 +01:00
15ae296894 basicMultiComponentMixture: Improved the handling of Ydefault 2016-07-17 22:59:25 +01:00
f2c263b9fd TDACChemistryModel: New chemistry model providing Tabulation of Dynamic Adaptive Chemistry
Provides efficient integration of complex laminar reaction chemistry,
combining the advantages of automatic dynamic specie and reaction
reduction with ISAT (in situ adaptive tabulation).  The advantages grow
as the complexity of the chemistry increases.

References:
    Contino, F., Jeanmart, H., Lucchini, T., & D’Errico, G. (2011).
    Coupling of in situ adaptive tabulation and dynamic adaptive chemistry:
    An effective method for solving combustion in engine simulations.
    Proceedings of the Combustion Institute, 33(2), 3057-3064.

    Contino, F., Lucchini, T., D'Errico, G., Duynslaegher, C.,
    Dias, V., & Jeanmart, H. (2012).
    Simulations of advanced combustion modes using detailed chemistry
    combined with tabulation and mechanism reduction techniques.
    SAE International Journal of Engines,
    5(2012-01-0145), 185-196.

    Contino, F., Foucher, F., Dagaut, P., Lucchini, T., D’Errico, G., &
    Mounaïm-Rousselle, C. (2013).
    Experimental and numerical analysis of nitric oxide effect on the
    ignition of iso-octane in a single cylinder HCCI engine.
    Combustion and Flame, 160(8), 1476-1483.

    Contino, F., Masurier, J. B., Foucher, F., Lucchini, T., D’Errico, G., &
    Dagaut, P. (2014).
    CFD simulations using the TDAC method to model iso-octane combustion
    for a large range of ozone seeding and temperature conditions
    in a single cylinder HCCI engine.
    Fuel, 137, 179-184.

Two tutorial cases are currently provided:
    + tutorials/combustion/chemFoam/ic8h18_TDAC
    + tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC

the first of which clearly demonstrates the advantage of dynamic
adaptive chemistry providing ~10x speedup,

the second demonstrates ISAT on the modest complex GRI mechanisms for
methane combustion, providing a speedup of ~4x.

More tutorials demonstrating TDAC on more complex mechanisms and cases
will be provided soon in addition to documentation for the operation and
settings of TDAC.  Also further updates to the TDAC code to improve
consistency and integration with the rest of OpenFOAM and further
optimize operation can be expected.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.

Implementation updated, optimized and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.
2016-07-17 15:13:54 +01:00
8b8270fb11 fvPatchField: Minor reformatting 2016-07-17 14:45:24 +01:00
857915dabd LUscalarMatrix: Added processor-local matrix inverse function 2016-07-17 14:44:50 +01:00
f4a588d421 uint: Changed 'uint' to 'unsigned int'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2152
2016-07-15 11:44:56 +01:00
75bcfb3af4 Updated template formatting to C++11 2016-07-12 20:03:29 +01:00
12c3025d20 ODESolvers::seulex: Corrected 'expo' and added 'table_' resize 2016-07-12 20:02:16 +01:00
fd6701dd0f foamCleanPolyMesh: No need to warn about missing 'polyMesh' directories 2016-07-12 09:07:15 +01:00
7df235f75c Updated headers 2016-07-12 09:07:04 +01:00
a6db20e3bb foamChemistryReader: Added support for elements and specie composition
Based on a patch contributed by Francesco Contino, Tommaso Lucchini,
Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane
Backaert.
2016-07-12 09:05:00 +01:00
d50bce000d ODESolvers: Add support for efficient ODE solver resizing
Note: this reuses the existing storage rather than costly reallocation
which requires the initial allocation to be sufficient for the largest
size the ODE system might have.  Attempt to set a size larger than the
initial size is a fatal error.
2016-07-11 17:27:04 +01:00
b3386623a2 AllwmakeParseArguments: Correct call to wmake -all
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2146
2016-07-10 22:04:50 +01:00
c1db326f71 functionObjects: Update documentation 2016-07-09 22:08:11 +01:00
cd58a79a44 checkGeometry, moveDynamicMesh: Convert processor IDs to 'List<label>'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2140
2016-07-09 20:47:06 +01:00
4d5d61bbeb wmakeFunctions: Added '()' to depToSource definition
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2144
2016-07-09 20:45:46 +01:00
763476e965 functionObjects::systemCall: Updated documentation 2016-07-09 14:23:27 +01:00
d3c863c283 functionObjects: Removed superfluous controlDict files 2016-07-09 14:23:01 +01:00
3e3cd4bc42 wmake: Simplified handling of '-j' option to sub-processes 2016-07-09 14:22:29 +01:00
8b4163d797 wmakeLnIncludeAll: Add '-update' option 2016-07-09 14:22:14 +01:00
83c7d16a0d wmakeLnInclude: Minor simplifications and reformatting 2016-07-09 14:21:44 +01:00
c8d26992ad wmakeCollect: Use 'mktemp' to create the temporary Makefiles
to avoid file names which are two long for the standard GNU/Linux file systems.
2016-07-09 14:20:31 +01:00
36f1016f31 wmakeFunctions: Added a faster bash version of 'depToSource' 2016-07-09 14:19:47 +01:00
af5e1cc4cd wmakeCollect: Create the makefiles in the platforms directory 2016-07-09 09:59:46 +01:00
267640002f wmakeLnIncludeAll: 'sync' does not guarantee synchronization of the links
A simple 'sleep' is more reliable.
2016-07-08 16:35:40 +01:00
c074cfc3ff wmakeLnIncludeAll: Improved messages 2016-07-08 14:02:57 +01:00
f7b851b35f fvcCellReduce: Add support for optional initial value
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2143
2016-07-08 11:54:30 +01:00
6230ca2689 laplacianFoam: Added support for fvOptions 2016-07-08 11:34:00 +01:00
0cfd1adbd0 wmake: Improve messages from wclean, wrmdep and wmakeLnIncludeAll 2016-07-08 10:57:08 +01:00
d16324bf44 wmakeLnIncludeAll: When running parallel wait for the wmakeLnInclude jobs to complete
then synchronize the file system to ensure all links are flushed before
compilation starts
2016-07-08 08:22:28 +01:00
ff7a216a58 AllwmakeParseArguments: Filter-out '-q' option to avoid recusion 2016-07-07 16:22:08 +01:00
5571dbf107 reactingTwoPhaseEulerFoam/pUf/UEqns: Changed naming convention for the dmdt's
for consistency with HeatAndMassTransferPhaseSystem.C
Resolves bug-report http://bugs.openfoam.org/view.php?id=2141
2016-07-07 14:36:10 +01:00
553abf615b wmakeLnIncludeAll: Now a bash script
Uses the 'wait -n' builtin to avoid the use of non-POSIX 'sleep' commands
2016-07-07 12:09:49 +01:00
26a3e56c4f Reacting solvers: Added check for the existence of the inert specie 2016-07-06 17:45:34 +01:00
36adf9702c chemkinToFoam: Added support for converting elements and species composition
Based of patch contributed by Francesco Contino, Tommaso Lucchini,
Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane
Backaert.
2016-07-06 16:24:56 +01:00
20f9d82737 fvOptions::limitVelocity: New fvOption to limit the maximum velocity magnitude
e.g. to avoid excessive unphysical velocities generated during slamming events in
incompressible VoF simulations

Usage
    Example usage:
    limitU
    {
        type            limitVelocity;
        active          yes;

        limitVelocityCoeffs
        {
            selectionMode   all;
            max             100;
        }
    }
2016-07-06 10:17:21 +01:00
8e3c88ed25 fvOptions::tabulatedAccelerationSource: Minor update to doc 2016-07-06 10:16:57 +01:00
5ca69a2501 Updated header 2016-07-06 10:16:37 +01:00
8929e959ff fvOptions::limitTemperature: Simplify controls and make documentation consistent with the code 2016-07-06 10:15:47 +01:00
922785d9cf wmakePrintBuild -check: exit 0 if not a git repository 2016-07-05 21:50:34 +01:00
f989f58d85 reactingEulerFoam dragModels: New models Beetstra, Tenneti
Contributed by Alberto Passalacqua, Iowa State University

Foam::dragModels::Beetstra
    Drag model of Beetstra et al. for monodisperse gas-particle flows obtained
    with direct numerical simulations with the Lattice-Boltzmann method and
    accounting for the effect of particle ensembles.

    Reference:
    \verbatim
        Beetstra, R., van der Hoef, M. A., & Kuipers, J. a. M. (2007).
        Drag force of intermediate Reynolds number flow past mono- and
        bidisperse arrays of spheres.
        AIChE Journal, 53(2), 489–501.
    \endverbatim

Foam::dragModels::Tenneti
    Drag model of Tenneti et al. for monodisperse gas-particle flows obtained
    with particle-resolved direct numerical simulations and accounting for the
    effect of particle ensembles.

    Reference:
    \verbatim
        Tenneti, S., Garg, R., & Subramaniam, S. (2011).
        Drag law for monodisperse gas–solid systems using particle-resolved
        direct numerical simulation of flow past fixed assemblies of spheres.
        International Journal of Multiphase Flow, 37(9), 1072–1092.
    \verbatim
2016-07-05 16:10:07 +01:00
8496102126 Updated headers 2016-07-05 16:09:56 +01:00
6d1007d2d8 reactingEulerFoam/interfacialCompositionModels: Minor reformatting 2016-07-05 16:09:39 +01:00
05d89e486f checkMesh, moveDynamicMesh: option -checkAMI writes the reconstructed AMI weights
Patch contributed by Mattijs Janssens
2016-07-05 15:35:16 +01:00
98d5ee3b33 wmakeCollect: Name the object makefiles based on the object path
Ensures the order of compilation relates to the location of the source files
2016-07-05 14:53:26 +01:00
e20c1ac61f wmakeCollect: Support simultaneous builds of different target architectures or compilers 2016-07-05 10:24:08 +01:00
0bc8286845 wmake: execute wmakeLnIncludeAll once with options 'queue' and 'update' 2016-07-05 07:54:45 +01:00
276eb1a31b AllwmakeParseArguments: Moved all parallel processing options into wmake
and added support for queue scheduling option '-q', '-queue'

Now the 'Allwmake' scripts execute 'wmake -all' to handle parallel
processing in a general way, avoiding code duplication.
2016-07-04 22:30:20 +01:00
1af45f72ca Allwmake: Simplified by removing 'doc' option
It is better to run doc/Allwmake or doc/Doxygen/Allwmake and provide the
required options.
2016-07-04 22:28:19 +01:00
822d6adba7 steadyParticleTracksTemplates: Corrected correspondence between function declaration and definition 2016-07-04 10:44:08 +01:00
23877413f3 wmakeLnIncludeAll: Corrected type 2016-07-04 10:27:43 +01:00
911e424515 wmakeLnIncludeAll: Use 'wait -n' rather than and arbitrary 'sleep' when limiting the number of jobs 2016-07-04 09:39:28 +01:00
8e900af6e3 functionObjects: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2138
2016-07-03 23:16:29 +01:00
d88db62106 wmake: use the new parallel wmakeLnIncludeAll option if WM_NCOMPPROCS is set 2016-07-03 23:11:16 +01:00
f23b2581e9 wmakeCollect: Experimental scheduler for wmake to speed-up parallel compilations
wmakeCollect collects the compilation commands for the all of the object
files to be compiled into a single makefile which is passed to make to
schedule the compilations in parallel efficiently.

Before wmakeCollect can be called the lnInclude directories must be
up-to-date and after wmakeCollect the linkage stage of the compilation
must executed using wmake.

This entire process is now handled by wmake using the new '-queue' or
'-q' option to compile sections of the OpenFOAM source tree or the
entire tree efficiently.  The number of cores the compilation executes
on may be specified either using the WM_NCOMPPROCS variable or the '-j'
option.

To efficiently compile OpenFOAM after a 'git pull' the '-update' option
is provided which updates lnInclude directories, dep files and removes
deprecated files and directories.  This option may be used with '-q':

    wmake -q -update
2016-07-03 22:55:16 +01:00
7433ce8f7f wmakeLnIncludeAll: Added -j option for parallel operation 2016-07-03 22:22:00 +01:00
f29bc66073 wmake/rules/General: Add support for WM_SCHEDULER to the compilation of lex, yacc and moc files 2016-07-03 22:21:02 +01:00
0eed3ae176 timeVaryingMappedFixedValue: update for SP 2016-07-01 17:42:35 +01:00
52cbf66c4a etc/config.sh/CGAL: unset CGAL_ARCH_PATH if it is no longer needed 2016-07-01 17:01:26 +01:00
e9a1716474 Correct handling of the CGAL version variable for makeCGAL in ThirdParty 2016-07-01 16:22:28 +01:00
52233c3848 Simplified the handling of the CGAL installation 2016-07-01 14:53:28 +01:00
97a889dbd8 src/OpenFOAM/primitives/ints: Further tweaks
Resolved additional bug-report http://bugs.openfoam.org/view.php?id=2137
2016-07-01 14:52:54 +01:00
138879b25e vtkUnstructuredReader: corrected prism point ordering
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1885
2016-07-01 14:45:18 +01:00
adc816a85d timeVaryingMappedFixedValue: Reinstated support for AverageField 2016-07-01 10:26:20 +01:00
e78e346781 Updated header 2016-07-01 10:25:38 +01:00
c488c02082 src/OpenFOAM/primitives/ints: Corrected MIN and MAX for uints
Resolves bug-report http://bugs.openfoam.org/view.php?id=2137
2016-07-01 10:24:42 +01:00
b19e0b3543 SloanRenumber: link with libboost_system.so rather than libboost_thread.so
Resolves bug-report http://bugs.openfoam.org/view.php?id=2135
2016-06-30 12:01:32 +01:00
6d28a95b37 timeVaryingMappedFixedValueFvPatchField: Simplifed for consistency with the output of sampledPlane
Now a case can be sampled and written in 'foam' format and used for the
timeVaryingMappedFixedValue BC of another case.
2016-06-30 10:35:01 +01:00
2e419c58f8 functionObjects::surfaceRegion: Write the surface geometry for formats in which the data is in separate files 2016-06-30 10:33:55 +01:00
6a5923f966 sampledCuttingPlane: Rationalized 2016-06-30 10:33:28 +01:00
7c9d416265 src/sampling/Make/files: Updated 2016-06-30 10:33:07 +01:00
0c5fad2825 sampledPlane, plane: standardize the selection of the plane type 2016-06-30 10:32:31 +01:00
c19b17713e foamFileSurfaceWriter -> foamSurfaceWriter for consistency with the naming of the other writers 2016-06-30 10:31:09 +01:00
9fa1756565 fvcD2dt2: Updated non-const dereferencing to use '.ref()'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2133
2016-06-29 21:55:57 +01:00
a17d0d86dc tutorials: Updated formatting of dictionaries and specification of 'plane' and 'samplePlane' 2016-06-29 18:02:57 +01:00
887aeee6be plane, sampledPlane: Rationalize the naming convention for the defining normal and point
normalVector -> normal
basePoint -> point

The old names are supported for backward-compatibility.
2016-06-29 16:58:35 +01:00
c263bbca65 Completed transformation of post-processing utilities into functionObjects 2016-06-28 19:26:23 +01:00
93e84072cc functionObjects::fieldExpression: Standardized warning message 2016-06-28 13:52:10 +01:00
9abbe4d31d utilities particleTracks, steadyParticleTracks: Updated and corrected 2016-06-27 20:44:11 +01:00
565c96f3d1 rigidBodyMeshMotion: Check for attempted assignment of patches to a merged body 2016-06-27 16:31:51 +01:00
a7d89bdc09 functionObjects::XiReactionRate: Writes the turbulent flame-speed and reaction-rate volScalarFields for the Xi-based combustion models
Replaces the obsolete and 'wdot' utility.
2016-06-27 08:58:36 +01:00
53717e9137 writeCellCentres utility: Replaced by writeCellCentres functionObject
postProcess -func writeCellCentres
2016-06-27 07:51:19 +01:00
67e5e20c65 foamGraph.*: Simplified scripts
Added a 'deprecated' comment and recommendation to use 'foamLog'
2016-06-25 22:14:25 +01:00
e4397aed41 bin/foamGraph.*: Converted to POSIX shell 2016-06-24 22:32:50 +01:00
ce6be24847 foamListSourceFiles: keep .orig files 2016-06-24 22:32:22 +01:00
f84a6759f9 Corrected file permissions 2016-06-24 22:32:08 +01:00
2cb97ec2ef wmake/Allwmake: Completed support for targetType 'objects'
Patch contributed by Mattijs Janssens
2016-06-24 15:25:11 +01:00
afa64919ec potentialFoam: simplify the Phi BCs to use only fixedValue and zeroGradient by default
Resolves bug-report http://bugs.openfoam.org/view.php?id=2129
2016-06-24 15:16:51 +01:00
6e10f3a3eb tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel: Updated entrainment BC 2016-06-24 14:06:30 +01:00
d251485534 etc/config.sh/aliases: For backward-compatibility unalias wmRefresh if it is defined as an alias 2016-06-24 10:36:04 +01:00
26057f8be6 applications/utilities/mesh/generation/Allwmake: Build foamyHexMesh if FOAMY_HEX_MESH is set 2016-06-24 08:48:29 +01:00
20da433202 Doxygen: Updated header 2016-06-23 16:06:12 +01:00
506dca5434 CGAL: Set to use the system CGAL installation by default 2016-06-23 16:05:44 +01:00
fc82c47ede Doxygen: Cleanup 'dot' files 2016-06-23 16:05:19 +01:00
f331daa51f Updated header 2016-06-23 16:05:11 +01:00
ad187e179e Corrected file permissions 2016-06-23 16:05:02 +01:00
7e98654c65 etc/config.[c]sh: update wmRefresh to call wmUnset before updating the environment 2016-06-21 19:48:19 +01:00
35e6c03eab foamyMesh: Simplify support for system CGAL installation 2016-06-21 19:47:46 +01:00
965e68dde0 Corrected headers 2016-06-21 16:17:37 +01:00
babaeeae84 etc/caseDicts: Removed trailing whitespace 2016-06-21 16:13:22 +01:00
d67a1df92e mapFieldsPar: updated to enable mapping from source patches (instead of recreating)
- patchFields now get mapped (instead of created)
  - with -consistent it now maps all patches except for processor ones (they are
    the only ones that are processor-local)
  - all constraint patches get evaluated after mapping to bring them up to date.

Patch contributed by Mattijs Janssens
2016-06-21 14:16:18 +01:00
e39282627b uLabel: Removed unnecessary checks for < 0
Resolves bug-report http://bugs.openfoam.org/view.php?id=2128
2016-06-21 11:05:04 +01:00
18147a1aa1 doc/Doxygen/customdoxygen.css: simplified 2016-06-21 11:04:50 +01:00
f3f9e55ed2 Corrected documentation for Doxygen 2016-06-21 11:04:34 +01:00
cf89a3094a Updated and simplified the Doxygen documentation 2016-06-20 21:20:28 +01:00
9321273c26 wclean all: if an Allclean script exists in sub-directories execute otherwise execute wclean
Resolves bug-report http://bugs.openfoam.org/view.php?id=2125
2016-06-20 10:05:23 +01:00
16d29c6300 Update headers 2016-06-20 09:39:47 +01:00
017903cb85 Remove/replace deprecated functions and classes 2016-06-20 09:39:02 +01:00
9f67acdc53 Updated header documentation processed by Doxygen 2016-06-19 21:23:54 +01:00
62e340f56c fvPatchFields/derived/flowRateInletVelocity: Write the extrapolateProfile switch 2016-06-17 20:27:31 +01:00
1ef6ed3b9f ODESolvers::seulex: Handle possible overflow in the calculation of the dy norm 2016-06-17 18:59:28 +01:00
988b5680ac bin/tools/doxyFilter.sed: Corrected 2016-06-17 18:59:09 +01:00
8a5304edf6 Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
2ca0a6f362 Doxygen documentation: Use the standard 'Usage' rather than the '\heading....' 2016-06-17 17:22:24 +01:00
2b7ee7354c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 17:14:30 +01:00
4ebaed67f9 Doxygen documentation: Remove superfluous linebreak 2016-06-17 17:13:39 +01:00
985df5f43e foamSearch: new script that searches a directory for
dictionary files of a particular name and extracts entries of a
particular keyword, sorting results into a unique list.

For example,
    foamSearch $FOAM_TUTORIALS laplacianSchemes.default fvSchemes

produces...
    default         Gauss linear corrected;
    default         Gauss linear limited corrected 0.33;
    default         Gauss linear limited corrected 0.5;
    default         Gauss linear orthogonal;
    default         Gauss linear uncorrected;
    default         none;

Uses the fantastic foamDictionary utility.
2016-06-17 14:53:43 +01:00
9f4ee75afc singleGraph post-processing: added example configuration comments 2016-06-17 12:31:43 +01:00
2668106e2c cyclicACMIPolyPatch: Clear geometry when resetting
Patch contributed by Mattijs Janssens
2016-06-17 11:50:56 +01:00
725787ec1a cyclicACMIFvPatchField: Corrected declaration of updateCoeffs to be virtual 2016-06-17 11:50:30 +01:00
6e405f0a9b Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 09:12:32 +01:00
7b75d81269 Rationalized Doxygen documentation of command-line options 2016-06-17 09:11:58 +01:00
1a276ee443 pitzDaily tutorial: replaced streamline function object
with new #includeFunc directive
2016-06-17 08:18:41 +01:00
0b333a4249 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 07:38:14 +01:00
af3198d76c foamList: Remove dependency on utility libraries 2016-06-17 07:37:43 +01:00
ad2cfd4288 sample function: add overrides comment and example 2016-06-16 22:51:22 +01:00
19ef39741b Simplify and correct Doxygen lists using '-' rather than '\li \c' 2016-06-16 20:10:39 +01:00
2fc8911d3e Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 15:32:43 +01:00
6db445c875 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
9759c3045c foamMonitor: fixed bug in test syntax 2016-06-16 15:04:12 +01:00
f7667ae050 Packaged function objects: reformatted units in Descriptions 2016-06-16 13:04:13 +01:00
92dd330ad7 functionObjectList::list: Support recursion when listing functionObject configuration files 2016-06-16 13:02:17 +01:00
07ae9b67cc 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
5a17dc9503 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 08:10:15 +01:00
3810f4b192 foamList: Avoid linking optional libraries 2016-06-16 08:09:49 +01:00
0bb828d34a Template cases: commenting out scalarLevels to prevent 0 directory
being filled with cellLevel files, which generally breaks workflows
2016-06-15 18:06:12 +01:00
6124199757 Template cases: removed solver entries using default values from fvSolution 2016-06-15 16:28:42 +01:00
6ef6d3b670 foamList: Complete set of included libraries 2016-06-15 14:23:14 +01:00
3ff44bc2d1 wmake/scripts/wmakeFunctions: Add support for $WM_PROJECT_DIR being a link 2016-06-15 14:22:33 +01:00
39fd82ea84 fvPatchField, cyclicACMI: Renamed weighted updateCoeffs
updateCoeffs(const scalarField&) -> updateWeightedCoeffs(const scalarField&)

to avoid confusion with other specialized forms of updateCoeffs.

Patch contributed by Mattijs Janssens
2016-06-15 09:06:16 +01:00
1e2bba0572 functionObjects::surfaceRegion,volRegion: Improved documentation 2016-06-15 09:05:35 +01:00
685afaafbf changeDictionary: Simplified by removing the need for the superfluous dictionaryReplacement sub-dictionary
Added the option '-subDict' to specify a sub-dictionary if multiple
replacement sets are present in the same file.  This also provides
backward compatibility by setting '-subDict dictionaryReplacement'
2016-06-15 09:03:05 +01:00
a1cc51b116 Tutorials fvSolution files: removed solver entries which use default
values; formatted Switch entries consistently across all cases
2016-06-15 07:39:37 +01:00
8d4c181cfb foamList: Added support for listing scalar and vector field boundary conditions
Usage: foamList [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -compressibleTurbulenceModels
                    List compressible turbulenceModels
  -functionObjects  List functionObjects
  -fvOptions        List fvOptions
  -incompressibleTurbulenceModels
                    List incompressible turbulenceModels
  -noFunctionObjects
                    do not execute functionObjects
  -registeredSwitches
                    List switches registered for run-time modification
  -scalarBCs        List scalar field boundary conditions (fvPatchField<scalar>)
  -switches         List switches declared in libraries but not set in
                    etc/controlDict
  -unset            List switches declared in libraries but not set in
                    etc/controlDict
  -vectorBCs        List vector field boundary conditions (fvPatchField<vector>)
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage
2016-06-14 17:43:31 +01:00
126a155506 foamList: Added support for listing fvOptions, functionObjects and turbulence models
Usage: foamList [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -compressibleTurbulenceModels
                    List compressible turbulenceModels
  -functionObjects  List functionObjects
  -fvOptions        List fvOptions
  -incompressibleTurbulenceModels
                    List incompressible turbulenceModels
  -noFunctionObjects
                    do not execute functionObjects
  -registeredSwitches
                    List switches registered for run-time modification
  -switches         List switches declared in libraries but not set in
                    etc/controlDict
  -unset            List switches declared in libraries but not set in
                    etc/controlDict
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage
2016-06-14 16:45:27 +01:00
1bc9ff44e1 Legacy solver wrappers ICCG and BICCG removed
Instead of ICCG use PCG with the DIC preconditioner
Instead of BICCG use PBiCG with the DILU preconditioner
2016-06-14 14:53:28 +01:00
e96166000e Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-14 12:18:20 +01:00
12563a42ca multiphaseCompressibleTurbulenceModels, twoPhaseCompressibleTurbulenceModels, phaseCompressibleTurbulenceModels: Added LIB_LIBS 2016-06-14 12:17:15 +01:00
1fc635333e src/Allwmake: Update the location of global.o
Resolves bug-report http://bugs.openfoam.org/view.php?id=2120
2016-06-14 12:15:07 +01:00
324638ca9b Tutorials: made laplacianSchemes consistent and correct 2016-06-13 23:38:03 +01:00
b758db8882 etc/caseDicts/postProcessing: simplified configuration files 2016-06-13 17:03:06 +01:00
c201df1284 applications/utilities: Reorganized 2016-06-13 17:02:43 +01:00
744d1a60c7 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 16:42:51 +01:00
43565051e2 foamListTimes: moved to applications/utilities/miscellaneous/foamListTimes 2016-06-13 16:42:25 +01:00
067a068e27 Utility ptot has been superceded by the postProcess utility:
postProcess -func 'totalPressureIncompressible(U,p)'
or
    postProcess -func 'totalPressureCompressible(rho,U,p)'
2016-06-13 16:42:00 +01:00
de8363757b sonicFoam cases: removed redundant coefficient in divSchemes 2016-06-13 15:03:57 +01:00
ee588446e5 tutorials: Removed references to 'sampleDict' 2016-06-13 14:53:56 +01:00
f63e53b8d6 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 14:29:38 +01:00
e9d69df161 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
1997c3f938 pimpleDyMFoam/mixerVesselAMI2D: removed redundant coefficient 2016-06-13 13:12:24 +01:00
6dd7046b7b probeLocations has been superceded by the postProcess utility
e.g.
postProcess -func probes

or

postProcess -func 'probes(p, U)'
2016-06-13 09:55:26 +01:00
d98acc785e Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:47:53 +01:00
12171ceb0a Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:43:18 +01:00
8e99a312e8 functionObjects: Completed transformation of 'source' to vol/surfaceRegion 2016-06-13 09:42:14 +01:00
70db4ad2fc sonicFoam forwardStep tutorial: removed redundant scheme entry 2016-06-13 09:34:01 +01:00
b3f4d5855d functionObjects: Simplified the handling of the post-processing mode
Replaced the 'postProcess' argument to the 'write' and 'execute'
functions with the single static member 'postProcess' in the
functionObject base-class.
2016-06-13 08:36:03 +01:00
41c2e4bc11 Utilities patchAverage and patchIntegrate replaced by postProcess
e.g.
    postProcess -func 'patchAverage(name=inlet,p)'
    postProcess -func 'patchIntegrate(name=inlet,p)'
2016-06-12 22:32:15 +01:00
f49025ac86 etc/caseDicts/postProcessing/flowRate: Corrected includes
Resolves bug-report http://bugs.openfoam.org/view.php?id=2117
2016-06-12 22:28:51 +01:00
728c564246 Minor reformatting 2016-06-12 21:12:13 +01:00
0b3b466490 Removed experimental code 2016-06-12 21:11:55 +01:00
1d7e1a7ad5 functionObjects: renamed faceSource -> surfaceRegion, cellSource -> volRegion
The use of the term 'source' in the context of post-processing is
confusing and does not properly describe the process of region
selection.  The new names 'surfaceRegion' and 'volRegion' better
describe the purpose of the functionObjects which is to provide field
processing functionality limited to a specified region of space, either
a surface or volume.

The keyword 'source' is renamed 'regionType' which better describes the
purpose which is to specify the method by which the surface or volume
region is selected.

The keyword to select the name of the surface or volume region is
renamed from 'sourceName' to 'name' consistent with the other
name-changes above.
2016-06-12 20:56:51 +01:00
621432fea5 checkMesh: Added writing of faceSets and cellSets containing errors
In parallel the sets are reconstructed. e.g.

mpirun -np 6 checkMesh -parallel -allGeometry -allTopology -writeSets vtk

will create a postProcessing/ folder with the vtk files of the
(reconstructed) faceSets and cellSets.

Also improved analysis of disconnected regions now also checks for point
connectivity with is useful for detecting if AMI regions have duplicate
points.

Patch contributed by Mattijs Janssens
2016-06-12 20:51:07 +01:00
07e5f2831b Allwmake -update: Further improvements to handle source-tree/dep file inconsistencies after git pull
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2091
2016-06-11 16:28:40 +01:00
3b1971d88c functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:26:10 +01:00
e1079504cd functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:25:00 +01:00
017242afe4 foamList: Updated handling of switches and removed the '-redundant' option which does not work 2016-06-11 15:24:01 +01:00
fa2f311c32 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-11 12:41:03 +01:00
47f374070f pressureDifference packaged function object: corrected include statement 2016-06-11 12:40:59 +01:00
a808abac0e applications/Allwmake: Compile utilities after solvers
Resolves bug-report http://bugs.openfoam.org/view.php?id=2116
2016-06-11 11:49:35 +01:00
605c489d5f Packaged function objects: added a Description entry 2016-06-11 08:53:04 +01:00
9cf8bd8313 etc/config.[c]sh/unset: unalias wmRefresh
Resolves bug-report http://bugs.openfoam.org/view.php?id=2112
2016-06-10 22:19:21 +01:00
f3bb750f8b bin/tools/RunFunctions: Simplified using the foamDictionary -value option 2016-06-10 20:24:12 +01:00
f0d81461f9 foamDictionary: Added -value option to print the value associated with an entry 2016-06-10 20:23:46 +01:00
743085a667 bin/tools/RunFunctions: Updated to use foamDictionary 2016-06-10 18:02:26 +01:00
dbcb0553b5 foamDictionary: Added -expand and -includes options
Replaces expandDictionary utility
2016-06-10 17:39:16 +01:00
b525d560e3 wallFunctionTable: corrected source file name 2016-06-10 14:07:32 +01:00
1c66becc25 autoRefineMesh: corrected source file and executable names 2016-06-10 14:05:30 +01:00
a495f4d738 foamDebugSwitches -> foamList -debug 2016-06-10 13:34:58 +01:00
1bd2bfc754 UOPstream: corrected write(const char* str)
Resolved bug-report http://bugs.openfoam.org/view.php?id=2115
2016-06-10 13:33:40 +01:00
f30e7a6721 functionObjects::fieldValue: Added support for 'field' entry
Added patchIntegrate configuration
2016-06-10 10:37:37 +01:00
bc6d6f5fa3 applications/utilities: FOAM_USER_APPBIN -> FOAM_APPBIN 2016-06-10 10:35:57 +01:00
093d3c4999 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-10 08:29:10 +01:00
6221186311 functionObjects::writeRegisteredObject -> functionObjects::writeObjects
Added configuration file etc/caseDicts/postProcessing/fields/writeObjects
2016-06-10 08:28:13 +01:00
5d7edbc620 Descriptions of solvers corrected and made more consistent and more user-friendly 2016-06-09 18:59:40 +01:00
950d4a078f stressComponents: utility replaced by the 'R' and 'components' functionObject used with the '-postProcess' option 2016-06-09 18:09:27 +01:00
0c38743470 wallGradU: utility replaced by the 'grad' functionObject used with the '-postProcess' option 2016-06-09 18:06:39 +01:00
0c36513c12 createTurbulenceFields: utility replaced by 'turbulenceFields' functionObject used with the '-postProcess' option 2016-06-09 17:17:19 +01:00
39e0e03d9d functionObjects: Corrected docs 2016-06-09 16:29:06 +01:00
f200a99262 R: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:28:30 +01:00
4c07e6226d functionObjects: 'output:' -> 'write:' for consistency with the naming of the 'write' function 2016-06-09 16:06:44 +01:00
6727903817 functionObjects::yPlus: Rationalized the functionality in 'execute' and 'write' 2016-06-09 16:06:09 +01:00
8eabf85f9a wallShearStress: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:05:13 +01:00
2c61071f99 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:52:04 +01:00
acb335bda0 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:36:16 +01:00
95b0f41c0f wmake/rules/General/CGAL: lib -> lib64 on 64bit OSs
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2114
2016-06-09 14:34:26 +01:00
f638109027 Update plateHole case to be consistent with User Guide tutorial 2016-06-08 15:34:16 +01:00
d744705ee4 functionObjects::scalarTransport: simplified, standardized, rationalized
tutorials/incompressible/pisoFoam/les/pitzDaily: Added scalarTransport
functionObject to demonstrate the new functionality
2016-06-08 15:11:57 +01:00
ada79530d0 Name of packaged function object consistent with filename
to enable the postProcess -func <function> option to work
2016-06-08 14:16:38 +01:00
fcf23db681 Removed fixedWalls from cuttingPatches because it is redundant now fixedWalls is noSlip 2016-06-08 14:08:26 +01:00
e4dec4bb7c Corrected RAS cavity case to be consistent with User Guide tutorial 2016-06-08 14:01:50 +01:00
477d40f0a2 etc/bashrc,cshrc: Use "$WM_PROJECT" rather than "OpenFOAM" in the setting of $FOAM_INST_DIR
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2112
2016-06-08 11:51:21 +01:00
5f950e6aa3 applications/utilities/miscellaneous/foamDictionary/Make/options: Removed debug options 2016-06-07 16:27:22 +01:00
18cf891e71 src/rigidBodyMeshMotion/Make/options: Removed debug switches 2016-06-07 16:25:29 +01:00
014374fb73 etc/config.*/aliases: Updated, removed duplicates and added foamVersion
foamVersion: prints the current OpenFOAM version
foamVersion <version>: changes to the specified version
2016-06-07 16:15:46 +01:00
0e802bc289 PatchFlowRateInjection: Corrected parallel handling of the random position
Resolves bug-report http://bugs.openfoam.org/view.php?id=2111
2016-06-07 10:56:33 +01:00
8870e18750 foamConfigurePaths: Updated foamInstall option 2016-06-06 19:32:01 +01:00
24def40ca7 Update headers 2016-06-06 17:22:23 +01:00
4114a1e2bf etc/bashrc,cshrc: Simplify and automate the setting of FOAM_INST_DIR
FOAM_INST_DIR is the location of the OpenFOAM installation which defaults to
the directory containing the etc/bashrc,cshrc file.  If this default is
not appropriate FOAM_INST_DIR can be set explicitly.
2016-06-06 17:20:10 +01:00
bf099f1d1b tutorials/lagrangian/MPPICFoam/injectionChannel: Corrected orientation of inlet air
Resolves bug-report http://bugs.openfoam.org/view.php?id=2110
2016-06-06 12:20:14 +01:00
f4cbde2d12 kOmegaSSTDES: New DES model based on the k-omega SST RAS model
Description
    Implementation of the k-omega-SST-DES turbulence model for
    incompressible and compressible flows.

    DES model described in:
    \verbatim
        Menter, F. R., Kuntz, M., and Langtry, R. (2003).
        Ten Years of Industrial Experience with the SST Turbulence Model.
        Turbulence, Heat and Mass Transfer 4, ed: K. Hanjalic, Y. Nagano,
        & M. Tummers, Begell House, Inc., 625 - 632.
    \endverbatim

    Optional support for zonal filtering based on F1 or F2 is provided as
    described in the paper.

    For further details of the implementation of the base k-omega-SST model
    see Foam::kOmegaSST.

    The DES coefficient 'CDES' defaults to 0.61 but may be changed as
    necessary.

    The zonal filter filter defaults to '2' which uses "(1 - F2)" as
    suggested in the paper but '0' (no filtering) and '1' which uses
    "(1 - F1)" are also supported.
2016-06-06 08:56:54 +01:00
e8a49d8f5a etc/config.*/unset: Added CGAL-related environment variables 2016-06-05 18:22:28 +01:00
331eece125 ORourkeCollision: Cache access to the UList of parcel pointers for cell 2016-06-04 18:49:10 +01:00
fb1ed2e481 ORourkeCollision: use a CompactListList to avoid memory allocation overhead 2016-06-04 17:45:35 +01:00
ca45cf1614 DynamicList: minor cleanup 2016-06-04 17:45:11 +01:00
91e84b9004 ORourkeCollision: Corrected bugs and added more efficient collision detection
See http://bugs.openfoam.org/view.php?id=2097
2016-06-04 11:48:27 +01:00
6316230df7 wmake/rules/linux64GccKNL: Optimized compilation options for the Knights Landing MIC processor 2016-06-04 10:13:22 +01:00
615edfbc7d foamDictionary: New utility to print and manipulate dictionary entries
Replaces the dictionary access functionality of foamInfoExec and
provides additional options to edit individual entries.
Contributed by Mattijs Janssens
2016-06-03 19:24:05 +01:00
c33e34a532 foamInfoExec: Time listing functionality superseded by foamListTimes 2016-06-03 19:23:27 +01:00
b68873d570 wmake/rules/linux64KNLIcc: Optimized compilation options the for Knights Landing MIC processor
Patch contributed by Paul Edwards, Intel
2016-06-03 15:29:14 +01:00
bd2fa2b800 functionObjects/forces: The 'rhoInf' entry is now only required if 'rho' is set to 'rhoInf' 2016-06-02 15:14:14 +01:00
76a91bc81a Minor reformatting 2016-06-02 15:14:01 +01:00
2f1bc368e5 LESfilters: Ensure the coupled BCs of the field are updated before filtering
Resolves bug-report http://bugs.openfoam.org/view.php?id=2108
2016-06-02 12:14:51 +01:00
3a15897def etc/caseDicts/postProcessing: Updated now that #includeFunc handles function arguments 2016-06-01 21:52:07 +01:00
dc4c881f25 postProcess: Added '-list' option to list the available configured functionObjects 2016-06-01 16:28:07 +01:00
bb3910ddaf SprayParcel: Set the 'origId' of the child parcels
Resolves bug-report http://bugs.openfoam.org/view.php?id=2105
2016-05-31 21:25:09 +01:00
fdee42887d tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating: Minor cleanup 2016-05-31 21:22:13 +01:00
108e50bbf0 tutorials/incompressible/pimpleDyMFoam/propeller: Use the standard 'Q' functionObject configuration 2016-05-31 21:21:41 +01:00
a0c343ab9f functionObjectList::readFunctionObject: Add support for functionObject arguments containing '()'s 2016-05-31 17:47:21 +01:00
f823a0ceee HashTable: Correct error messages
Resolves bug-report http://bugs.openfoam.org/view.php?id=2106
2016-05-31 17:18:23 +01:00
b9fc25359a Updated headers 2016-05-31 17:18:14 +01:00
8a915d0617 includeEntry, includeEtcEntry, includeIfPresentEntry: report -> log
for consistency with the 'Log' macro.
2016-05-31 17:17:24 +01:00
dd20d90868 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
c921471788 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
397fd32561 etc/config.*/paraview: Upgraded to ParaView-5.0.1 2016-05-30 21:27:11 +01:00
706ec804fd Added forward declaration of friend functions 2016-05-30 13:21:29 +01:00
b426585d25 Updated header 2016-05-30 08:31:21 +01:00
691e7186b4 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
e34763b392 Added forward declaration of friend functions 2016-05-30 08:28:35 +01:00
28033214a7 createBaffles: filter zero-sized patches
Resolves patch request http://bugs.openfoam.org/view.php?id=2103
Patch contributed by Mattijs Janssens
2016-05-29 22:51:15 +01:00
3980082fe2 Added forward declaration of friend functions 2016-05-29 22:28:37 +01:00
c9bfcc665a etc/config.*: Added support for gcc-6.1 2016-05-29 22:28:07 +01:00
ab5a6a4984 CGAL: Upgraded to 4.8 2016-05-29 22:27:46 +01:00
5af2515f87 buoyantBoussinesqPimpleFoam: Corrected handling of time-step adjustment
Resolves bug-report http://bugs.openfoam.org/view.php?id=2104
2016-05-29 22:26:53 +01:00
8b672f0f1a 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
7a3f939aae etcFiles: Added functions to find directories in the 'etc' directories
'findEtcFiles' moved from OSspecific to 'etcFiles' as it is not OS-specific
2016-05-28 18:55:37 +01:00
f1a5196adf ReadFields: Added functions to read selected fields and store in the objectRegistry 2016-05-26 22:59:08 +01:00
d94368cf87 functionObjects::blendingFactor: Minor reformat 2016-05-26 22:58:46 +01:00
c2328cba3c fileName: Added recursive directory search function
//- Recursively search the given directory for the file
    //  returning the path relative to the directory or
    //  fileName::null if not found
    fileName search(const word& file, const fileName& directory);
2016-05-26 21:43:16 +01:00
0c34135438 SafeFatalIOError: Updated to print correct file and line number
Resolves bug-report http://bugs.openfoam.org/view.php?id=2102
Patch contributed by Mattijs Janssens
2016-05-26 17:40:37 +01:00
fd52818d3d etc/caseDicts/postProcessing: Updated for recent developments in functionObjects 2016-05-26 16:31:32 +01:00
53d97b8574 etc/caseDicts/postProcessing/fields: Added 'components' and 'div' 2016-05-26 15:34:15 +01:00
6ea0cbc9cb etc/caseDicts/postProcessing/fields/Q: Simplified 2016-05-26 15:34:01 +01:00
129532cbcf functionObjects::Q: Result field named "Q" if the field is "U" otherwise "Q(<fieldName>)" 2016-05-26 15:32:31 +01:00
f4ecb2ff23 functionObjects::randomise: New functionObject to create a field with a random perturbation 2016-05-26 15:32:10 +01:00
bf71b29434 messageStream: Updated 'DebugVar' to handle multi-line object output
Resolves feature-request http://bugs.openfoam.org/view.php?id=2101
Patch contributed by Mattijs Janssens
2016-05-26 14:57:15 +01:00
5976e79ceb surfaceInterpolation:localMin,localMax: Add support for consistent interpolation on coupled BCs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2100
2016-05-26 14:55:44 +01:00
71addd7bbb functionObjects::magSqr, components: New functionObjects to calculate the 'magSqr' and 'components' of a field 2016-05-26 10:15:14 +01:00
b50e21467f regionFunctionObject: Indent 'write' messages 2016-05-26 10:14:51 +01:00
5badb830e9 functionObjects::fieldExpression: Corrected docs 2016-05-26 10:14:29 +01:00
5c6a393ead functionObjects:🔍 Removed redundant warning 2016-05-26 10:14:07 +01:00
640b38bbce functionObjects::blendingFactor: Removed redundant warning 2016-05-26 10:13:36 +01:00
48e5817039 messageStream: Added 'Log' macro which outputs to 'Info' if 'log' is true
regionFunctionObject: moved 'log_' to public 'log' to support the 'Log' macro
2016-05-25 18:19:46 +01:00
608da26c5d thermoSingleLayer: Provide better stabilization for the energy equation as delta -> 0 2016-05-25 18:12:07 +01:00
ef3c7c045d simpleControl: Change the number of steps printed to be relative to the current time (for restarts) rather than 0
Resolves feature-request http://bugs.openfoam.org/view.php?id=2096
2016-05-25 16:58:28 +01:00
0477b8f50c regionFunctionObject: Moved the field/object maintenance functions from fvMeshFunctionObject into regionFunctionObject 2016-05-25 16:26:57 +01:00
6bc00144fc functionObjects: Clear the result field from the objectRegistry if the argument fields are not available
This is needed to handle the processing of many time directories, some
of which may have the required fields and some not.
2016-05-25 15:40:58 +01:00
e9a37fee34 postProcess: catch missing field errors to process further time-directories 2016-05-25 15:39:37 +01:00
6b1a55dc9b codedFunctionObject: Updated documentation 2016-05-24 14:01:33 +01:00
9ef803920c functionObjects: Rationalize logging 2016-05-24 10:40:28 +01:00
70ccff6840 functionObjects::surfaceInterpolateFields: Derive from fvMeshFunctionObject 2016-05-24 10:40:02 +01:00
131c0eeb84 functionObjects::fieldAverage,turbulenceFields: derive from fvMeshFunctionObject 2016-05-24 09:57:41 +01:00
b454b7ce43 functionObjects::regionFunctionObject: Added optional 'log' entry (defaults to true) 2016-05-24 09:03:41 +01:00
aa70b282b4 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
32b66139cd functionObjects::forces: Corrected lookup of fluidThermo 2016-05-23 21:45:07 +01:00
21773a47b6 etc/config.*/aliases: Renamed aliases to be less SHOUTY and confusing 2016-05-23 18:47:28 +01:00
16284bcd78 functionObjects::enstrophy: new functionObject to calculate the enstrophy of the velocity 2016-05-23 15:22:15 +01:00
2b07709b74 functionObjects::flowType: new functionObject which calculates and writes the flowType of velocity field
The flow type parameter is obtained according to the following equation:
    \verbatim
                 |D| - |Omega|
        lambda = -------------
                 |D| + |Omega|

        -1 = rotational flow
         0 = simple shear flow
         1 = planar extensional flow
    \endverbatim
2016-05-23 14:59:10 +01:00
2aec6916f0 functionObjects: Corrected 'grp' entries for 'field' functionObjects 2016-05-23 14:56:06 +01:00
39cf529866 DimensionedScalarField, GeometricScalarField: Added more rigorous dimension-checking for 'pow' functions 2016-05-23 12:04:02 +01:00
3ec4370139 functionObjects::pressure: Use the new 'tmp' 'move' constructor
to return unchanged 'tmp' arguments
2016-05-23 12:03:19 +01:00
8f75fa5d46 tmp: Added 'move' constructor to simplify return of unchanged 'tmp' arguments. 2016-05-23 12:01:36 +01:00
f58a48c675 functionObjects::pressureTools: simplified, standardized, rationalized and renamed 'pressure' 2016-05-22 21:29:46 +01:00
593df27f58 functionObjects::residuals: Minor reformatting 2016-05-22 21:29:22 +01:00
a3d88f3e82 functionObjects::writeDictionary: Write the dictionaries from the write function not execute 2016-05-22 21:28:46 +01:00
2e399d34bc functionObjects: Corrected member function documentation 2016-05-22 21:28:24 +01:00
da1c026f67 tutorials/incompressible/pimpleDyMFoam/propeller/system/Q: Updated 2016-05-22 19:03:23 +01:00
d69c9e3d1a functionObjects/field: link turbulenceModel 2016-05-22 19:02:59 +01:00
b93943ae55 functionObjects::yPlus: simplified, standardized, rationalized 2016-05-22 17:08:40 +01:00
e825f1ece0 fvcCellReduce: Correct signature and implementation of 'cellReduce' of a 'tmp' field 2016-05-22 17:07:53 +01:00
45e3b49c0d functionObjects::blendingFactor: simplified, standardized, rationalized 2016-05-22 16:30:48 +01:00
2ff102c5db fvMeshFunctionObject: Rename 'write' -> 'writeField' to avoid clash with base-class 2016-05-22 16:30:12 +01:00
2d1573d2ed transformGeometricField: Use '.ref()' to obtain non-const access to a temporary 2016-05-22 14:29:59 +01:00
a05001d87f functionObjects: Standardized field template parameter names 2016-05-22 14:29:14 +01:00
df5955a8fe functionObjects/field/fieldCoordinateSystemTransform: simplified, standardized, rationalized 2016-05-22 14:26:40 +01:00
d67f296265 functionObjects::Peclet -> functionObjects::PecletNo for consistency with functionObjects::CourantNo 2016-05-22 11:18:16 +01:00
c5c277f5f9 functionObjects: Cleanup, reorganize and simplify 2016-05-21 23:12:12 +01:00
f8f39d54ae tmp: Allow '.ref()' for const 'tmp'
const-ness of the stored object is checked at run-time.
2016-05-21 23:10:58 +01:00
7c6b0e684f functionObjectList: Filter unnecessary warning from new 'libs' entry 2016-05-21 23:10:06 +01:00
e22c65dd8e 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
ddfbaa7fa4 Updated header 2016-05-21 20:27:29 +01:00
96f4d7d66f temperatureCoupledBase: Rationalized the selection of the method for obtaining the thermal conductivity
kappa -> kappaMethod
kappaName -> kappa
2016-05-21 20:26:23 +01:00
f9ebf3956a Updated headers 2016-05-21 20:24:31 +01:00
2037fc02cf functionObjects, foamCalcFunctions, fvOptions: Standardized keywords for selecting fields and objects
Generally fields and objects are selected using the 'field[s]' and
'object[s]' keywords but this was not consistent between all
functionObject, fvOptions etc. and now fixed by applying the following
renaming:

fieldName -> field
fieldNames -> fields
objectName -> object
objectNames -> objects
2016-05-21 20:15:21 +01:00
c5e05bb79a functionObjects: Simplified and reorganised using the fieldExpression base-class 2016-05-21 20:10:47 +01:00
1b5a7fd943 fvMeshFunctionObject: Improved log output 2016-05-21 20:08:28 +01:00
2215db630a functionObjectList: Added support for 'libs' to load libraries for all functionObjects
e.g.

functions
{
    libs ("libfieldFunctionObjects.so");

    div
    {
        type            div;
        field           U;
        executeControl  writeTime;
        writeControl    writeTime;
    }

    Q
    {
        type            Q;
        executeControl  writeTime;
        writeControl    writeTime;
    }
}
2016-05-21 20:01:42 +01:00
57f3ac2773 wrmdep: Now prints the full path of the .dep files removed 2016-05-21 17:19:07 +01:00
6905425467 functionObjects: New abstract base-class 'fieldExpression' for simple field expression evaluation functionObjects
Updated and simplified 'div', 'grad' and 'mag' functionObjects by deriving from 'fieldExpression'.
Corrected the handling of cached gradients in 'grad'.
2016-05-21 13:58:08 +01:00
abd4b881a0 codedBase.H: Minor reformat 2016-05-21 13:56:27 +01:00
ffbc4c8c88 tmp, autoPtr: Provide a typedef 'Type' to the stored type 2016-05-21 13:55:47 +01:00
1387f95858 Updated header 2016-05-19 09:40:29 +01:00
08e22d3af0 Updated code comments 2016-05-19 09:40:17 +01:00
ae9889697e Scalar: Documented 'posPart' and 'negPart' 2016-05-19 09:39:45 +01:00
f2331a8587 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
02f0d095ed IOOutputFilter: Updated the signature of the 'write' function to correspond to the new functionObject 2016-05-18 23:09:26 +01:00
4500971827 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
aa4b93068b functionObjects: minor reformatting of output 2016-05-18 13:37:08 +01:00
982ebe6f59 functionObjects::partialWrite: Redundant and removed
the equivalent functionality is provided by the writeRegisteredObject
   functionObject in a MUCH simpler, easier and extensible manner.

functionObject: Removed the now redundant 'timeSet' function.
2016-05-18 12:23:29 +01:00
38b99504c0 dynamicCode: the "code" entry is now optional
codedFunctionObject: Added the "codeWrite" entry
    for the "write" function for consistency.
    The previous method of using the "code" entry for the "write"
    function was inconsistent and very confusing.
2016-05-18 12:20:03 +01:00
83517fac63 timeControlFunctionObject: Updated the control logic in the 'end' function
to correspond to the new default behavior of the 'end' function in
functionObject which now calls 'execute' then 'write'.
2016-05-18 09:05:24 +01:00
ca60658aee functionObject: Call 'execute' then 'write' from the default 'end' function. 2016-05-17 22:56:47 +01:00
64ec817c9f patchProbes: Corrected the signature of the write function 2016-05-17 21:49:17 +01:00
e65b8b7642 patchProbes: Corrected the signature of the write function 2016-05-17 21:40:16 +01:00
0aa28487cf Update loop index name probeI -> probei 2016-05-17 20:33:19 +01:00
8f45162c6c writeRegisteredObject: Now writes the <time>/uniform/time dictionary 2016-05-17 12:36:49 +01:00
154a4c9e34 reconstructPar: Added '-noFields' option 2016-05-17 09:25:29 +01:00
559d3e8a95 functionObjects/lagrangian/icoUncoupledKinematicCloud: Minor simplification of documentation 2016-05-17 09:24:58 +01:00
9b451a210c functionObjects::icoUncoupledKinematicCloud: tracks a uncoupled kinematic particle cloud
Description
    This Foam::functionObject tracks a uncoupled kinematic particle cloud in the
    specified velocity field of an incompressible flow (laminar, RANS or LES).

    It may be used in conjunction with any transient single-phase incompressible
    flow solver such as \c pisoFoam or \c pimpleFoam and tracks the particles or
    parcels without affecting the the flow-field.

    The \c kinematicCloud requires the the density of the fluid which is
    looked-up from \c constant/transportProperties dictionary and the
    acceleration due to gravity which is read from the \c constant/g file if
    present or defaults to zero.

    The \c kinematicCloud properties are read from the \c
    constant/kinematicCloudProperties dictionary in the usual manner.

    Example of function object specification:
    \verbatim
        tracks
        {
            libs ("liblagrangianFunctionObjects.so");
            type icoUncoupledKinematicCloud;
        }
    \endverbatim

    \heading Function object usage
    \table
        Property | Description                     | Required   | Default value
        type     | Type name: icoUncoupledKinematicCloud | yes  |
        U        | Name of the velocity field       | no        | U
        kinematicCloud | Name of the kinematicCloud | no        | kinematicCloud
    \endtable
2016-05-16 22:52:44 +01:00
2768aefa3c dynamicCode/functionObjectTemplate: Updated and simplified by deriving from the regionFunctionObject base-class 2016-05-16 22:23:53 +01:00
d8c5eb43f7 etc/codeTemplates/functionObject: Updated and simplified using fvMeshFunctionObject as the base-class 2016-05-16 22:16:22 +01:00
18725ed3ac 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
4ba3463052 functionObjects: Simply functionObjects requiring access to the fvMesh using fvMeshFunctionObject 2016-05-16 16:21:06 +01:00
151631c5e4 Allwmake: improved '-update' option to handle out-of-date '.dep' files
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2091
2016-05-16 12:21:57 +01:00
9353abcabe functionObjects: Added regionFunctionObject and fvMeshFunctionObject intermediate base-classes
to simplify writing common functionObjects and avoid unnecessary code duplication
2016-05-16 12:20:44 +01:00
a5ed7f57fc etc/codeTemplates/functionObject: Updated to correspond to the new functionObject structure 2016-05-15 21:47:18 +01:00
855ce5b735 Updates to script documentation
Patch contributed by Bruno Santos
Resolves text report http://bugs.openfoam.org/view.php?id=2089
2016-05-15 18:12:26 +01:00
91aba2db2e 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
1441f8cab0 Patches contributed by Mattijs Janssens:
splitMeshRegions: handle flipping of faces for surface fields

subsetMesh: subset dimensionedFields

decomposePar: use run-time selection of decomposition constraints. Used to
    keep cells on particular processors. See the decomposeParDict in

$FOAM_UTILITIES/parallel/decomposePar:
  - preserveBaffles: keep baffle faces on same processor
  - preserveFaceZones: keep faceZones owner and neighbour on same processor
  - preservePatches: keep owner and neighbour on same processor. Note: not
    suitable for cyclicAMI since these are not coupled on the patch level
  - singleProcessorFaceSets: keep complete faceSet on a single processor
  - refinementHistory: keep cells originating from a single cell on the
    same processor.

decomposePar: clean up decomposition of refinement data from snappyHexMesh

reconstructPar: reconstruct refinement data (refineHexMesh, snappyHexMesh)

reconstructParMesh: reconstruct refinement data (refineHexMesh, snappyHexMesh)

redistributePar:
  - corrected mapping surfaceFields
  - adding processor patches in order consistent with decomposePar

argList: check that slaves are running same version as master

fvMeshSubset: move to dynamicMesh library

fvMeshDistribute:
  - support for mapping dimensionedFields
  - corrected mapping of surfaceFields

parallel routines: allow parallel running on single processor

Field: support for
  - distributed mapping
  - mapping with flipping

mapDistribute: support for flipping

AMIInterpolation: avoid constructing localPoints
2016-05-15 16:36:48 +01:00
26658647fa 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
90ba6113b5 checkMesh: Updated the closed-ness test for ACMI to use FV
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2088
2016-05-13 16:23:02 +01:00
3c272484c5 functionObjects: Separated 'execute' and 'write' functions to simplify support for post-processing 2016-05-13 09:05:29 +01:00
758dfc2c1f 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
71290b4d9e 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
e1205379eb Doxygen documentation: Use C++-style comments for enumeration elements 2016-05-11 23:10:42 +01:00
5bd03e0632 OutputFilterFunctionObject: Removed support for "dictionary" option
Superseded by the more general #include dictionary directive.
2016-05-11 23:08:48 +01:00
6cde38d65b OutputFilterFunctionObject: Simplify construction 2016-05-11 14:40:55 +01:00
3d05ea5bc4 etc/config.sh/metis: Added $WM_PRECISION_OPTION to support SP
etc/config.sh/scotch: Added $WM_PRECISION_OPTION for consistency
2016-05-11 14:39:28 +01:00
dbae6e80ae etc/config.*/settings: Remove unnecessary $WM_COMPILE_OPTION from $FOAM_EXT_LIBBIN
Simplified the directory structure in ThirdParty-dev/platforms
2016-05-11 14:37:07 +01:00
901f6cde1d functionObjects: Removed the redundant "viable" member function
Construction failure and recovery is not handled with exceptions in functionObjectList
2016-05-11 12:57:17 +01:00
6960d664aa functionObjects: Removed redundant "start()" member function 2016-05-11 10:20:39 +01:00
4b54fb9f9d functionObjectList: Print the messages from errors caught during functionObject construction
Exit on FatalIOError
2016-05-11 10:19:07 +01:00
de7ac625e4 functionObjectList: Rationalized and simplified the handling of disabled functionObjects
Simplified and generalized the handling of functionObjects which fail to
construct by removing them from the list rather than maintaining an
"enabled" switch in each functionObject.
2016-05-11 09:03:52 +01:00
8663237a0f src/postProcessing/functionObjects: Removed unused IOOutputFilter clutter 2016-05-10 12:54:42 +01:00
1caf470b79 etc/config.sh/metis: Updated for changes to ThirdParty-dev/Allwmake
See commit b627924a4bf104521b567d3aa3dc80c864325b1a

    Allwmake: Added scripted changes for REALTYPEWIDTH and IDXTYPEWIDTH
    Patch contributed by Bruno Santos
    Resolves bug-report http://bugs.openfoam.org/view.php?id=2085
2016-05-10 11:39:51 +01:00
ad3c8f6dec writeVTK: New functionObject to write fields is VTK format
Description
    This functionObject writes objects registered to the database in VTK format
    using the foamToVTK library.

    Currently only the writing of the cell-values of volFields is supported but
    support for other field types, patch fields, Lagrangian data etc. will be
    added.

    Example of function object specification:
    \verbatim
        writeVTK1
        {
            type        writeVTK;
            functionObjectLibs ("libIOFunctionObjects.so");
            ...
            objectNames (obj1 obj2);
        }
    \endverbatim

    \heading Function object usage
    \table
        Property     | Description             | Required    | Default value
        type         | type name: writeVTK     | yes         |
        objectNames  | objects to write        | yes         |
    \endtable
2016-05-10 10:06:19 +01:00
64aac63b03 applications/solvers/heatTransfer/chtMultiRegionFoam: Check there are fluid meshes present for the '-postProcess' option 2016-05-09 19:55:11 +01:00
a9b4e7975a tutorials/incompressible/simpleFoam: Updated for changes in functionObjects 2016-05-09 19:12:38 +01:00
06dd7cd8d3 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
3be1d14af8 execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option 2016-05-09 17:02:00 +01:00
4364ea2567 applications/solvers/heatTransfer: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 16:28:48 +01:00
4c8556709a applications/solvers: Moved createMRF.H into createField.H
to ensure MRF functionality is available for the -postProcess option
2016-05-09 16:06:12 +01:00
0cf2b3ce73 applications/solvers/lagrangian: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 15:55:23 +01:00
bbcd1a7b24 Updated headers 2016-05-09 15:23:36 +01:00
88ec5f9253 applications/solvers/discreteMethods: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 15:23:07 +01:00
0478ebf171 applications/solvers/compressible: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 15:16:22 +01:00
19aefe5a26 applications/solvers/combustion: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 14:51:21 +01:00
15545786b4 applications/solvers: Added -postProcess option
See also commit 30e2f912e5
2016-05-09 14:08:15 +01:00
a4ac0f06fd metisDecomp: Reverted a7640fcdc4 due to compilation error 2016-05-09 13:28:09 +01:00
a7640fcdc4 metisDecomp: Use floatScalar rather than scalar for processorWeights
Resolved bug-report http://bugs.openfoam.org/view.php?id=2085
2016-05-09 08:42:52 +01:00
4c4f68c283 applications/solvers/incompressible: Added -postProcess option
See also commit 30e2f912e5
2016-05-08 22:40:42 +01:00
4cadaeb3cc applications/solvers/multiphase: Added -postProcess option
See also commit 30e2f912e5
2016-05-08 20:57:08 +01:00
ed3af8dfbf interPhaseChangeFoam, multiphaseInterFoam, potentialFreeSurfaceFoam: Added -postProcess option
See also commit 30e2f912e5
2016-05-08 17:23:36 +01:00
51281bdf8e interFoam: Added -postProcess option
See also commit 30e2f912e5
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1301
2016-05-08 14:32:23 +01:00
30e2f912e5 simpleFoam: Added experimental "-postProcess" option
Executes application functionObjects to post-process existing results.

    If the "dict" argument is specified the functionObjectList is constructed
    from that dictionary otherwise the functionObjectList is constructed from
    the "functions" sub-dictionary of "system/controlDict"

    Multiple time-steps may be processed and the standard utility time
    controls are provided.

This functionality is equivalent to execFlowFunctionObjects but in a
more efficient and general manner and will be included in all the
OpenFOAM solvers if it proves effective and maintainable.

The command-line options available with the "-postProcess" option may be
obtained by

simpleFoam -help -postProcess

Usage: simpleFoam [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
  -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

Henry G. Weller
CFD Direct Ltd.
2016-05-08 09:33:46 +01:00
c1a89ad040 tutorials: Removed unused "useReactionRate" option 2016-05-07 09:40:20 +01:00
71a448d66f functionObjects: Renamed option "adjustableTime" -> "adjustableRunTime" for consistency with Time 2016-05-07 09:32:00 +01:00
5b30f25b26 foamToVTK: Added Allwmake 2016-05-06 17:42:22 +01:00
9fc0987fbb foamDebugSwitches: Updated for changes in functionObjects 2016-05-06 17:41:56 +01:00
b72b9dcf88 primitives/direction: Changed from "char" to "int8_t" and added IO operators
to avoid problems when writing "nComponents"
2016-05-06 17:40:49 +01:00
28c753f52e foamToVTK: Use UPtrList rather than PtrList 2016-05-06 14:11:38 +01:00
5f95885a1a setConstraintTypes: Provide a "value" entry for ACMI
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2083
2016-05-06 14:09:44 +01:00
085f011369 PtrList: Now derived from UPtrList to avoid unnecessary code duplication
consistency with UList/List and so that functions which take a UPtrList
argument can also be called for PtrList.
2016-05-06 14:08:12 +01:00
6dfb01dc1f etc/config.*/unset: Updated for changes in foamOldDirs
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 23:37:33 +01:00
72572b64c6 etc/cshrc: Removed continuation lines from $foamOldDirs 2016-05-05 23:36:35 +01:00
9bb3351cdc etc/config.csh: Capitalized comments 2016-05-05 15:52:05 +01:00
f7e4137ee5 etc/bashrc, etc/cshrc: Filter $WM_PROJECT_DIR from paths rather than $FOAM_INST_DIR
Additionally filter $ParaView_DIR from paths in config.sh/paraview and config.csh/paraview

Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 15:37:00 +01:00
a89cd81aff 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
d0e612b285 processorPolyPatch: Avoid nesting loops with the same index 2016-05-05 15:17:08 +01:00
fff57bf797 functionObjects: Updated documentation 2016-05-04 21:01:22 +01:00
dca3d758cd foamToVTK: Separated into the library libfoamToVTK and the utility foamToVTK 2016-05-04 15:16:33 +01:00
97668c21a3 functionObjects: Moved functionObjects namespace documentation into functionObject.H 2016-05-04 13:56:36 +01:00
52e79b4703 functionObjects: Updated docs 2016-05-04 08:51:39 +01:00
81d444d07f setTimeStepFunctionObject: Added functionObjects namespace 2016-05-03 23:39:14 +01:00
c8171fb1e6 functionObjects: Simplified organization and naming 2016-05-03 23:37:28 +01:00
8064433432 functionObjects/jobControl/abortCalculation: Rename abortCalculation -> abort
functionObjects are now in the functionObjects namespace so "abort" no
longer causes a name-clash.
2016-05-03 20:01:19 +01:00
92c4c12a08 Multiphase solvers: Update p_rgh following density changes 2016-05-03 15:51:15 +01:00
001e172fed globalMeshData: Handle cyclic baffles in coupled edge synchronisation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2080
Patch contributed by Mattijs Janssens
2016-05-03 15:49:52 +01:00
0f1921787e reactingTwoPhaseEulerFoam: Update p_rgh following density changes
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2073
2016-05-03 14:53:11 +01:00
940237b4fe tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/system/fvSolution: Updated to improve stability 2016-05-03 14:52:38 +01:00
5822320b8d Building foamyHexMesh is now optional defaulting to not build
Set the environment variable "FOAMY_HEX_MESH" to build foamyHexMesh,
e.g. in ~/.OpenFOAM/dev/prefs.sh

FOAMY_HEX_MESH=yes
2016-05-02 18:21:45 +01:00
3cd9b4f5d7 Change field loop index from "fieldI" to "fieldi" 2016-05-02 18:20:48 +01:00
f83975a701 functionObjects: Moved into the functionObjects namespace and rationalized and simplified failable construction
Rather than requiring each functionObject to handle failed construction
internally (using the active_ flag) the static member function "viable"
is provided which returns true if construction of the functionObject is
likely to be successful.  Failed construction is then handled by the
wrapper-class which constructs the functionObject,
e.g. "OutputFilterFunctionObject".
2016-05-02 16:28:24 +01:00
66a6700a4b src/postProcessing/functionObjects: Moving the functionObjects into the "functionObjects" namespace 2016-05-01 14:48:30 +01:00
935e5a8f03 EulerDdtScheme: evaluate dimensioned internal field expressions rather than primitive field expressions
Ensures dimension consistency and simplifies the expressions
2016-05-01 11:08:01 +01:00
bc2fd6c347 applications/solvers: include readTimeControls.H in the time-loop rather than createTimeControls.H
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2079
2016-05-01 11:06:21 +01:00
f8588e31f8 turbulentFluidThermoModels/derivedFvPatchFields: Updated documentation to conform to style-guide
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2078
2016-05-01 09:11:42 +01:00
8cdd590333 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
4da46e7cd9 Updated headers 2016-04-30 21:53:19 +01:00
fe43b80536 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField()
These new names are more consistent and logical because:

primitiveField():
primitiveFieldRef():
    Provides low-level access to the Field<Type> (primitive field)
    without dimension or mesh-consistency checking.  This should only be
    used in the low-level functions where dimensional consistency is
    ensured by careful programming and computational efficiency is
    paramount.

internalField():
internalFieldRef():
    Provides access to the DimensionedField<Type, GeoMesh> of values on
    the internal mesh-type for which the GeometricField is defined and
    supports dimension and checking and mesh-consistency checking.
2016-04-30 21:40:09 +01:00
68fb9a2bf9 GeometricField::dimensionedInteralFieldRef() -> GeometricField::ref()
In order to simplify expressions involving dimensioned internal field it
is preferable to use a simpler access convention.  Given that
GeometricField is derived from DimensionedField it is simply a matter of
de-referencing this underlying type unlike the boundary field which is
peripheral information.  For consistency with the new convention in
"tmp"  "dimensionedInteralFieldRef()" has been renamed "ref()".
2016-04-30 18:43:51 +01:00
bd911f60c8 CrankNicolsonDdtScheme: Use the new GeometricField constructor from DimensionedField and boundary FieldField 2016-04-30 14:29:11 +01:00
e1e996746b GeometricField::internalField() -> GeometricField::internalFieldRef()
Non-const access to the internal field now obtained from a specifically
named access function consistent with the new names for non-canst access
to the boundary field boundaryFieldRef() and dimensioned internal field
dimensionedInternalFieldRef().

See also commit a4e2afa4b3
2016-04-30 14:25:21 +01:00
7155ef61ae functionObjectFile: Separated into functionObjectFile and functionObjectFiles
functionObjectFile provides basic directory, file and formatting functions
functionObjectFiles provides multi-file cache
2016-04-30 09:18:42 +01:00
1fbf79d231 singlePhaseTransportModel: Added run-time type information
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2075
2016-04-29 20:21:15 +01:00
53e13f10a5 Updated header 2016-04-29 17:18:33 +01:00
064d3046b9 List: Removed unused constructor from iterators
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2074
2016-04-29 17:17:45 +01:00
aa09dd3f7b functionObjects/field/histogram: New functionObject to write the volume-weighted histogram of a volScalarField
e.g.
    pressureHistogram
    {
        type            histogram;

        functionObjectLibs ("libfieldFunctionObjects.so");

        field           p;
        nBins           100;
        min             -5;
        max             5;
        setFormat       gnuplot;
    }
2016-04-28 20:40:32 +01:00
c8ff51b887 fireFoam: New additional controls switch "solvePyrolysisRegion"
provides optional control for solving the pyrolysis region.

Patch contributed by Karl Meredith, FMGlobal.
2016-04-28 12:54:17 +01:00
0a01f70653 Remove .internalField() clutter for const-access to the internal field 2016-04-28 12:37:31 +01:00
75ea76187b GeometricField::GeometricBoundaryField -> GeometricField::Boundary
When the GeometricBoundaryField template class was originally written it
was a separate class in the Foam namespace rather than a sub-class of
GeometricField as it is now.  Without loss of clarity and simplifying
code which access the boundary field of GeometricFields it is better
that GeometricBoundaryField be renamed Boundary for consistency with the
new naming convention for the type of the dimensioned internal field:
Internal, see commit a25a449c9e

This is a very simple text substitution change which can be applied to
any code which compiles with the OpenFOAM-dev libraries.
2016-04-28 07:22:02 +01:00
a25a449c9e GeometricField: Rationalized and simplified access to the dimensioned internal field
Given that the type of the dimensioned internal field is encapsulated in
the GeometricField class the name need not include "Field"; the type
name is "Internal" so

volScalarField::DimensionedInternalField -> volScalarField::Internal

In addition to the ".dimensionedInternalField()" access function the
simpler "()" de-reference operator is also provided to greatly simplify
FV equation source term expressions which need not evaluate boundary
conditions.  To demonstrate this kEpsilon.C has been updated to use
dimensioned internal field expressions in the k and epsilon equation
source terms.
2016-04-27 21:32:45 +01:00
d82049c0b2 tutorials/combustion/fireFoam/les: Added missing ph_rgh.orig files 2016-04-27 16:18:25 +01:00
f6767301a1 geometricOneField: Added support for DimensionedInternalField 2016-04-27 12:46:38 +01:00
49adef644f DimensionedField: Corrected (currently unused) constructor from tmp 2016-04-27 12:45:55 +01:00
f0d25904e4 GeometricField, volFields: Added experimental member function ".v()" and perfix operator "~"
both of which return the dimensionedInternalField for volFields only.

These will be useful in FV equation source term expressions which need
not evaluate boundary conditions.
2016-04-26 20:45:53 +01:00
cb9732204d Replaced StaticAssert with the C++11 equivalent static_assert 2016-04-26 20:44:55 +01:00
2c107a17b5 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:38:33 +01:00
6fd4ce6cc3 Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 73fe45cd27.
2016-04-26 20:33:45 +01:00
73fe45cd27 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
97f473ff0f GeometricField::dimensionedInternalField() -> GeometricField::dimensionedInternalFieldRef()
See also commit a4e2afa4b3
2016-04-26 16:29:43 +01:00
a0742586d0 fvDOM: Corrected type of maxIter_
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2068
2016-04-26 10:51:09 +01:00
5510c7e62a wmake/rules/linux.*Icc: Remove -xHost option which causes surfaceFeatureExtract to fail for some cases 2016-04-25 22:29:22 +01:00
a4e2afa4b3 Completed boundaryField() -> boundaryFieldRef()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1938

Because C++ does not support overloading based on the return-type there
is a problem defining both const and non-const member functions which
are resolved based on the const-ness of the object for which they are
called rather than the intent of the programmer declared via the
const-ness of the returned type.  The issue for the "boundaryField()"
member function is that the non-const version increments the
event-counter and checks the state of the stored old-time fields in case
the returned value is altered whereas the const version has no
side-effects and simply returns the reference.  If the the non-const
function is called within the patch-loop the event-counter may overflow.
To resolve this it in necessary to avoid calling the non-const form of
"boundaryField()" if the results is not altered and cache the reference
outside the patch-loop when mutation of the patch fields is needed.

The most straight forward way of resolving this problem is to name the
const and non-const forms of the member functions differently e.g. the
non-const form could be named:

    mutableBoundaryField()
    mutBoundaryField()
    nonConstBoundaryField()
    boundaryFieldRef()

Given that in C++ a reference is non-const unless specified as const:
"T&" vs "const T&" the logical convention would be

    boundaryFieldRef()
    boundaryFieldConstRef()

and given that the const form which is more commonly used is it could
simply be named "boundaryField()" then the logical convention is

    GeometricBoundaryField& boundaryFieldRef();

    inline const GeometricBoundaryField& boundaryField() const;

This is also consistent with the new "tmp" class for which non-const
access to the stored object is obtained using the ".ref()" member function.

This new convention for non-const access to the components of
GeometricField will be applied to "dimensionedInternalField()" and "internalField()" in the
future, i.e. "dimensionedInternalFieldRef()" and "internalFieldRef()".
2016-04-25 16:16:05 +01:00
a8bf4be58a Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
8c4f6b8fcb Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
6a27f7af46 boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
6005258c10 noScatter.H: Corrected #ifdef
Resolved bug-report http://openfoam.org/mantisbt/view.php?id=2065
2016-04-24 21:05:29 +01:00
40ec00b575 Updated header 2016-04-23 23:38:10 +01:00
77cad08dfa boundaryField() -> boundaryFieldRef() 2016-04-23 23:37:53 +01:00
89397e8076 boundaryField() -> boundaryFieldRef() 2016-04-23 23:16:30 +01:00
c25b48a747 GeometricField: New non-const access function boundaryFieldRef()
There is a need to specify const or non-const access to a non-const
object which is not currently possible with the "boundaryField()" access
function the const-ness of the return of which is defined by the
const-ness of the object for which it is called.  For consistency with
the latest "tmp" storage class in which non-const access is obtained
with the "ref()" function it is proposed to replace the non-const form
of "boundaryField()" with "boundaryFieldRef()".

Thanks to Mattijs Janssens for starting the process of migration to
"boundaryFieldRef()" and providing a patch for the OpenFOAM and
finiteVolume libraries.
2016-04-23 23:07:28 +01:00
b63a532ad7 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
2c6b405043 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
c79f06079d thermoSingleLayer: Corrected handling of non-constant Cp 2016-04-23 10:03:40 +01:00
6a9101990e JohnsonJacksonSchaefferFrictionalStress: Updated I2D expression 2016-04-22 15:13:45 +01:00
6edac8f9ca 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
f33b40c202 foamCalcFunctions: Avoid the inclusion of fvCFD.H 2016-04-22 14:21:50 +01:00
449a9ecc08 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
19636b2244 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
db1f124025 dictionary: Corrected topDict()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2060
2016-04-21 21:08:56 +01:00
56059e7fb9 Tensor, SymmTensor: Simplified invariantII
Now the calculation of the 2nd-invariant is more efficient and
accumulates less round-off error.
2016-04-21 21:07:39 +01:00
0da5b0f989 Updated headers 2016-04-21 21:07:28 +01:00
d327a3f431 utilities/mesh/manipulation: Rationalized "End" message 2016-04-21 21:06:45 +01:00
1c2c1d83e7 transformPoints: Added "End" message
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2059
2016-04-21 21:05:47 +01:00
f7775abfe4 README.org: Added link to the OpenFOAM C++ Style Guide 2016-04-20 18:23:59 +01:00
7cb36e7f3f codingStyleGuide: Corrected sectioning 2016-04-20 10:33:19 +01:00
858146ca4b rigidBodyDynamics: Generalized the interface to the restraints
Now internal forces and restraints may be applied between bodies within
the articulated structure.
2016-04-19 21:58:10 +01:00
39bfef2b11 src/Allwmake: Added the new rigidBodyMeshMotion library 2016-04-19 11:11:22 +01:00
c13fe024f8 tutorials/multiphase/interDyMFoam/ras/DTCHull: Updated to use the rigidBodyDynamics solver 2016-04-19 10:35:09 +01:00
ccbb0b93c6 rigidBodyDynamics: Added support for running in parallel
The joint-space dynamics is solved on the master processor only and the
resulting joint-state distributed to the slave processors on which the
body-state is then updated.  This guarantees consistency of the body
position and orientation on all processors.
2016-04-19 10:32:25 +01:00
30a46904e5 doc/codingStyleGuide.org: Added specification references in class headers 2016-04-19 10:02:14 +01:00
b97b44f113 tutorials/multiphase/interDyMFoam/ras/floatingObject: Updated to use rigidBodyDynamics 2016-04-18 15:41:10 +01:00
04485798c4 Updated header 2016-04-18 15:40:57 +01:00
ebf0011020 src/rigidBodyDynamics/rigidBodyMotion: Added support for acceleration relaxation 2016-04-18 15:40:23 +01:00
51bb50935c rigidBodyDynamics/bodies/sphere: Added support for the centre of mass being offset from the centre of rotation 2016-04-18 15:39:07 +01:00
cca76719d5 rigidBodyDynamics/bodies/cuboid: New body shape
Calculate the inertia from the lengths of the sides
2016-04-18 15:37:57 +01:00
99a987f1d5 src/OpenFOAM/primitives: inherit operator=(const Foam::zero) from base class where appropriate 2016-04-17 21:02:57 +01:00
76e22b44ea applications/test/rigidBodyDynamics/pendulumAndSpring: Another slightly more complex test 2016-04-17 15:47:03 +01:00
189c6c6820 rigidBodyMeshMotion: Read initial state and g from dictionary if present 2016-04-17 15:46:22 +01:00
bac78ef989 PtrListIO: Indent list elements on output.
Particularly useful for lists of dictionaries.
2016-04-17 15:45:29 +01:00
04fe885920 BrownianMotionForce: Corrected expression for s0
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:39:09 +01:00
c1c4862028 Updated references
See also http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:29:51 +01:00
eda27b9e75 externalWallHeatFluxTemperatureFvPatchScalarField: Corrected handling of QrPrevious_
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2052
2016-04-16 18:43:51 +01:00
287603474a vector::zero -> Zero 2016-04-16 18:34:41 +01:00
04e4e1a7bb rigidBodyMeshMotion: displacementMotionSolver for the mesh-motion of multiple articulated rigid-bodies
The motion of the bodies is integrated using the rigidBodyDynamics
library with joints, restraints and external forces.

The mesh-motion is interpolated using septernion averaging.

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-16 16:02:25 +01:00
831e429dc8 linearSpring: Minor improvement in messages 2016-04-16 16:01:38 +01:00
fc32d53828 quaternion/septernion: Added multi- quaternion/septernion averaging
Using method based on
http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20070017872.pdf
but simplified for the case where the quaternions are similar.
2016-04-16 15:59:05 +01:00
d02e0aa05f src/Pstream/mpi/UPstream.C: Updated for Int64
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2055
2016-04-16 13:26:41 +01:00
2c2a7f5b97 doc/Doxygen/_Footer: Updated link to http://openfoam.org
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2053
2016-04-16 09:57:25 +01:00
40ccb21eb3 doc/Doxygen/_Footer: Updated copyright date
Patch contributed by Bruno Santos
2016-04-16 09:54:21 +01:00
81b13d0244 sixDoFRigidBodyMotion: Updated for change in definition of septernion::transform 2016-04-15 11:33:06 +01:00
860a82c0d4 vector::zero -> Zero 2016-04-15 11:32:42 +01:00
6a5d5e903e septernion: Changed definition of the forward transformation for consistency with spatialTransform
inline Foam::vector Foam::septernion::transformPoint(const vector& v) const
{
    return r().transform(v - t());
}

Now there is a 1:1 correspondence between septernion and
spatialTransform and a septernion constructor from spatialTransform
provided.

Additionally "septernion::transform" has been renamed
"septernion::transformPoint" to clarify that it transforms coordinate
points rather than displacements or other relative vectors.
2016-04-15 11:27:18 +01:00
980717ad36 rigidBodySolver: Updated comments 2016-04-12 22:23:04 +01:00
bc70e36915 rigidBodyDynamics: Removed quaternion counter and index: 'nw', 'wIndex'
Replaced with 'unitQuaterion()' virtual function to indicate if the
joint uses a unit quaternion to represent rotation.
2016-04-12 22:17:52 +01:00
df1cb90dc6 rigidBodyDynamics: Simplify handling of quaternions by maintaining a unit quaternion in the joint state field 'q'
'w' is now obtained from 'v' using the relation w = sqrt(1 - |sqr(v)|)
and 'v' is stored in the joint state field 'q' and integrated in the
usual manner but corrected using quaternion transformations.
2016-04-12 21:44:34 +01:00
4197cb075a quaternion: Added static member function to return a unit quaternion constructed from a vector
//- Return the unit quaternion (versor) from the given vector
    //  (w = sqrt(1 - |sqr(v)|))
    static inline quaternion unit(const vector& v);
2016-04-12 21:43:03 +01:00
4a7f5ed19a applications/test/rigidBodyDynamics/sphericalJoint: Test for the quaternion-based spherical joint 2016-04-12 16:37:52 +01:00
b2563a8f1b applications/test/rigidBodyDynamics/spring: Updated comment 2016-04-12 16:37:26 +01:00
591cb1d11e rigidBodyDynamics/rigidBodySolvers: Added support for the integration of quaternion joints 2016-04-12 16:16:57 +01:00
ab6fcff621 applications/test/rigidBodyDynamics/spring: Correct typo 2016-04-12 16:16:30 +01:00
9e24a9b5e2 rigidBodyDynamics: Simplified the interface to the solvers 2016-04-12 12:57:31 +01:00
5cfd0fbd47 Updated header 2016-04-12 11:36:59 +01:00
c07bc87f95 rigidBodyDynamics/rigidBodySolvers: Added run-time selectable solvers to integrate the rigid-body motion
Currently supported solvers: symplectic, Newmark, CrankNicolson

The symplectic solver should only be used if iteration over the forces
and body-motion is not required.  Newmark and CrankNicolson both require
iteration to provide 2nd-order behavior.

See applications/test/rigidBodyDynamics/spring for an example of the
application of the Newmark solver.

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-12 11:33:20 +01:00
f4baa3a864 vtkSurfaceWriter: Changed precision of points to "double" to avoid the error
“Error when reading ascii data. Possible mismatch of datasize with
declaration.”

Patch contributed by Karl Meredith, FMGlobal
2016-04-12 09:03:12 +01:00
81eec80d5d rigidBodyDynamics/rigidBodyModelState: New class to hold the motion state of the rigid-body model
This is a more convenient way of maintaining the state or multiple
states (for higher-order integration), storing, retrieving and passing
between processors.
2016-04-11 19:01:16 +01:00
0825c1b924 rigidBodyDynamics/restraints: Added sphericalAngularDamper, spherical angular damper restraint 2016-04-11 16:12:23 +01:00
8b92402930 rigidBodyDynamics/restraints: Added linearAxialAngularSpring, linear axial angular spring restraint
Included for backward-compatibility with the 6-DoF solver but in the
future will be re-implemented as a joint rather than body restraint and
accumulated in tau (internal forces) rather than fx (external forces).
2016-04-11 15:14:18 +01:00
ef45d5872f Updated header 2016-04-11 14:29:00 +01:00
f29d184f28 rigidBodyDynamics/restraints: Added linearDamper 2016-04-11 14:28:09 +01:00
1177554029 rigidBodyDynamics/restraints: Complete dictionary IO 2016-04-11 11:45:51 +01:00
c019071604 rigidBodyDynamics: Added support for restraints and a linear spring with damper
applications/test/rigidBodyDynamics/spring: Test of the linear spring with damper restraint
Damped simple harmonic motion of a weight on a spring is simulated and
the results compared with analytical solution

    Test-spring
    gnuplot spring.gnuplot
    evince spring.eps

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-10 23:12:07 +01:00
c49982fbd6 rigidBodyDynamics/bodies/subBody: Changed "parent" to "master" to avoid confusion with the parent to which this composite body is joined 2016-04-10 23:08:45 +01:00
c8d5033af6 rigidBodyDynamics/joints: Added doc for namespace 2016-04-10 23:07:45 +01:00
7d757a7960 applications/test/rigidBodyDynamics/pendulum: Cleanup 2016-04-10 23:07:23 +01:00
292543a3a5 spatialTransform: Added the "&&" operator to transform positions 2016-04-10 23:06:35 +01:00
48427f7a4e applications/test/rigidBodyDynamics/pendulum/pendulum: Corrected joint type 2016-04-08 18:03:51 +01:00
b0d331aba7 rigidBodyModel: Add a few more comments 2016-04-08 17:25:17 +01:00
8df5ca61d2 rigidBodyDynamics/bodies/jointBody: Special body to support elements of composite joints 2016-04-08 17:16:01 +01:00
0c48b153de rigidBodyModel: Added operator<<(Ostream&, const rigidBodyModel&) 2016-04-08 17:02:02 +01:00
33a97bb848 rigidBodyDynamics: Simplified the IO of bodies 2016-04-08 16:56:48 +01:00
e2c9cb4563 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel, bodies and joints
Added support for composite joints including a specialized 6-DoF form for floating bodies.
2016-04-08 16:35:49 +01:00
b701ec9f3d rigidBodyDynamics/bodies: Complete set of clone functions to support copy construction and assignment 2016-04-07 23:04:17 +01:00
6d7eb1ac4d rigidBodyModel: Provide support for copy-construction and assignment 2016-04-07 22:28:52 +01:00
8ffd700ca6 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel 2016-04-07 21:47:08 +01:00
9aaf17d45d List: Remove the inherited UList::shallowCopy to avoid accidental misuse 2016-04-07 21:05:26 +01:00
fda9aadb3a 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
d52546b3ce surfaceInterpolationScheme: Added dotInterpolate member-function
dotInterpolate interpolates the field and "dots" the resulting
face-values with the vector field provided which removes the need to
create a temporary field for the interpolate.  This reduces the peak
storage of OpenFOAM caused by the divergence of the gradient of vector
fields, improves memory management and under some conditions decreases
run-time.

This development is based on a patch contributed by Paul Edwards, Intel.
2016-04-06 14:23:18 +01:00
d4476c3946 VectorI: Added dummy innerProduct for scalar
to allow the construction of vtables for virtual member functions
involving the inner-products of fields for which a "NotImplemented"
specialization for scalar is provided.
2016-04-06 14:22:33 +01:00
569b915d5d Updated headers 2016-04-06 14:22:24 +01:00
1ae1b9f1d8 geometricOneField: Enhanced to provide better correspondence to GeometricField 2016-04-06 14:21:04 +01:00
e290c25361 src/Pstream/mpi/UPstream.C: Cast-away const-ness for backard-compatibility with OpenMPI versions < 1.7.4
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2044
2016-04-06 12:24:47 +01:00
255547dd33 src/rigidBodyDynamics/bodies: Added write 2016-04-04 22:10:34 +01:00
19a93cc696 applications/test/rigidBodyDynamics/pendulum: Simplified using sphere constructor and body lookup by name 2016-04-04 17:08:20 +01:00
1428f11b6e rigidBodyDynamics: Added sphere body to simply construction of articulated bodies containing spheres 2016-04-04 17:07:26 +01:00
947f04ac9e rigidBodyModel: Added support for body lookup by name 2016-04-04 17:06:48 +01:00
09ba40bf26 Updated header 2016-04-04 13:53:51 +01:00
3358c056e6 surfaceMeshConvert: Reinstated missing error messages 2016-04-04 13:53:20 +01:00
1c97ed7098 src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 12:51:33 +01:00
736c47d4dc applications/test/rigidBodyDynamics/pendulum: Add a test for merging bodies 2016-04-04 09:26:37 +01:00
94e9b05edd applications/.*/Allwmake: Updated to support "stop on 1st error"
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2042
2016-04-04 09:03:40 +01:00
1fbd362faa src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 08:59:50 +01:00
9891a0ccf9 applications/test/rigidBodyDynamics/pendulum: Very simple test/demonstration of the rigidBodyDynamics library
Simple swinging pendulum simulation with 1-DoF.  The motion is integrated
    using a symplectic method for just over 2-periods.
2016-04-03 22:17:10 +01:00
866bdce5b9 src/Allwmake: added rigidBodyDynamics 2016-04-03 15:53:50 +01:00
8a1e27d2c7 rigidBodyDynamics: New library providing support for the dynamics of n-DoF articulated bodies
Based on the principles, algorithms, data structures and notation
presented in the book:

    Featherstone, R. (2008).
    Rigid body dynamics algorithms.
    Springer.

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-03 15:48:59 +01:00
fec34404a8 wmake/rules/linux64Clang/c++Opt: Removed temporary line 2016-04-03 14:46:45 +01:00
ac71f86574 UList: Rationalize assignment (shallow-copy vs deep-copy)
//- Disallow default shallow-copy assignment
    //
    //  Assignment of UList<T> may need to be either shallow (copy pointer)
    //  or deep (copy elements) depending on context or the particular type
    //  of list derived from UList and it is confusing and prone to error
    //  for the default assignment to be either.  The solution is to
    //  disallow default assignment and provide separate 'shallowCopy' and
    //  'deepCopy' member functions.
    void operator=(const UList<T>&) = delete;

    //- Copy the pointer held by the given UList.
    inline void shallowCopy(const UList<T>&);

    //- Copy elements of the given UList.
    void deepCopy(const UList<T>&);
2016-04-03 10:26:05 +01:00
06f7682413 applications/test/Matrix/Test-Matrix.C: Corrected typo 2016-04-02 23:28:03 +01:00
56668b2406 Pstream: optimisation of data exchange
Contributed by Mattijs Janssens.

1. Any non-blocking data exchange needs to know in advance the sizes to
   receive so it can size the buffer.  For "halo" exchanges this is not
   a problem since the sizes are known in advance but or all other data
   exchanges these sizes need to be exchanged in advance.

   This was previously done by having all processors send the sizes of data to
   send to the master and send it back such that all processors
   - had the same information
   - all could work out who was sending what to where and hence what needed to
     be received.

   This is now changed such that we only send the size to the
   destination processor (instead of to all as previously). This means
   that
   - the list of sizes to send is now of size nProcs v.s. nProcs*nProcs before
   - we cut out the route to the master and back by using a native MPI
     call

   It causes a small change to the API of exchange and PstreamBuffers -
   they now return the sizes of the local buffers only (a labelList) and
   not the sizes of the buffers on all processors (labelListList)

2. Reversing the order of the way in which the sending is done when
   scattering information from the master processor to the other
   processors. This is done in a tree like fashion. Each processor has a
   set of processors to receive from/ send to. When receiving it will
   first receive from the processors with the least amount of
   sub-processors (i.e. the ones which return first). When sending it
   needs to do the opposite: start sending to the processor with the
   most amount of sub-tree since this is the critical path.
2016-04-02 18:32:11 +01:00
bb390f474f faceZoneToCell: Corrected cell selection logic
Patch contributed by Mattijs Janssens
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2038
2016-04-01 16:59:51 +01:00
3ae3d04bb3 wmake/rules/linux64Icc: avoid uninteresting warning messages and change to -O3 2016-04-01 14:53:43 +01:00
64c08b084e spatialTransformI.H: Corrected doc 2016-04-01 14:53:23 +01:00
c7179bd0d0 Updated handling of the ParaView installation path
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2034
2016-03-30 19:26:01 +01:00
4ac67d6ade Field: Add block member function to return sub-sets of the field as VectorSpaces 2016-03-30 18:17:51 +01:00
84dad12014 spatialTransform: Include spatialTensor.H 2016-03-30 18:17:27 +01:00
c0a1646401 MatrixSpace: Add support for block conversion into VectorSpace 2016-03-30 18:16:47 +01:00
9e5013bcb5 MatrixSpace: Corrected typo 2016-03-30 18:16:20 +01:00
6a7d9a9d64 SubField: Removed temporary Info statement 2016-03-25 22:43:40 +00:00
2c2c6efe63 scotchDecomp, ptscotchDecomp: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2032
2016-03-25 22:36:13 +00:00
f2ad503680 RectangularMatrix: Removed the identity function (now in SquareMatrix) 2016-03-25 22:35:03 +00:00
5879080b38 sampledSet: Further improvements in robustness for midPoint and midPointAndFace 2016-03-24 23:06:10 +00:00
709526bc3a Identity: Make cast-to-primitive operators explicit
to avoid operator resolution ambiguities when compiling single-precision
2016-03-24 23:04:53 +00:00
b9522c8032 LLTMatrix: Updated docs 2016-03-24 23:04:40 +00:00
84bad0b2f1 Update header 2016-03-24 19:13:36 +00:00
ff8e666099 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
95dda0efc0 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
523b01c1b2 QRMatrix: New class to provide QR-decomposition by Householder reflection
This development is sponsored by Carnegie Wave Energy Ltd.
2016-03-24 14:49:25 +00:00
21b5ffb6ee SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
121c4e3a28 Matrix: correct docs 2016-03-24 14:48:28 +00:00
495e09714a LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
60c430b0ae src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00
12e59d3553 LUscalarMatrix: Updated code layout 2016-03-23 15:34:19 +00:00
ddbd5f3d11 LLTMatrix: New matrix form to support Cholesky decomposition
of symmetric positive-definite matrices and the solution of associated
linear systems.
2016-03-23 15:33:03 +00:00
536402d4f5 SquareMatrix, RectangularMatrix: Updated block handling
Added 'typeOfInnerProduct' support to ensure the correct type is
returned from the matrix product operator.
2016-03-23 12:52:35 +00:00
d70c62bba2 MatrixBlock: Separate Matrix::Block into the separate class MatrixBlock
This avoids serious problems with template parameter deduction when
manipulating blocks of different matrix types e.g. Square and
Rectangular.
2016-03-23 12:50:34 +00:00
019bf94006 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
fa8929df6d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
59f7f1ef0e foamNewFunctionObject: script to create template code for a new function object
Run foamNewFunctionObject -h for details
2016-03-22 17:40:03 +00:00
44c73bfbe1 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
055a113f10 SquareMatrix, SymmetricSquareMatrix: Changed the constructor from size to require only n
This avoids the need to check that the m and n dimensions are the same.
2016-03-22 14:13:48 +00:00
feada18b40 Identity: Added conversion to label 2016-03-22 14:12:53 +00:00
22b2e397b2 RectangularMatrix: Added construction from and assignment to zero
Also added the Field outer-product operator returning a RectangularMatrix
2016-03-22 14:11:41 +00:00
c33961f3ad Matrix: Added support for extracting and assigning blocks
The blocks may be specified directly in terms of the size and location in the
parent matrix or with the size obtained from a template specified
VectorSpace or MatrixSpace type.
2016-03-22 14:09:24 +00:00
5f9b1d1681 Updated header 2016-03-22 14:09:04 +00:00
a16fff88f7 GAMGAgglomerationTemplates: Assign to Zero rather than pTraits<Type>::zero 2016-03-22 14:08:35 +00:00
da347abc51 Updated header 2016-03-22 14:08:01 +00:00
050ee51ad8 zero: Return Zero rather than zero() 2016-03-22 14:07:38 +00:00
89fa292968 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:38:59 +00:00
ffe2c2ac46 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
983b3e2ca4 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:35:57 +00:00
b49a71a402 zero: Added support for initializing bool 2016-03-22 10:35:13 +00:00
b8031d592b etc/codeTemplates/BC: Use Use 'Zero' rather than 'pTraits<Type>::zero' to initialize to 0 2016-03-22 08:33:16 +00:00
68f37e710f Updated headers 2016-03-22 08:31:34 +00:00
beb00e22d6 fvPatchFields: Use 'Zero' rather than 'pTraits<Type>::zero' to initialize to 0
This new approach to 0 initialization is simpler, cleaner, more readable
and more efficient.  The rest of the OpenFOAM code will be updated in
due course.
2016-03-22 08:27:59 +00:00
6f70b18bd2 Field: Added construction from and assignment to zero 2016-03-22 08:27:31 +00:00
042a9d96fd Updated header 2016-03-22 08:27:11 +00:00
d880a76409 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
c55d554050 VectorSpaces and MatrixSpaces: Added construction from and assignment to zero 2016-03-22 08:25:50 +00:00
bf6f2b3ed1 zero: Added cast to float and double for consistent scalar and floatScalar initialization and assignment to 0
Zero: New global instance of zero for simple and efficient initialization and assigment of primitives to 0
2016-03-22 08:23:09 +00:00
ec045baafe Identity: Added cast to scalar 2016-03-22 08:22:21 +00:00
64d256f79e etc/config.sh/CGAL: updated
Patch contributed by Bruno Santos:
 - "etc/config.sh/CGAL":
   - Indented the contents of the recently added if block.
   - Added comment about using system versions.
   - Library paths are now only added if the respective version is not "boost-system" and "cgal-system".

 - "src/renumber/Allwmake":
   It now relies on the previous file to get the version for
   Boost (the same way as in "makeCGAL"). This is so that it will also
   build "SloanRenumber" if "boost_version" is set to "boost-system".

 - "applications/utilities/mesh/generation/Allwmake":
   It now also relies on the script "config.sh/CGAL" to get the
   version for CGAL. If "cgal_version" is set to "cgal-system", it
   will now also build "foamy*Mesh" utilities and respective
   libraries.

Resolves report http://www.openfoam.org/mantisbt/view.php?id=1232
2016-03-22 07:58:38 +00:00
71da87b11f Test-Matrix: Removed timing test 2016-03-20 19:50:23 +00:00
c13421b10a Matrix: Added (i, j) addressing to allow support for addressing blocks of the matrix
This change brings OpenFOAM into line with the standard matrix
addressing in other C++ libraries for better interoperability.
2016-03-20 19:44:29 +00:00
767ffc3c7b Matrix: Replace the row-start pointer array with computed offsets
The row-start pointer array provided performance benefits on old
computers but now that computation is often cache-miss limited the
benefit of avoiding a integer multiply is more than offset by the
addition memory access into a separately allocated array.

With the new addressing scheme LUsolve is 15% faster.
2016-03-20 15:00:36 +00:00
59c9f3594e Updated header 2016-03-20 10:35:35 +00:00
9209192b65 objectRegistry: Set the path of the Time objectRegistry
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2030
2016-03-20 10:31:48 +00:00
3c3a02e61c sampledSet/midPoint, midPointAndFace: Improved robustness of the mid-point cell seaching and selecting 2016-03-19 21:22:09 +00:00
9f80c727e5 sampledSet/face: Improved robustness of face selection 2016-03-19 21:21:23 +00:00
712b07d478 Field: Added zero() constructor 2016-03-19 21:20:33 +00:00
248d6065eb Updated header 2016-03-19 21:20:18 +00:00
9dc14af017 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
e809171540 SpatialVector: Added cross-product and dual cross-product operators
SpatialTensor: Added SpatialVector cross-product and dual cross-product -> SpatialTensor operators
2016-03-18 21:52:27 +00:00
e3bbe40748 SphericalTensor/Identity: Added dual form 2016-03-18 21:52:00 +00:00
0a0e282090 Update header 2016-03-18 11:47:59 +00:00
4ab535bdda Identity: special type derived from SphericalTensor to provide the concept of identity (I)
Allows efficient operators to be defined for the interaction between
types and the equivalent identity.
2016-03-18 11:45:45 +00:00
f528f844db SpatialVector: Added component access member functions
wx(), wy(), wz(), lx(), ly() and lz()
2016-03-17 22:12:48 +00:00
4cc909f1ed spatialTransform: Compact representation of the Plücker spatial transformation tensor
in terms of the rotation tensor \c E and translation vector \c r .

  See Chapter 2 and Appendix A in reference:
     Featherstone, R. (2008).
     Rigid body dynamics algorithms.
     Springer.

    This work is sponsored by Carnegie Wave Energy Ltd

Henry G. Weller
CFD Direct
2016-03-17 20:31:36 +00:00
e2d1156ddd primitives/transform: Added functios to generate rotation tensor about the given axis 2016-03-17 18:09:04 +00:00
69dd56b9dd primitives/transform: Added functions to generate rotation tensors about the individual axes 2016-03-17 18:05:11 +00:00
8eb32a21d7 SpatialTensor: Added constructor from 4 Tensor blocks 2016-03-17 09:14:25 +00:00
926c29e95a reactingEulerFoam: Moved fluid.correctThermo() into energy corrector loop
to update the interfacial temperature.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2029
2016-03-17 08:05:08 +00:00
156b2d9791 thermoSingleLayer: Output the mean film temperature in addition to max and min 2016-03-16 15:34:57 +00:00
6ee4cad870 paraFoam: Updated instructions to build the reader modules
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2027
2016-03-16 09:24:25 +00:00
2e88689c3b lagrangian::StandardWallInteraction: accumulate escaping mass
Do not set accumulated properties to 0 on output

Updates provided by Karl Meredith
2016-03-15 22:37:48 +00:00
fa1dfa813b MatrixSpace::Block: Added "dereference" operator for conversion to sub-tensor 2016-03-15 22:36:56 +00:00
c26d5ee31a driftFluxFoam/relativeVelocityModels/general/general:: Corrected construction of residualAlpha 2016-03-15 20:33:06 +00:00
05455d50ea src/OpenFOAM/primitives/spatialVectorAlgebra: New classes to support spatial vector algebra
Based on definitions in chapter 2 of the book:
    Featherstone, R. (2008).
    Rigid body dynamics algorithms.
    Springer.

This work is sponsored by Carnegie Wave Energy Ltd
2016-03-15 18:14:03 +00:00
6057695f4f RowVector: New 3D row-vector class derived from MatrixSpace
The transpose '.T()' of a RowVector returns a Vector and vice versa.
2016-03-15 15:13:41 +00:00
04e8de2cf0 transformPoints, surfaceTransformPoints: Updated quaternion construction from Euler-angles
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2024
2016-03-14 16:40:35 +00:00
06fcefebd2 VectorSpace: Changes loop logic to avoid warning from gcc-4.5 2016-03-14 15:36:42 +00:00
7037737d03 Updated Doxygen documentation and files
Contributed by Bruno Santos
Resolves patch report http://www.openfoam.org/mantisbt/view.php?id=2023

Update online documentation http://openfoam.github.io/Documentation-dev/html/
2016-03-14 11:00:24 +00:00
dbe5d5288b quaternion: Added generalized construction from and conversion to Euler-angles
The particular rotation sequence is specified via the enumeration:

    //- Euler-angle rotation sequence
    enum rotationSequence
    {
        ZYX, ZYZ, ZXY, ZXZ, YXZ, YXY, YZX, YZY, XYZ, XYX, XZY, XZX
    };

and provided as an argument to the constructor from Euler-angles

    //- Construct a quaternion given the three Euler angles:
    inline quaternion
    (
        const rotationSequence rs,
        const vector& angles
    );

and conversion to Euler-angles:

    //- Return a vector of euler angles corresponding to the
    //  specified rotation sequence
    inline vector eulerAngles(const rotationSequence rs) const;
2016-03-14 08:07:42 +00:00
36f19c88c4 src/sampling/sampledSurface/isoSurface: Correct referencing to temporary fields
Patch provided by Mattijs Janssens
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1487
2016-03-12 11:50:04 +00:00
3ba1d17660 MatrixSpace: 2D (i-j) specialization of VectorSpace
Provides '(i, j)' element access and general forms of inner and outer
products, transpose etc. for square and rectangular VectorSpaces.

VectorSpaces default to be column-vectors as before whereas row-vectors
may be represented as 1xn MatrixSpaces.  In the future it may be
preferable to create a specializations of VectorSpace for column- and
maybe row-vectors but it would add complexity to MatrixSpace to handle
all the type combinations.

Tensor is now a 3x3 specialization of MatrixSpace.

Sub-block const and non-const access is provided via the
'.block<SubTensor, RowStart, ColStart>()' member functions.  Consistent
sub-block access is also provide for VectorSpace so that columns of
MatrixSpaces may be accessed and substituted.

These new classes will be used to create a more extensive set of
primitive vector and tensor types over the next few weeks.

Henry G. Weller
CFD Direct
2016-03-12 10:41:18 +00:00
bb49210567 Corrected typo 2016-03-11 09:46:48 +00:00
930d750bfd Matrix: Switch n() and m() so that now m() = number of rows and n() = number of columns
For consistency with current references and other numerics libraries
2016-03-10 22:53:09 +00:00
9711774b28 floatTensor: Tensor<float> 2016-03-10 12:45:42 +00:00
53c641e737 VectorSpace: Change template parameter from nCmpt to Ncmpts for consistency with other template classes 2016-03-10 12:44:53 +00:00
f3ca360300 Vector: Add constructor from Foam::zero 2016-03-10 12:44:25 +00:00
f2b111e203 src/OpenFOAM: changed template rank type from int to Foam::direction
Foam::direction is an unsigned type which makes it easier for the
compiler to pickup and report errors in the instantiation of
VectorSpaces and associated types.
2016-03-09 10:10:28 +00:00
8c1f5eae39 etc/cshrc, etc/config.csh: foamCompiler -> WM_COMPILER_TYPE
for consistency with etc/bashrc and etc/config.sh

See commit 711ec0e39d
2016-03-09 09:05:35 +00:00
41035d1643 bin/tools/foamConfigurePaths: foamCompiler -> WM_COMPILER_TYPE 2016-03-09 09:05:07 +00:00
711ec0e39d etc/bashrc, etc/config.sh: Updates provided by Bruno Santos:
1. "foamCompiler" was changed to a more permanent "WM_COMPILER_TYPE"
    environment variable, so that it can be used by 3rd party
    installation scripts, such as "makeGcc", "makeLLVM" and so on. More
    on this will be provided in issue #1215.

 2. The script functions such as "_foamSource()" and "_foamAddPath()"
    were moved to a new file "etc/config.sh/functions". It has the
    ability to set or unset, depending on whether "WM_BASH_FUNCTIONS" is
    defined or not. This allows for these functions to be reused by
    other scripts, such as "makeGcc".

 3. The script "etc/config.sh/CGAL" relies on whether a local
    environment variable "SOURCE_CGAL_VERSIONS_ONLY" is defined or not,
    so that it will load only the version settings if it's defined. This
    is to make it easier to call this script from "makeCGAL". Although
    it still feels a bit of a clunky hack, but I didn't manage to deduce
    any other way we could do this :( I didn't add indentation within
    the if-block, to make it easier to read the changes. In addition,
    the local variable "common_path" is used to shorten the length of
    the lines and use slightly less repeated code.

 4. Added another new script "etc/config.sh/compiler", which has only
    the version numbers for the compilers taken out from the "settings"
    file. It currently depends on "WM_COMPILER_TYPE" for setting the
    variables, the same way it did with "foamCompiler". This script is
    now always sourced from the "settings" file, for the following
    reasons:

   - "makeGCC" and "makeLLVM" can now take advantage of this script file.

   - The example "compiler" script (detailed next) can rely on this
     script file and then override parameters on-demand, as well as
     allowing for system compilers to have dedicated settings, such as
     setting "WM_CC". This is similar to how the example environment
     script for "paraview" works.

 5. To the script "etc/config.sh/example/compiler" were added a few more examples:

   - It now starts with a block where it first loads the default "compiler" script.

   - Has a "WM_COMPILER=Gcc48u" case example for when we try to use GCC
     4.8 in Ubuntu 15.10. This is just to give the idea that in a
     particular system, we might have several system-wide compiler
     versions. For example, in Ubuntu 15.10, there is GCC 4.7, 4.8 and
     5.2, which could be used for testing performances or compatibility
     with some other 3rd party library.

   - Has the "WM_COMPILER=Icc" case example, related to the original bug
     report, where "WM_CC=icc" and "WM_CXX=icpc", so that the user then
     simply copies this file to their own local preferences folder.

 6. Small bug fix in "etc/config.sh/mpi", where unsetting "minBufferSize" was missing at the end of the script.

 7. Small change in "etc/config.sh/paraview", where "CMAKE_ROOT" is set
    along with "CMAKE_HOME". This is due to a rare issue that occurs on
    people's systems where they have a custom system-wide CMake version
    installed and which is used by having "CMAKE_ROOT" set on that
    environment. This can mess up OpenFOAM's custom ParaView builds,
    given that conflicting CMake versions can lead to not building
    ParaView at all.

   - For more details about "CMAKE_ROOT":
     https://cmake.org/Wiki/CMake_Useful_Variables [^]

 8. The scripts "_foamAddPath _foamAddLib _foamAddMan" were not being
    unset at the end of "settings". They are now unset at the end of
    "bashrc", through a call to the new double-use "functions" script.

Additionally all references to "foamCompiler" have been changed to
"WM_COMPILER_TYPE".

See also http://www.openfoam.org/mantisbt/view.php?id=1232
2016-03-09 09:01:09 +00:00
6cc3b057ec wmake/src/Makefile: Override WM_COMPILE_OPTION with Opt for optimized compilation of the wmake utilities
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2021
2016-03-08 14:24:11 +00:00
9ef051dd18 fixedShearStressFvPatchVectorField: Corrected patch nuEff access
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2020
2016-03-08 14:14:39 +00:00
0ef2082dad JohnsonJacksonParticle*FvPatchScalarField.C: Corrected null-construction initialization
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2022
2016-03-08 14:13:05 +00:00
45d092f2e0 src/OpenFOAM/primitives: Moved the standard static data members for vector and tensor types into VectorSpace
This simplifies the code easing maintenance and the addition of other
VectorSpace types.
2016-03-08 10:57:41 +00:00
9bc50312eb simpleFoam, SRFSimpleFoam: Added momentumPredictor option 2016-03-07 15:27:01 +00:00
db675599ea SRFWallVelocityFvPatchVectorField: New BC for walls rotating in the SRF
Wall-velocity condition to be used in conjunction with the single rotating
    frame (SRF) model (see: FOAM::SRFModel)

    The condition applies the appropriate rotation transformation in time and
    space to determine the local SRF velocity of the wall.

        \f[
            U_p = - U_{p,srf}
        \f]

    where
    \vartable
        U_p     = patch velocity [m/s]
        U_{p,srf} = SRF velocity
    \endvartable

    The normal component of \f$ U_p \f$ is removed to ensure 0 wall-flux even
    if the wall patch faces are irregular.

    \heading Patch usage

    Example of the boundary condition specification:
    \verbatim
    myPatch
    {
        type            SRFWallVelocity;
        value           uniform (0 0 0);    // Initial value
    }
    \endverbatim
2016-03-07 15:25:52 +00:00
4db6b030e2 Tensor: Added inv() member function 2016-03-07 15:25:27 +00:00
eae4c1289d polyMeshFilter.H: Updated indentation 2016-03-06 21:35:02 +00:00
4ef64b2f11 tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/Allrun.pre: Updated for latest version of collapseEdges 2016-03-06 21:34:31 +00:00
f8056d28cb Update "wrmdep -update" to remove dead symbolic links
Patch provided by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2016
2016-03-06 19:13:45 +00:00
499c221df4 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
37157f436c Vector: added operator=(scalar) 2016-03-06 19:05:34 +00:00
6f188f9ed2 Tensor: Added operator&= 2016-03-06 19:05:14 +00:00
0003783224 Matrix: Improved readability of the code 2016-03-06 19:04:53 +00:00
1b9d8d2954 reactingTwoPhaseEulerFoam: Corrected mass exchange terms in the face-momentum equation
Thanks to Juho Peltola for the patch
2016-03-06 19:02:43 +00:00
e0451c75ec messageStream: Added DebugInfo and DebugInFunction:
DebugInfo:
    Report an information message using Foam::Info if the local debug
    switch is true

DebugInFunction:
    Report an information message using Foam::Info for FUNCTION_NAME in
    file __FILE__ at line __LINE__ if the local debug switch is true
2016-03-04 11:30:13 +00:00
8b8d0a02ba StaticAssert: Avoid unused typedef messages from gcc 2016-03-04 11:29:37 +00:00
41594f70eb CocoParserErrors.H: No longer used 2016-03-04 11:29:14 +00:00
1df60791d8 DynamicList: Added initialized constructor and STL erase function 2016-03-04 11:28:35 +00:00
898693713c Rationalize the autoMesh library: autoHexMesh -> snappyHexMesh
autoRefine -> snappyRefine
autoLayer -> snappyLayer
autoSnap -> snappySnap
2016-03-01 16:21:31 +00:00
8380044966 Rationalize the autoMesh library: autoMesh -> snappyHexMesh 2016-03-01 16:01:42 +00:00
bd893a5357 src/OpenFOAM: Removed unused files 2016-03-01 12:29:33 +00:00
5f729820a1 src/OpenFOAM: Moved function documentation comments into .H files and removed duplicates 2016-03-01 12:29:01 +00:00
d020141e48 src/OpenFOAM: Moved function documentation comments into .H files and removed duplicates 2016-02-29 21:21:41 +00:00
503273c69e src/finiteVolume: Moved function documentation comments into .H files and removed duplicates 2016-02-29 19:58:50 +00:00
d60651a09e OpenFOAM: Added experimental version of 'tmp' which does not use reference counting 2016-02-29 18:36:37 +00:00
c544bec896 Removed duplicate, inconsistent and spurious comments in .C files 2016-02-29 18:33:54 +00:00
99c000fc94 Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
e287bd2e65 sampledSets: use smallDist consistently between getTrackingPoint and other tracking functions
Use different hit-tolerances between sampling methods to account for the
difference in the "offset" definition.
2016-02-29 12:09:46 +00:00
cd59748bdb tmp: encapsulate refCount to enable the option for tmp to use a specific version 2016-02-28 22:50:24 +00:00
de01562257 ConeNozzleInjection: Corrected copy constructor
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2010
2016-02-28 18:22:38 +00:00
f572fdcf9a src/OpenFOAM/containers: Updated formatting and comments 2016-02-28 18:21:58 +00:00
51f93d3b43 tmp: Limit the number of references to a temporary object to 2
which reduces the number of potential problems with the reuse of
temporary objects.

In order to avoid unnecessary creation of tmp's referring to temporary
objects the assignment operator now transfers ownership of the object
and resets the argument.
2016-02-27 18:11:09 +00:00
4a35943909 Packaged coordinateSystem: updated localAxesRotation -> cylindrical 2016-02-26 16:12:50 -06:00
7859083246 OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch
NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
in the Make/options file.  However, it is recommended to upgrade all
code to the new safer tmp by using the '.ref()' member function rather
than the non-const '()' dereference operator when non-const access to
the temporary object is required.

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
49c54e9070 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
2666f87663 FieldField, DimensionedField, GeometricField: Simplified tmp reuse and cleanup 2016-02-25 18:29:00 +00:00
4f93551da9 Field: Simplified tmp reuse and cleanup 2016-02-25 15:07:14 +00:00
6d785bca2c tmp: Improved diagnostics in case of inappropriate reuse 2016-02-25 11:48:15 +00:00
a34fae3240 tutorials: Added missing 'value' entry for 'calculatedFvPatchField's 2016-02-24 16:21:50 +00:00
9e0e9fd37f calculatedFvPatchField: 'value' entry is now required to avoid problems with non-initialization 2016-02-24 16:01:40 +00:00
8d041d7ba8 wallDist: Updated for new 'tmp' 2016-02-24 15:57:17 +00:00
feb3fc43d0 reactingTwoPhaseEulerFoam/Make/options: Removed temporary debug option 2016-02-24 14:05:20 +00:00
3a56ebf33d tmp: Improved reference count checks to provide better error diagnostics
in case of tmp misuse.

Simplified tmp reuse pattern in field algebra to use tmp copy and
assignment rather than the complex delayed call to 'ptr()'.

Removed support for unused non-const 'REF' storage of non-tmp objects due to C++
limitation in constructor overloading: if both tmp(T&) and tmp(const T&)
constructors are provided resolution is ambiguous.

The turbulence libraries have been upgraded and '-DCONST_TMP' option
specified in the 'options' file to switch to the new 'tmp' behavior.
2016-02-24 12:47:36 +00:00
e22f1b3514 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
4758c2ac86 tmp: Updated to store and preserve the const-ness of the reference to a constant object
This change requires that the de-reference operator '()' returns a
const-reference to the object stored irrespective of the const-ness of
object stored and the new member function 'ref()' is provided to return
an non-const reference to stored object which throws a fatal error if the
stored object is const.

In order to smooth the transition to this new safer 'tmp' the now
deprecated and unsafe non-const de-reference operator '()' is still
provided by default but may be switched-off with the compilation switch
'CONST_TMP'.

The main OpenFOAM library has already been upgraded and '-DCONST_TMP'
option specified in the 'options' file to switch to the new 'tmp'
behavior.  The rest of OpenFOAM-dev will be upgraded over the following
few weeks.

Henry G. Weller
CFD Direct
2016-02-22 16:23:21 +00:00
5552674fc7 surfaceCoarsen: Changed List<::... to List< ::... for gcc-4.5 2016-02-21 09:03:39 +00:00
7d192447f0 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

zeroGradientFvPatchField should not be used as the default patch field
for any temporary fields and should be avoided for non-temporary fields
except where it is clearly appropriate;
extrapolatedCalculatedFvPatchField and calculatedFvPatchField are
generally more suitable defaults depending on the manner in which the
boundary values are specified or evaluated.

The entire OpenFOAM-dev code-base has been updated following the above
recommendations.

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
06257439b0 tutorials/combustion/reactingFoam: ras -> laminar 2016-02-19 15:13:52 +00:00
5e4822b974 kineticTheoryModel: Corrected handling of the SuSp term in the Theta equation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2002
2016-02-19 13:26:41 +00:00
affcff59ea 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
19497ce518 interFoam, interMixingFoam, interPhaseChangeFoam: construct rho with calculated BCs
Avoids problems with inherited complex BCs for which the controlling
fields and parameters are not initialized.
2016-02-18 21:26:25 +00:00
eca605d334 chemFoam: use default (empty) BCs for U rather than inheriting from p 2016-02-18 21:18:54 +00:00
0bfe5291d7 tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff: Updated for change in U boundary condition update order 2016-02-18 21:15:57 +00:00
baa60e2e19 sprayEngineFoam: Corrected included pEqn.H
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2000
2016-02-18 08:27:21 +00:00
ab3ed6d75e PengRobinsonGas: Added thermodynamic departure functions 2016-02-17 15:17:52 +00:00
87e6034f3a Updated headers 2016-02-17 10:53:57 +00:00
e538f281b8 thermophysicalModels: Added support for thermodynamic departure functions 2016-02-17 10:48:30 +00:00
1ad975a69f etc/config.sh/paraview: Reformatted
Patch provided by Bruno Santos
See http://www.openfoam.org/mantisbt/view.php?id=1232
2016-02-16 08:48:02 +00:00
75d23a7c90 Code templates: Updated headers 2016-02-15 20:53:21 +00:00
fa0656c358 scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
567236ef96 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
603b513b20 foamRunTutorials: Removed redundant code and simplified 2016-02-15 16:36:58 +00:00
51442e153e constrainPressure: Updated to use the more efficient patch-based MRF::relative function 2016-02-15 15:53:04 +00:00
630c45d5ab MRFZone: Added patch-based "relative" function 2016-02-15 15:52:33 +00:00
7c762bb90d 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
3c185e6d43 fixedMeanFvPatchField: Updated reading of "meanValue"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1995
2016-02-14 20:16:32 +00:00
4f38542d44 tutorials: Simplified the Allrun and Allclean scripts 2016-02-14 18:32:34 +00:00
7120fd2244 tutorials/multiphase/interFoam/ras/damBreakPorousBaffle: Use PIMPLE outer correctors to improve stability 2016-02-14 10:44:34 +00:00
acaf72b4b4 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
f58a6652f2 tutorials/incompressible/icoFoam: Simplified the handling of the wall BCs in cavityClipped 2016-02-12 18:09:21 +00:00
6e80a6fc82 tutorials: Add pFinal to PISO settings in icoFoam and mhdFoam tutorials 2016-02-12 15:48:10 +00:00
9f277401de OpenFOAM/matrices/solution: Simplify debug messages for consistency 2016-02-12 14:45:53 +00:00
85fec1da3d etc/config.*/paraview: Set ParaView-5.0.0 as the default for OpenFOAM-dev
to encourage testing and feedback
2016-02-12 14:28:12 +00:00
298cf122dd fvPatchFields: Added "assignable()" attribute
which returns true if the fvPatchField type provides an assignment operator
2016-02-12 14:26:49 +00:00
25f98bf7cf valuePointPatchField: Change assignment to use the object's internalField rather than that of the argument
Avoids dependency on the state of the argument pointPatchField the
internalField of which may have been de-allocated
2016-02-12 14:12:05 +00:00
cdd2e9b339 GeometricField: Added another constructor from tmp<GeometricField>
which supports re-using the internalField storage
2016-02-12 14:11:04 +00:00
ad37a9a5eb tmp: Added assignment to pointer operator to initialize null-tmp to an allocated object
This is a convenient method to set a null-constructed tmp in a
conditional statement.
2016-02-12 14:08:38 +00:00
626580f524 driftFluxFoam: Set Udm BCs to type calculated 2016-02-11 08:48:15 +00:00
6edb4b0dbb etc/config.sh/paraview: Reset the default ParaView version to 4.4.0 2016-02-10 22:44:19 +00:00
c03ea94be1 Renamed PV4Readers -> PVReaders to avoid confusion when compiling the reader for ParaView-5 2016-02-10 21:12:49 +00:00
db55ce92e0 etc/README.org: Added mpi 2016-02-10 20:49:04 +00:00
e1a1287302 Update docs 2016-02-10 20:47:51 +00:00
ad7dcfc2cf etc/config.*: Separate MPI settings into separate files and upgrade OpenMPI to 10.0.2 2016-02-10 20:46:24 +00:00
f6fe8a8fbe Update header 2016-02-10 16:20:46 +00:00
f48d94b4a6 Updates for changes to etc/config structure 2016-02-10 16:20:19 +00:00
3755883476 particle: Updated property list
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=1990
2016-02-10 15:43:31 +00:00
154731788f Function1Types::Square: New square-wave Function1 with the same controls as Sine
with optional specification of the mark/space ratio

    Templated square-wave function with support for an offset level.

        \f[
            a square(f (t - t_0)) s + l
        \f]

    where

    \f$ square(t) \f$ is the square-wave function in range \f$ [-1, 1] \f$
    with a mark/space ratio of \f$ r \f$

    \vartable
        symbol  | Description       | Data type         | Default
        a       | Amplitude         | Function1<scalar> |
        f       | Frequency [1/s]   | Function1<scalar> |
        s       | Type scale factor | Function1<Type>   |
        l       | Type offset level | Function1<Type>   |
        t_0     | Start time [s]    | scalar            | 0
        r       | mark/space ratio  | scalar            | 1
        t       | Time [s]          | scalar
    \endvartable

    Example for a scalar:
    \verbatim
        <entryName> square;
        <entryName>Coeffs
        {
            frequency 10;
            amplitude 0.1;
            scale     2e-6;
            level     2e-6;
        }
    \endverbatim
2016-02-10 15:40:19 +00:00
715d1bf2c0 OpenFOAM-dev/etc: separated scripts for bash and csh into separate directories
etc/config.sh and etc/config.csh

This structure is more convenient to add support for other shells, e.g. zsh, fish etc.

Resolves feature request to simplify support for other shells in
http://www.openfoam.org/mantisbt/view.php?id=1232
2016-02-10 10:22:25 +00:00
b6ac82315c variableHeightFlowRateInletVelocityFvPatchVectorField: Changed the flow-rate to a Function1
to support time-variation
2016-02-10 09:46:37 +00:00
7d69d552ff turbulentInletFvPatchField: Minor update 2016-02-10 09:46:23 +00:00
b3cbc3810d translatingWallVelocityFvPatchVectorField: Changed the translation velocity to a Function1
to support time-variation
2016-02-10 09:44:55 +00:00
ee705d7ae2 rotatingWallVelocityFvPatchVectorField: Minor update 2016-02-10 09:44:38 +00:00
d8ff6d2093 flowRateInletVelocity: Minor update 2016-02-10 09:44:18 +00:00
cfc829dad9 Function1: Simplified files 2016-02-10 09:43:45 +00:00
c0f9781a61 surfaceNormalFixedValueFvPatchVectorField: Corrected mapping constructor 2016-02-09 20:09:45 +00:00
28006ee0a5 tutorials and templates: Updated wall BC for velocity to noSlip 2016-02-09 20:08:34 +00:00
ab3081aa6b 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
54b2d0b41c movingWallVelocityFvPatchVectorField: Updated to obtain the velocity field from the dimensionedInteralField
rather than by "lookup" from the database.
2016-02-09 18:43:48 +00:00
79a18f8b53 fvPatchFields: Added Function1Types to SeeAlso as appropriate 2016-02-09 15:42:13 +00:00
d58ff05210 fftRenumber: Corrected namespace 2016-02-09 15:41:52 +00:00
5c6a4d9559 Function1/makeDataEntries: Introduced macro to simplify instantiation of Function1Types 2016-02-09 15:26:02 +00:00
49a300b82b 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
e34b84ec1b fixedMeanFvPatchField: Added support for time-varying mean-value 2016-02-09 12:24:18 +00:00
798f13d81b flowRateInletVelocityFvPatchVectorField: Minor updates 2016-02-09 12:24:04 +00:00
20718552c0 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
1e3e700b84 Function1: Rationalized the stream output 2016-02-08 21:43:56 +00:00
bc7d6ff57c Function1Types::Sine: Changed parameters to be of type Function1 for greater flexibility
Templated sine function with support for an offset level.

        \f[
            a sin(2 \pi f (t - t_0)) s + l
        \f]

    where

    \vartable
        symbol  | Description       | Data type
        a       | Amplitude         | Function1<scalar>
        f       | Frequency [1/s]   | Function1<scalar>
        s       | Type scale factor | Function1<Type>
        l       | Type offset level | Function1<Type>
        t_0     | Start time [s]    | scalar
        t       | Time [s]          | scalar
    \endvartable
2016-02-08 21:42:46 +00:00
82474e0929 tutorials/compressible/rhoPimpleFoam/ras/angledDuct: Updated for change in U boundary condition update order 2016-02-08 18:40:54 +00:00
b32a953913 pplications/test/ListOps/Make/options: Removed extraneous backslash 2016-02-08 16:33:56 +00:00
6c53142ee3 Test-PackedList1: Removed chained assigments 2016-02-08 16:30:00 +00:00
0b4643922a Rename DataEntry -> Function1
Function1 is an abstract base-class of run-time selectable unary
functions which may be composed of other Function1's allowing the user
to specify complex functions of a single scalar variable, e.g. time.
The implementations need not be a simple or continuous functions;
interpolated tables and polynomials are also supported.  In fact form of
mapping between a single scalar input and a single primitive type output
is supportable.

The primary application of Function1 is in time-varying boundary
conditions, it also used for other functions of time, e.g. injected mass
is spray simulations but is not limited to functions of time.
2016-02-08 16:18:07 +00:00
e0ae7fc0e4 DataEntry/Sine: Corrected typo 2016-02-08 11:09:28 +00:00
a0cec770fa DataEntry/Sine: New DataEntryType which evaluates a sin function with offset
Description
    Templated sine function with support for an offset level.

        \f[
            a sin(2 \pi f (t - t_0)) s + l
        \f]

    where

    \vartable
        a       | Amplitude
        f       | Frequency [1/s]
        s       | Type scale factor
        l       | Type offset level
        t_0     | Start time [s]
        t       | Time [s]
    \endvartable

    Example for a scalar:
    \verbatim
        <entryName> sine;
        <entryName>Coeffs
        {
            frequency 10;
            amplitude 0.1;
            scale     2e-6;
            level     2e-6;
        }
    \endverbatim

    Example for a vector:
    \verbatim
        <entryName> sine;
        <entryName>Coeffs
        {
            frequency 10;
            amplitude 1;
            scale     (1 0.1 0);
            level     (10 1 0);
        }
    \endverbatim
2016-02-08 11:06:28 +00:00
5c24ee4091 RunFunctions::getNumberOfProcessors: Added support for files included in decomposeParDict 2016-02-08 10:51:49 +00:00
cfb48464b5 Added support for ParaView-5.0.0
PV4FoamReaders: Updated to build with ParaView-5.0.0
paraFoam: Updated to load PV4FoamReaders for ParaView-5.0.0

Currently this is experimental but if it becomes clear that ParaView-4
and ParaView-5 are and will remain consistent with respect to readers
the plan is to rename

PV4 -> PV

or

PV4 -> PV45 if it is assumed that PV6 may need to be different.
2016-02-08 10:03:55 +00:00
23bcea0299 flowRateInletVelocity: Added option to extrapolate the velocity profile to the inlet
e.g.

    inlet
    {
        type                flowRateInletVelocity;
        massFlowRate        0.2;
        extrapolateProfile  yes;
        rho                 rho;
        rhoInlet            1.0;
        value               uniform (0 0 0);
    }
2016-02-07 22:55:52 +00:00
2554dab02a fixedNormalInletOutletVelocity: Minor reorganization 2016-02-07 22:51:01 +00:00
e33d61804d DataEntryTypes: Update headers to include the new namespace 2016-02-07 13:48:50 +00:00
5b790aa60b Updated header 2016-02-07 13:34:03 +00:00
a162a26de6 DataEntry: Created the DataEntryTypes namespace for all the concrete DataEntry types
to avoid name conflicts with these primitive names in the OpenFOAM namespace
2016-02-07 13:32:38 +00:00
9f29c0a2ad etc/config/paraview.*: Added ParaView-5.0.0 2016-02-07 10:25:05 +00:00
1fdf881377 DataEntry: Rationalized IO to ensure consistency between read and write
Removed inconsistent binary output.
Removed unused and IO-inconsistent functions.
Simplified the handling of backward-compatible constant value:
    Removed the unnecessary CompatibilityConstant,
    Updated Constant and DataEntryNew to handle constant value construction.
2016-02-06 19:34:43 +00:00
8e04a529d9 TurbulenceModels: Reorder stress component evaluation
This ensures the U boundary conditions are updated before the explicit
parts of the stress are evaluated.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1988
2016-02-04 20:23:22 +00:00
7265d90d0d DataEntry: Do not instantiate DataEntry<label> for DataEntry types which interpolate
// Polynomial functions and interpolation do evaluate to label
    // Instead evaluate a scalar and convert to label as appropriate
    // makeDataEntryType(PolynomialEntry, label);
    // makeDataEntryType(CSV, label);
    // makeDataEntryType(Table, label);
    // makeDataEntryType(TableFile, label);

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1987
2016-02-04 17:28:18 +00:00
94046abbb6 foamyHexMeshBackgroundMesh: Updated to compile 2016-02-03 21:24:38 +00:00
938df85fc5 fieldAverage: Updated documentation 2016-02-03 20:56:27 +00:00
6bd588914f fieldAverage: Name the field averaging properties file "<functionObject name>Properties"
rather than the fixed name "fieldAveragingProperties" to allow for the
same field to be averaged more than once.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1336
2016-02-03 20:50:35 +00:00
b2d5ff67b0 doxygenXmlParser: pre-construct and compile constant regular expressions
and pre-construct constant strings and names

Speeds-up parsing of DTAGS so that lookup of a name takes ~1s

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=982
2016-02-03 16:28:00 +00:00
605f72a27c rawSurfaceWriter: Added support for compressed output
Patch provided by Armin Wehrfritz
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=843
2016-02-02 20:22:27 +00:00
6a09c974e4 Update headers 2016-02-02 20:09:58 +00:00
644d51b466 processorPolyPatch, processorCyclicPolyPatch: Rationalized the construction of the patch name
This change ensures that these patches are named consistently so that
they can be looked-up as required in e.g. patchMeanVelocityForce
2016-02-02 20:07:16 +00:00
fd6aed1b6c tutorials/incompressible/nonNewtonianIcoFoam: Added pFinal 2016-02-02 20:06:08 +00:00
0ac1fb8028 lagrangian: Move penetration function from KinematicCloud to SprayCloud
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=992
2016-02-02 19:53:04 +00:00
38b494fbc0 thermophysicalModels/specie/transport/logPolynomial: Polynomial in ln(T) for transport properties
ln(mu) = sum_i=1^N(a[i]*ln(T)^(i-1))
    ln(kappa) = sum_i=1^N(b[i]* ln(T)^(i-1))

Based on patch provided by Armin Wehrfritz

Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=978
2016-02-02 18:59:44 +00:00
699e4f2135 patchMeanVelocityForce: Add support for processorCyclic patches
If the mean velocity force is applied to a cyclic patch for parallel
    runs include contributions from processorCyclic patches generated
    from the decomposition of the cyclic patch
2016-02-01 10:36:58 +00:00
cd365c8ebd fieldAverage: Minor update to the documentation 2016-01-30 11:26:31 +00:00
41304deafb 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
d84325d5af coordinateSystems/coordinateRotation: Corrected e1, e2 and e3 and updated documentation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1982
2016-01-29 09:56:59 +00:00
e647249666 pisoControl: Corrected handling of final inner (PISO) iteration control 2016-01-28 09:02:25 +00:00
20204cb468 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
8446f25f1f wmake: Update comments 2016-01-24 14:37:39 +00:00
d138d0b949 wmake: Add support for compiler type default rules
which may be optionally overridden by version-specific rules.

For example the default rules for gcc on GNU/Linux x86_64 are in the
wmake/rules/linux64Gcc directory.  If there is a need to change any of
the rules for a specific version of gcc, e.g. gcc-4.8.4 the directory
wmake/rules/linux64Gcc48 may be created into which any of the language
files may be provided containing the rules to override the defaults.
2016-01-24 14:10:07 +00:00
93047ff0cd etc/config/settings.*: Add -std=c++0x to formally enable support for of C++11 features
when building ThirdParty packages.
c++0x is used rather than c++11 to support gcc-4.5.?
2016-01-23 15:18:38 +00:00
559e787dec sampledSet: Relax hit tolerance to handle warped faces 2016-01-23 15:16:51 +00:00
70b74c9371 interRegionExplicitPorositySource: Corrected initialization of firstIter_ 2016-01-20 20:51:09 +00:00
79f0c385ca Info -> InfoInFunction and updated comments 2016-01-20 17:51:15 +00:00
a23f79fa7e Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
2804f8748d Make disallowed member functions private
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1977
2016-01-20 10:41:14 +00:00
eb3cf2c880 interRegionExplicitPorositySource: Corrected initialization of firstIter_
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1978
2016-01-20 10:20:54 +00:00
4426006d69 Info -> InfoInFunction and updated comments 2016-01-20 10:18:13 +00:00
f9a8134c74 Updated header 2016-01-19 21:58:32 +00:00
d70384fcc1 Info -> InfoInFunction 2016-01-19 21:58:11 +00:00
e07993b800 scalarTransportFoam: Added support for steady-state solution and all fvOptions
Optional under-relaxation is provided for steady-state solution.
Added missing fvOptions.constrain and fvOptions.correct calls.
2016-01-19 21:20:03 +00:00
96966f468d foamToVTK: Default to ASCII format when WM_LABEL_SIZE=64
Based on patch provided by Alexey Matveichev
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1975
2016-01-19 16:28:23 +00:00
3e48c61eb3 reactingEulerFoam/interfacialModels/wallLubricationModels: Apply zero-gradient condition at walls 2016-01-19 15:26:42 +00:00
a4eabffbac Add support for flex-2.6
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1974
2016-01-18 19:44:38 +00:00
d508f12b74 sampledSetsFunctionObject/sampledSetsDict: Added an example of sampling on a line 2016-01-18 18:22:42 +00:00
bea095cc02 etc/config/paraview.*: Update include/lib directory name seaching to paraview-3.0 for ParaView-4.? 2016-01-18 18:15:29 +00:00
665b1f821e Provide consistency in assignment operators
Always return void to avoid various bugs associated with automatic
type conversion.

Resolves request http://openfoam.org/mantisbt/view.php?id=1973
2016-01-17 18:56:28 +00:00
7f67b3e46e reactingEulerFoam,twoPhaseEulerFoam: Corrected pressure equations for transonic operation
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1971
2016-01-17 11:02:21 +00:00
465452b7b9 functionObjects/utilities/scalarTransport: Set UName_ during construction for boundaryTypes()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1972
2016-01-15 14:47:56 +00:00
abcb782308 reactionThermo/functionObjects/moleFractions/moleFractions: New functionObject to calculate and write mole-fraction fields
This function object calculates mole-fraction fields from the mass-fraction
    fields of the psi/rhoReactionThermo and caches them for output and further
    post-processing.

    The names of the mole-fraction fields are obtained from the corresponding
    mass-fraction fields prepended by "X_"

    Example of function object specification:

        moleFractions
        {
            type psiReactionThermoMoleFractions;
        }

     or

        moleFractions
        {
            type rhoReactionThermoMoleFractions;
        }

    depending on the thermodynamics package used in the solver.
2016-01-14 16:34:37 +00:00
2d281a3cb9 mixedUnburntEnthalpyFvPatchScalarField: Corrected formatting 2016-01-14 16:34:15 +00:00
e029c7c1a3 Update headers 2016-01-11 13:02:52 +00:00
a56ab5f863 Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
36f2d69888 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
fba6cd961a wmake/rules: Add -std=c++0x to formally enable support for of C++11 features
The c++0x is used rather than c++11 to support gcc-4.5.?
2016-01-10 19:17:31 +00:00
b1006e8ff2 etc/config/paraview.*: Update include directory name which is 3.0 rather than 4.0 even for ParaView-4 2016-01-10 19:16:27 +00:00
111bba1cee Update headers 2016-01-10 12:50:58 +00:00
aff1a908a6 etc/config/settings.*: Update gcc versions 2016-01-10 12:50:41 +00:00
b28fc21a3e Update headers 2016-01-10 12:50:32 +00:00
c238fbd56d Make private member functions private
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1969
2016-01-10 12:49:35 +00:00
3dd784315b Correct formatting: "forAll (" -> "forAll("
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1967
2016-01-09 23:10:16 +00:00
c0e81a3674 CleanFunctions: Check the constant directory exists before cleaning it 2016-01-09 23:09:08 +00:00
de7ffbe62e foamCreateVideo: add option to specify first image number 2016-01-08 17:49:39 +00:00
3b1771b68a Updated header 2016-01-07 11:45:13 +00:00
06dc2078fc laplacianScheme: make private member functions private
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1965
2016-01-07 11:44:14 +00:00
9868b4ca9c Updated header 2016-01-05 07:31:48 +00:00
06dd21551c README.org: Added link to http://www.openfoam.org/dev.php
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1962
2016-01-05 07:30:52 +00:00
e20b9173e9 patchInteractionDataList: treat cyclicAMIPolyPatch as a coupled patch
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1949
2016-01-03 15:39:44 +00:00
705fbe2152 LISAAtomization: Corrected Ks expression
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1957
2016-01-03 12:04:51 +00:00
1c693aa44e dynamicMesh/meshCut: Improved diagnostics and documentation
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1960
2016-01-03 11:43:10 +00:00
9b29623c8b externalCoupledMixedFvPatchField.H: Updated documentation
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1961
2016-01-02 21:40:49 +00:00
5e799c0e12 src/regionModels/regionCoupling/Make/options: Removed redundant -I option
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1958
2016-01-01 21:29:21 +00:00
2bd263d868 IOdsmcFields.C: Not used, removed.
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1959
2016-01-01 21:21:15 +00:00
1197b974dc temperatureDependentAlphaContactAngleFvPatchScalarField: Temperature-dependent constant alphaContactAngle scalar boundary condition
Evaluates the contact angle as a function of the optionally specified
temperature field (defaults to T).  The "theta0" function is provided as
a DataEntry currently supporting:
    CompatibilityConstant
    constant
    csvFile
    polynomial
    table
    tableFile
2015-12-20 19:12:11 +00:00
d3ba4e6a53 alphaContactAngleFvPatchScalarField, constantAlphaContactAngleFvPatchScalarField: minor update 2015-12-20 18:16:15 +00:00
ba960a4185 supersonicFreestreamFvPatchVectorField: Corrected documentation 2015-12-20 18:12:58 +00:00
64fc1c11fc fanFvPatchField: Minor reorganization 2015-12-20 18:12:35 +00:00
ccc0c71df0 prghPressureFvPatchScalarField: Updated rho name specification
for consistency with prghPressureFvPatchScalarField
2015-12-17 12:23:29 +00:00
ad529cf414 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
3ad87864a3 turbulenceModels/RAS/v2f: removed the fvOptions source from the f-equation
It is not clear what form an fvOptions source should take as f is not a
transported dynamic field. For the moment the fvOptions source from the
f-equation has been removed until there is a specific need which will
show what the form should be.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1955
2015-12-17 08:40:52 +00:00
668edf8465 foamMonitor: change format to support old gnuplot versions
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1952
2015-12-16 20:26:25 +00:00
5defb3b751 wmake: General cleanup to improve consistency and maintainability
The Makefiles are now in the makefiles sub-directory

The "-f | -force" option in wmakeLnInclude is now "-u | -update" for
consistency with the other scripts.

The "Usage" entry in the headers is now consistently formatted in all
scripts.
2015-12-16 18:31:02 +00:00
be44ad5184 solvers: Change from pure RAS to any turbulence model
Provides support for running laminar.
2015-12-16 10:13:09 +00:00
64b2cddfe5 SRFSimpleFoam: Change from pure RAS to any turbulence model
Provides support for running laminar.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1951
2015-12-15 19:05:08 +00:00
947632531c Updated header 2015-12-15 15:40:06 +00:00
098e90de88 wmakeLnIncludeAll: Start messages with capital 2015-12-15 15:39:26 +00:00
01840651d4 Updated header 2015-12-15 15:39:19 +00:00
88e523aad6 wmakeLnInclude: Use xargs with find 2015-12-15 15:38:59 +00:00
119708e401 wcleanPlatform: Updated version of wcleanMachine and wcleanAll
wcleanPlatform is a more general and cleaner version of wcleanMachine
supporting the "-all" option to provide the equivalent of wcleanAll.

Both wcleanMachine and wcleanAll are now deprecated and will be removed
for the next major release.
2015-12-15 12:12:06 +00:00
764fc85e5c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2015-12-15 11:17:00 +00:00
2781d583d9 Updated Guides to v3.0.1 2015-12-15 11:16:49 +00:00
d1992c7e99 wmake/makeWmake: Removed
Legacy script which is no longer used
2015-12-14 18:23:50 +00:00
608dd321d1 wcleanAll, wrmdep: Updated check for the WM_PROJECT_DIR 2015-12-14 17:49:02 +00:00
436c3b92e4 AllwmakeParseArguments: Added "-update" option
Updates lnInclude directories and dep files before compilation.  This is
useful to apply following a "git pull" to ensure consistency between the
source files, dep files and links.
2015-12-14 11:03:16 +00:00
9977d77d91 tutorials/incompressible/pimpleDyMFoam/wingMotion/Allrun: Updated to handle missing polyMesh dir 2015-12-14 10:22:06 +00:00
5d8757d6bb PairCollision: Reduce division stabilization to SMALL 2015-12-14 10:21:22 +00:00
dbe56f6460 wrmdep: Update documentation 2015-12-13 21:23:04 +00:00
1185daf9b7 wrmdep: Added "update" option
Searches all the "src" and "application" directories of the project for
broken symbolic links for source code files and then remove all .dep
files that relate to the files that no longer exist.  Must be executed
in main project source code folder: $WM_PROJECT_DIR

Patch provided by Bruno Santos

Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=1941
2015-12-13 20:57:25 +00:00
21cf5fbe10 wclean: Added the target "empty", which removes empty directories
It will exit after removing the empty folders and it will not do the
other standard "wclean" operations.  This replaces the functionality
provided by "wrmdepold".

Patch provided by Bruno Santos
2015-12-13 20:55:24 +00:00
72bc2ac4a9 OSspecific/POSIX: Dynamically resize the path buffer in cwd
Starting from an initial buffer size of 256 it is incremented in steps
of 256 upto the maximum of 4096 as required.
Based on patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1944
2015-12-13 18:33:01 +00:00
35439753ef PairCollision: stabilize normalization of the force direction for low force
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1948
2015-12-12 09:00:42 +00:00
71f13ec9dd foamSequenceVTKFiles: Avoid the -s and -a options for basename
Only recent GNU/Linux distributions support this functionality
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1947
2015-12-11 14:21:02 +00:00
5c658dbfa2 Updated header 2015-12-11 13:12:19 +00:00
65245da016 foamSequenceVTKFiles, mpirunDebug: Correct call to "usage"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1946
2015-12-11 13:11:54 +00:00
d95e02dd84 compressibleInterFoam: updated tutorials with 0.org directory 2015-12-11 12:55:46 +00:00
baa5a1df12 LimitFuncs: Update function specializations to satisfy gcc, clang and icpc 2015-12-09 22:37:43 +00:00
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
6b3af46cdf reactingEulerFoam/interfacialModels/dragModels/TomiyamaKataokaZunSakaguchi: New drag model
Drag model for gas-liquid system of Tomiyama et al.

Reference:
    "Drag coefficients of single bubbles under normal and microgravity
     conditions"
    Tomiyama, A., Kataoka, I., Zun, I., Sakaguchi, T.
    JSME International Series B, Fluids and Thermal Engineering,
    Vol. 41, 1998, pp. 472-479

Provided by Alberto Passalacq
2015-12-09 16:51:46 +00:00
649c58423a reactingMultiphaseEulerFoam: Correct and test LTS support 2015-12-09 15:39:45 +00:00
b6bc068c42 reactingEulerFoam: Move LTS controls maxCo, maxDeltaT and rDeltaTSmoothingCoeff into the PIMPLE sub-dictionary
For consistency with all other solvers supporting the LTS option
2015-12-09 15:38:09 +00:00
338ffee34c metisDecomp: Changed to use scalar rather than float
Requires that metis is compiled with REALTYPEWIDTH set to 32 for SP and 64 for DP.
2015-12-09 09:16:08 +00:00
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
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
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
9bc2cecc91 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2015-12-07 22:39:06 +00:00
2d08d8dc82 fvcAverage: Removed temporary Info statement 2015-12-07 22:38:33 +00:00
ece0783afd foamNewApp: corrected template case 2015-12-07 17:28:40 +00:00
e0bb09718b foamNewApp: added execution and clock times to template 2015-12-07 14:15:14 +00:00
a13b036db3 saturationModels/Antoine: Corrected dimensions in Tsat
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1940
2015-12-05 16:12:57 +00:00
6b67e39136 foamNewBC: script to create template code for a new boundary condition
Run foamNewBC -h for details
2015-12-04 14:33:56 +00:00
10ded8a669 foamNewApp: script to create template for a new application
Creates a directory containing source .C file and Make directory
Will deprecate foamNewSource with App argument in due course
2015-12-04 14:21:37 +00:00
2a592ec363 reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels: Added support for fvOptions 2015-12-03 16:39:13 +00:00
5a6038ccf5 TurbulenceModels/phaseCompressible/LES/SmagorinskyZhang: Added support for fvOptions 2015-12-03 16:39:00 +00:00
bdabd09781 TurbulenceModels/phaseCompressible/LES/continuousGasKEqn: Added support for fvOptions 2015-12-03 16:38:43 +00:00
efc0489eff TurbulenceModels/phaseCompressible/LES/Niceno: Added support for fvOptions 2015-12-03 16:18:04 +00:00
cb90aed637 TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon: Added support for fvOptions 2015-12-03 16:17:40 +00:00
15a2988cc4 TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato: Added support for fvOptions 2015-12-03 16:17:23 +00:00
b8ddd63297 TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon: Added support for fvOptions 2015-12-03 15:43:27 +00:00
08a1b11df1 TurbulenceModels/phaseCompressible/RAS/LaheyKEpsilon: Added support for fvOptions 2015-12-03 15:37:05 +00:00
af2dd0f44e turbulenceModels/LES/DeardorffDiffStress: Added support for fvOptions 2015-12-03 14:53:27 +00:00
a1f9be94ed turbulenceModels/LES/SpalartAllmarasDES: Added support for fvOptions 2015-12-03 14:53:12 +00:00
b84ae0ecac turbulenceModels/LES/dynamicLagrangian: Added support for fvOptions 2015-12-03 14:52:48 +00:00
c816a1391b turbulenceModels/LES/dynamicKEqn: Added support for fvOptions 2015-12-03 13:48:42 +00:00
039da4c00d turbulenceModels/LES/WALE: Added support for fvOptions 2015-12-03 13:48:20 +00:00
211a9a377a turbulenceModels/LES/Smagorinsky: Added support for fvOptions 2015-12-03 13:40:32 +00:00
e915136569 turbulenceModels/LES/kEqn: Added support for fvOptions 2015-12-03 13:39:55 +00:00
5abe42817f SSG: Added support for fvOptions 2015-12-03 13:12:27 +00:00
4224aff41c LRR: Added support for fvOptions 2015-12-03 13:12:10 +00:00
cf51874c28 v2f: Added support for fvOptions 2015-12-03 13:11:49 +00:00
8978dd912c LaunderSharmaKE: Added support for fvOptions 2015-12-03 13:11:27 +00:00
f3c04f65a0 wallShearStress: Now may be used with any turbulence model (laminar, RAS or LES/DES)
Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=1939
2015-12-03 09:15:09 +00:00
9fe624b361 SpalartAllmaras: Added support for fvOptions 2015-12-03 08:43:31 +00:00
66d338713b realizableKE: Added support for fvOptions 2015-12-03 08:42:08 +00:00
274fbd9565 RNGkEpsilon: Added support for fvOptions 2015-12-03 08:41:39 +00:00
fa74b178c2 foamInstallationTest: Updated help message 2015-12-03 08:40:56 +00:00
12872f1ab8 kOmegaSST: Added support for fvOptions 2015-12-02 20:33:43 +00:00
70cc5bfe73 kOmega: Added support for fvOptions 2015-12-02 20:33:28 +00:00
da86adf4eb kEpsilon: Minor update of the lookup of fvOptions 2015-12-02 20:33:00 +00:00
b4d7adcb01 Minor updates to aid porting to FreeBSD
Based on patches provided by Jason Bacon
2015-12-02 18:18:06 +00:00
0df151a378 reactingEulerFoam: Lookup fvOptions from the mesh rather than construct a local copy 2015-12-02 15:39:45 +00:00
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
5749c95ed6 wallHeatFlux: Corrected sign of radiative heat-flux
Corrects feature-request http://www.openfoam.org/mantisbt/view.php?id=1856
Patch provided by Juho Peltola
2015-12-02 11:47:11 +00:00
27e8b3d282 porousBafflePressureFvPatchField: Corrected handling of mass-flux
Resolves the bug-report http://www.openfoam.org/mantisbt/view.php?id=1934
2015-12-01 16:31:32 +00:00
a3301464bd radiationModels: Correct handling of ECont and make P1 and fvDOM consistent
Patch provided by Timo Niemi
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=1636

This correction corresponds to option 3 of the options proposed by Timo:

Define both ECont and EDisp to be the total emission per surface area,
apply multiplication by 4 in cloudAbsorptionEmission model (the only
place that uses EDisp?). Do not multiply E in P1 at all, divide both
ECont and EDisp in fvDOM.
2015-12-01 16:20:37 +00:00
3fd7bd7018 applications: Added fvOptions library to link 2015-12-01 16:09:19 +00:00
fe9c908b0c fvOptions: wmakeLnInclude before building the TurbulenceModels libraries
Do not link the fvOptions library into the TurbulenceModels libraries
due to cyclic dependency
2015-12-01 13:10:51 +00:00
207ebe90ae applications/solvers: Added call to validate the turbulence model after construction
See also commit 82ccde3269
2015-12-01 10:25:38 +00:00
82ccde3269 TurbulenceModels: Added validate function
Moved correctNut call from constructors to the new validate function to
avoid problems with construction order and field availability for the
calculation of nut.

To ensure nut is physical and consistent with the turbulence fields the
validate function should be called after the construction of the
turbulence model, fvOptions and any other fields that the calculation of
nut might depend on.
2015-12-01 10:07:00 +00:00
61b2bcf39b adjointShapeOptimizationFoam: Added support for fvOptions 2015-12-01 10:05:44 +00:00
40c7a7996b boundaryFoam: Added support for fvOptions 2015-12-01 10:05:22 +00:00
39fbe85a93 PDRFoam: Added support for fvOptions 2015-12-01 10:04:56 +00:00
0a133a39f7 circleSet: Corrected point ordering
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1932
2015-12-01 09:45:58 +00:00
fe3916e09a chtMultiRegionFoam, chtMultiRegionSimpleFoam, buoyantPimpleFoam, buoyantSimpleFoam: Added support for hRef 2015-11-30 16:29:10 +00:00
a24eec402c mirrorFvMesh: Corrected parallel operation
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1494
2015-11-29 21:40:37 +00:00
a09fc00ae4 alphatWallBoilingWallFunctionFvPatchScalarField: Updated to compile SP 2015-11-29 21:40:16 +00:00
69f0a5e316 nutWallFunctionFvPatchScalarField: Added documentation for default coefficients
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1930
2015-11-29 21:27:26 +00:00
0517efd7db turbulenceModels/RAS/kEpsilon/kEpsilon: Added experimental support for fvOptions 2015-11-28 19:07:42 +00:00
e496de6fb2 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
65d917e85e waveDisplacementPointPatchVectorField: Corrected "waveLength" -> "waveNumber"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1929
2015-11-26 10:54:14 +00:00
aa6a7195b8 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
1a2b3a69b2 TurbulenceModels: updated the mapping of k to R BCs
Now k BCs which do not have a symmTensor equivalent are converted to "calculated"
2015-11-24 22:36:50 +00:00
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
9168a4abf9 fvPatchFields: Rationalized the construction of DataEntry values 2015-11-24 16:35:11 +00:00
5ff0345662 fixedMultiPhaseHeatFlux: Corrected patch kappaEff evaluation 2015-11-24 11:09:50 +00:00
6d542c87b2 fixedMultiPhaseHeatFlux: Added optional relaxation 2015-11-23 16:52:18 +00:00
05adeb46be snappyHexMesh layerParameters: Increased maxIters to 20
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1918
Patch provided by Richard Jones

maxIters could be made an option input if 20 is not sufficient for
difficult cases.
2015-11-23 16:48:05 +00:00
74d00e99e4 alphatFixedDmdtWallBoilingWallFunction: Obtain the turbulence model directly from the phase 2015-11-23 14:59:46 +00:00
dea0c7be57 fixedMultiPhaseHeatFlux: Calculates a wall temperature that produces the specified overall wall heat flux
across all the phases in an Eulerian multi-phase simulation.

Intended to be used with copiedFixedValue to ensure that phase wall
temperature are consistent:
    - Set 'fixedMultiPhaseHeatFlux' boundary for one of the phases
    - Use 'copiedFixedValue' for all the other phases.

Based on code provided by Juho Peltola
2015-11-23 14:50:05 +00:00
b9678a8336 alphatFixedDmdtWallBoilingWallFunction: Added relaxation
Patch provided by Juho Peltola
2015-11-23 14:22:36 +00:00
d5f8d691b0 TurbulenceModels: Correct nut during construction for single-phase solvers only.
For multiphase solvers the phase construction is not complete at this point.
2015-11-23 13:49:03 +00:00
56913f6307 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
151e1fafff Update header 2015-11-22 17:28:37 +00:00
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
ccef40cc0a meshRefinementBaffles: Correct faceZone orientation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1479
Patches provided by Bruno Santos based on the work of Mattijs Janssens
2015-11-21 21:35:00 +00:00
36cd8d0c0e chemFoam: Remove unused turbulence model 2015-11-21 18:30:35 +00:00
7c345a0202 specie/thermo: Use Pstd in the evaluation of equilibrium coefficients 2015-11-21 18:29:20 +00:00
fc7a792667 etc/controlDict: reformatted 2015-11-21 18:28:54 +00:00
98fb882f1c reactingEulerFoam/interfacialCompositionModels/saturationModels/Antoine: Corrected Tsat expression
Patch provided by Daniel Jasinski
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1893
2015-11-21 10:41:46 +00:00
cc942ed18e 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
654433f692 metisDecomp: Update to support 64-bit labels
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1920
2015-11-20 14:29:27 +00:00
016aad0d72 functionObjects: Format time according to the specification in controlDict
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1921
2015-11-20 13:22:51 +00:00
36fe080bc7 RunFunctions: Added -append and -overwrite options
-append: append to log file
-overwrite: overwrite log file
Original patch provided by Timm Severin
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1919
2015-11-19 15:48:06 +00:00
3792d0a9b1 TurbulenceModels: Separate template functions into .C files 2015-11-19 13:48:37 +00:00
c78d695494 TurbulenceModels: Improved instantiation of single-phase models in solvers
Simplifies lookup of RAS or LES models
2015-11-18 21:10:03 +00:00
c47a6ee1a8 rhoReactingFoam: Updated to use the latest UEqn.H from reactingFoam 2015-11-18 21:09:10 +00:00
8eeac52ebe reactingFoam: Added support for PIMPLE-consistent and pressure relaxation
Pressure relaxation is useful with LTS to damp acoustic waves
2015-11-18 09:34:16 +00:00
6a80fbf792 advectiveFvPatchField: Added support localEuler ddt (LTS)
This functionality is inherited by the waveTransmissive BCs
2015-11-18 09:33:13 +00:00
c4b36c1aa6 porousZone packaged fvOption: moved selectionMode to correct dict level 2015-11-17 14:59:30 +00:00
742f2da0fa Updated header 2015-11-17 12:07:33 +00:00
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
baa02e6916 src/combustionModels: Updated LES model lookup 2015-11-16 10:25:42 +00:00
142ff92750 compressibleInflowOutflow template case: corrected turbulent fields and fvSchemes 2015-11-15 22:06:43 +00:00
1af8893340 tutorials/combustion/fireFoam/les/smallPoolFire.*: Minor correction 2015-11-15 18:10:28 +00:00
22f53b55eb reactingEulerFoam: Updated phase-change support
Patches provided by Juho Peltola
2015-11-15 16:57:52 +00:00
058220c2d9 reactingEulerFoam/interfacialModels/wallDampingModels: Added interpolatedWallDamping abstract base-class
To simplify linear, sine and cosine wall-damping implementation
2015-11-15 13:32:19 +00:00
8bfc2f0f57 reactingEulerFoam/interfacialModels/wallDampingModels: Added cosine and sine damping functions 2015-11-14 21:25:09 +00:00
6844e64010 reactingEulerFoam/interfacialModels/liftModels: wallDampedLift
New lift model supporting near-wall damping using the new
wallDampingModels.

e.g.

lift
(
    (air in water)
    {
        type            wallDamped;
        lift
        {
            type            constantCoefficient;
            Cl              0.5;
        }
        wallDamping
        {
            type            linear;
            Cd              0.5;
        }
    }
);

in which a linear near-wall damping function min(y/(Cd*d), 1) is applied to the constant
coefficient lift model.  Additional wall-damping functions will be added.
2015-11-14 19:31:41 +00:00
e8b453cc1d tutorials/combustion/fireFoam/les/oppositeBurningPanels: Improved schemes and BCs 2015-11-14 19:31:06 +00:00
e8eb1707b5 FreeBSD sed: ensure that a "-e" option immediately follows "-i" 2015-11-14 17:03:03 +00:00
a6d2cefacd reactingTwoPhaseEulerFoam, reactingMultiphaseEulerFoam: Added nEnergyCorrectors
to allow iteration over the energy equations to improve stability for phase-change.
Additionally if nEnergyCorrectors is set to 0 the energy equations are
not solved which may be beneficial during the startup of some cases.
2015-11-13 22:06:52 +00:00
d0e45416e0 tutorials: Removed unnecessary "boundary" files 2015-11-13 20:05:37 +00:00
9d4c025db2 template cases: moved blockMeshDict.extPatches to system directory 2015-11-13 18:25:05 +00:00
a43939b2c5 closedVolume template case: removed word entries from dimensionedScalars in transportProperties 2015-11-13 17:44:06 +00:00
4a97061e59 Redundant boundary.org files removed from tutorial cases 2015-11-13 16:59:58 +00:00
c72992dc35 blockMeshDict files: removed redundant location entries in FoamFile headers 2015-11-13 16:09:57 +00:00
2cecaf408c blockMeshDict files moved to system directory (new default location) in template cases and unit test cases 2015-11-13 16:05:59 +00:00
7e2c9cfb85 tutorials/mesh/foamyHexMesh: Update location of blockMeshDict 2015-11-13 15:48:39 +00:00
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
aa4297918d 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
6ba93fc708 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
c18fd1d300 createTurbulenceFields: Specification of turbulence fields now command-line option
Usage: createTurbulenceFields [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -fields <wordReList>
                    specify which turbulence fields (k, epsilon, omega, R) to
                    write - eg '(k omega)' or '(R)' or '(.*)'.
  -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
  -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

Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1912
2015-11-13 10:55:34 +00:00
778c0cc8ed etc/caseDicts/setConstraintTypes: Initialize the value for processor BCs to the uniform internalField value
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1883
2015-11-11 12:17:30 +00:00
5e6a7ea282 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
cc99b65d77 src/OpenFOAM: Update ...IOErrorIn -> ...IOErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 21:13:04 +00:00
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
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
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
5841ee3481 Revert "meshRefinementBaffles: Correct faceZone orientation"
This reverts commit 6206280471.
2015-11-08 22:20:11 +00:00
29111c3723 fvcAverage: Minor improvement to the evaluation of the internalField 2015-11-08 12:25:30 +00:00
d5b4448e1a src/OpenFOAM: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-08 12:23:52 +00:00
8be8e1b231 Test-error: Updated to use test the new "...InFunction" macros 2015-11-07 16:28:13 +00:00
d46bbbf440 sutherlandTransport: Add support for reading thermo and transport from separate dictionaries
Based on patch provided by Daniel Jasinski
See http://www.openfoam.org/mantisbt/view.php?id=1888
2015-11-06 17:36:58 +00:00
fdc9432c4a reactingEulerFoam: Moved dilatation from AnisothermalPhaseModel to MovingPhaseModel
to support phase volume fraction changes due to pressure
2015-11-06 15:35:50 +00:00
76a910ab9f reactingEulerFoam/phaseSystems/phasePair/orderedPhasePair: Correct lookup of the aspectRatio
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1899
2015-11-05 19:53:43 +00:00
09af2cb0b6 compressibleInterFoam, multiphaseMixtureThermo: Corrected laminar mixture kinematic viscosity 2015-11-05 16:08:30 +00:00
6206280471 meshRefinementBaffles: Correct faceZone orientation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1479
Patches provided by Bruno Santos based on the work of Mattijs Janssens
2015-11-04 11:53:54 +00:00
d69bbc00ac compressibleInflowOutflow template case: updated turbulenceProperties to new TurbulenceModels library 2015-11-03 09:21:36 +00:00
4e04397acb 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
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
dfecb23b08 equationOfState/Boussinesq: New equation of state for the Boussinesq approximation for buoyant flows
Description
    Incompressible gas equation of state using the Boussinesq approximation for
    the density as a function of temperature only:

    \verbatim
        rho = rho0*(1 - beta*(T - T0))
    \endverbatim

To be used with the buoyantPimpleFoam and buoyantSimpleFoam solvers as
an alternative to using buoyantBoussinesqPimpleFoam or
buoyantBoussinesqSimpleFoam, providing consistency with all other
solvers and utilities using the thermodynamics package in OpenFOAM.
2015-10-31 18:27:38 +00:00
2ac2911029 subsetMesh/Make/options: removed unused entries
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1886
2015-10-31 17:55:59 +00:00
571c321da3 Doxyfile: Upgraded for Doxygen-1.8.10 2015-10-30 21:38:06 +00:00
678a7a5202 Updated headers 2015-10-30 21:37:59 +00:00
1e4a07c714 Updated docs for Doxygen: '<' -> '\<' and '>' -> '\>' 2015-10-30 21:37:03 +00:00
ff10fe0d5e messageStream, error: Add new versions of message and error macros
which use the __PRETTY_FUNCTION__ constant string to provide the function name
2015-10-30 17:30:26 +00:00
5deddf7e30 wallHeatFlux: Add support for radiative and total heat-fluxes
Patch provided by Daniel Jasinski
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=1856
2015-10-30 14:32:26 +00:00
941117a1c4 createIncompressibleRadiationModel: Allow specification of value only for rhoRef and CpRef
Patch provided by Daniel Jasinski: http://www.openfoam.org/mantisbt/view.php?id=1856
2015-10-30 14:01:20 +00:00
04103b5277 buoyantBoussinesqSimpleFoam: Add support for radiative heat-transfer consistent with buoyantBoussinesqPimpleFoam
Patch provided by Daniel Jasinski: http://www.openfoam.org/mantisbt/view.php?id=1856
2015-10-30 13:58:17 +00:00
d3621371e0 TurbulenceModels: Corrected docs
Reported in http://www.openfoam.org/mantisbt/view.php?id=1856
2015-10-30 13:28:28 +00:00
3b46408d38 reactingEulerFoam: Add polynomial saturation model
Provided by Juho Peltola
2015-10-29 22:42:42 +00:00
b5f64cd165 radiationCoupledBase: Correct docs 2015-10-29 22:42:14 +00:00
a2be28ec5a Documentation: Use '-' rather than '+' for lists for Doxygen 2015-10-29 22:41:34 +00:00
f623ba2542 Make Doxygen documentation consistent with the rest of OpenFOAM 2015-10-29 22:40:41 +00:00
15d700a966 porousBafflePressureFvPatchField: Corrected docs
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1884
2015-10-29 14:05:55 +00:00
866ec7d5cf PrimitivePatchCheck::checkTopology: Correct non-manifold check logic
Patch provided by Aron Jóhannesson
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1877
2015-10-29 10:54:47 +00:00
deb9df2051 reconstructPar: Corrected time directory for reconstructed sets
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1880
2015-10-27 16:27:04 +00:00
bc182a5c35 Removed spurious log file 2015-10-27 16:26:51 +00:00
74725bc212 Corrected headers 2015-10-27 16:26:40 +00:00
10475 changed files with 467108 additions and 282552 deletions

11
.gitignore vendored
View File

@ -6,8 +6,6 @@
.*~
*.bak
*.bak[0-9][0-9]
*.orig
*.orig[0-9][0-9]
\#*\#
# File-browser settings - anywhere
@ -58,8 +56,8 @@ doc/Doxygen/DTAGS
# Untracked configuration files
/etc/prefs.csh
/etc/prefs.sh
/etc/config/prefs.csh
/etc/config/prefs.sh
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
# Source packages - anywhere
*.tar.bz2
@ -77,11 +75,10 @@ doc/Doxygen/DTAGS
# Ignore .tags in the main directory
/.tags
# Ignore eclipse project files in the main directory
# Ignore project files in the main directory
/.cproject
/.project
/.dir-locals.el
# Ignore the test directory
/tutorialsTest
# end-of-file

View File

@ -1,11 +1,10 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation without documentation by default
genDoc=0
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
# Parse arguments for library compilation
. wmake/scripts/AllwmakeParseArguments
# Perform various checks
wmakeCheckPwd "$WM_PROJECT_DIR" || {
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR"
echo " The environment variables are inconsistent with the installation."
@ -36,11 +35,5 @@ src/Allwmake $targetType $*
# Compile OpenFOAM libraries and applications
applications/Allwmake $targetType $*
# Optionally build OpenFOAM Doxygen documentation
if [ $genDoc -eq 1 ]
then
doc/Allwmake
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
OpenFOAM(R) is Copyright (C) 2011 OpenFOAM Foundation
Contact: OpenFOAM Foundation (OpenFOAM.Foundation@gmail.com)
OpenFOAM is Copyright (C) 2011-2017 OpenFOAM Foundation
Contact: OpenFOAM Foundation, http://openfoam.org/contact
You may use, distribute and copy the OpenFOAM CFD Toolbox under the terms
of GNU General Public License version 3, which is displayed below, or

View File

@ -1,11 +1,11 @@
# -*- mode: org; -*-
#
#+TITLE: README for OpenFOAM-dev
#+TITLE: README for [[http://openfoam.org/download/source][OpenFOAM-dev]]
#+AUTHOR: The OpenFOAM Foundation
#+DATE: 9th March 2015
#+LINK: http://www.openfoam.org
#+DATE: 20th June 2016
#+LINK: http://openfoam.org
#+OPTIONS: author:nil ^:{}
# Copyright (c) 2015 OpenFOAM Foundation.
# Copyright (c) 2015-2016 OpenFOAM Foundation.
* About OpenFOAM
OpenFOAM is a free, open source computational fluid dynamics (CFD) software
@ -23,8 +23,9 @@
[[http://www.gnu.org/licenses/]], for a description of the GNU General Public
License terms under which you can copy the files.
* [[http://www.OpenFOAM.org/git.php][Download and installation instructions]]
* [[http://www.OpenFOAM.org/docs][Documentation]]
* [[http://OpenFOAM.org/download/source][Download and installation instructions]]
* [[http://OpenFOAM.org/docs][Documentation]]
* [[http://OpenFOAM.github.io/Documentation-dev/html][Source code documentation]]
* [[http://www.OpenFOAM.org/bugs][Reporting bugs in OpenFOAM]]
* [[http://www.openfoam.org/contact][Contacting the OpenFOAM Foundation]]
* [[http://OpenFOAM.github.io/Documentation-dev/html/codingStyleGuide.html][OpenFOAM C++ Style Guide]]
* [[http://OpenFOAM.org/bugs][Reporting bugs in OpenFOAM]]
* [[http://openfoam.org/contact][Contacting the OpenFOAM Foundation]]

View File

@ -2,9 +2,9 @@
cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. ../wmake/scripts/AllwmakeParseArguments
# Perform various checks
wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR/applications"
echo " The environment variables are inconsistent with the installation."
@ -18,10 +18,7 @@ wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
exit 1
}
set -x
wmake -all $targetType solvers
wmake -all $targetType utilities
wmake -all utilities $*
wmake -all solvers $*
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -1,3 +1,5 @@
#include "readTransportProperties.H"
Info<< "Reading field p\n" << endl;
volScalarField p
(
@ -29,3 +31,5 @@ volVectorField U
#include "createPhi.H"
mesh.setFluxRequired(p.name());
#include "readTurbulenceProperties.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Application
dnsFoam
Description
Direct numerical simulation solver for boxes of isotropic turbulence
Direct numerical simulation solver for boxes of isotropic turbulence.
\*---------------------------------------------------------------------------*/
@ -41,16 +41,13 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMeshNoClear.H"
pisoControl piso(mesh);
#include "readTransportProperties.H"
#include "createControl.H"
#include "createFields.H"
#include "readTurbulenceProperties.H"
#include "initContinuityErrs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -61,7 +58,7 @@ int main(int argc, char *argv[])
{
Info<< "Time = " << runTime.timeName() << nl << endl;
force.internalField() = ReImSum
force.primitiveFieldRef() = ReImSum
(
fft::reverseTransform
(
@ -88,16 +85,17 @@ int main(int argc, char *argv[])
{
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rAUf*fvc::ddtCorr(U, phi)
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAUf);
fvScalarMatrix pEqn
(
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
@ -115,7 +113,7 @@ int main(int argc, char *argv[])
runTime.write();
if (runTime.outputTime())
if (runTime.writeTime())
{
calcEk(U, K).write
(

View File

@ -4,4 +4,5 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,6 +30,7 @@ Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -44,6 +45,7 @@ int main(int argc, char *argv[])
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -55,10 +57,16 @@ int main(int argc, char *argv[])
while (simple.correctNonOrthogonal())
{
solve
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"

View File

@ -1,4 +1,4 @@
if (runTime.outputTime())
if (runTime.writeTime())
{
volVectorField gradT(fvc::grad(T));

View File

@ -1,11 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lfvOptions \
-lsampling

View File

@ -12,7 +12,7 @@ volVectorField U
mesh
);
U = dimensionedVector("0", U.dimensions(), vector::zero);
U = dimensionedVector("0", U.dimensions(), Zero);
surfaceScalarField phi
(
@ -24,13 +24,13 @@ surfaceScalarField phi
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fvc::interpolate(U) & mesh.Sf()
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::interpolate(U) & mesh.Sf();
phi = fvc::flux(U);
}
@ -40,7 +40,7 @@ word pName("p");
// Update name of the pressure field from the command-line option
args.optionReadIfPresent("pName", pName);
// Infer the pressure BCs from the velocity BCs
// Infer the pressure BCs from the velocity
wordList pBCTypes
(
U.boundaryField().size(),
@ -71,6 +71,21 @@ volScalarField p
pBCTypes
);
// Infer the velocity potential BCs from the pressure
wordList PhiBCTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
forAll(p.boundaryField(), patchi)
{
if (p.boundaryField()[patchi].fixesValue())
{
PhiBCTypes[patchi] = fixedValueFvPatchScalarField::typeName;
}
}
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
(
@ -84,7 +99,7 @@ volScalarField Phi
),
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
p.boundaryField().types()
PhiBCTypes
);
label PhiRefCell = 0;
@ -97,3 +112,5 @@ setRefCell
PhiRefValue
);
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,9 +25,9 @@ Application
potentialFoam
Description
Potential flow solver which solves for the velocity potential
from which the flux-field is obtained and velocity field by reconstructing
the flux.
Potential flow solver which solves for the velocity potential, to
calculate the flux-field, from which the velocity field is obtained by
reconstructing the flux.
This application is particularly useful to generate starting fields for
Navier-Stokes codes.
@ -36,7 +36,6 @@ Description
#include "fvCFD.H"
#include "pisoControl.H"
#include "fvIOoptionList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -80,8 +79,6 @@ int main(int argc, char *argv[])
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -123,8 +120,7 @@ int main(int argc, char *argv[])
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr((fvc::interpolate(U) & mesh.Sf()) - phi)))
/sum(mesh.magSf())).value()
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
// Write U and phi

View File

@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,12 +25,12 @@ Application
scalarTransportFoam
Description
Solves a transport equation for a passive scalar
Solves the steady or transient transport equation for a passive scalar.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvIOoptionList.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -58,7 +58,7 @@ int main(int argc, char *argv[])
while (simple.correctNonOrthogonal())
{
solve
fvScalarMatrix TEqn
(
fvm::ddt(T)
+ fvm::div(phi, T)
@ -66,6 +66,11 @@ int main(int argc, char *argv[])
==
fvOptions(T)
);
TEqn.relax();
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
runTime.write();

View File

@ -1,7 +1,7 @@
{
volScalarField& hea = thermo.he();
solve
fvScalarMatrix EaEqn
(
betav*fvm::ddt(rho, hea) + mvConvection->fvmDiv(phi, hea)
+ betav*fvc::ddt(rho, K) + fvc::div(phi, K)
@ -16,7 +16,16 @@
: -betav*dpdt
)
- fvm::laplacian(Db, hea)
+ betav*fvOptions(rho, hea)
);
EaEqn.relax();
fvOptions.constrain(EaEqn);
EaEqn.solve();
fvOptions.correct(hea);
thermo.correct();
}

View File

@ -2,7 +2,7 @@ if (ign.ignited())
{
volScalarField& heau = thermo.heu();
solve
fvScalarMatrix heauEqn
(
betav*fvm::ddt(rho, heau) + mvConvection->fvmDiv(phi, heau)
+ (betav*fvc::ddt(rho, K) + fvc::div(phi, K))*rho/thermo.rhou()
@ -23,5 +23,13 @@ if (ign.ignited())
// A possible solution would be to solve for ftu as well as ft.
//- fvm::div(muEff*fvc::grad(b)/(b + 0.001), heau)
//+ fvm::Sp(fvc::div(muEff*fvc::grad(b)/(b + 0.001)), heau)
==
betav*fvOptions(rho, heau)
);
fvOptions.constrain(heauEqn);
heauEqn.solve();
fvOptions.correct(heau);
}

View File

@ -16,7 +16,7 @@ EXE_INC = \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude
-I$(LIB_SRC)/triSurface/lnInclude \
EXE_LIBS = \
-lengine \
@ -29,4 +29,5 @@ EXE_LIBS = \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-ldynamicFvMesh
-ldynamicFvMesh \
-lfvOptions

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -77,27 +77,29 @@ Description
#include "Switch.H"
#include "bound.H"
#include "pimpleControl.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
turbulence->validate();
scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -106,7 +108,7 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -87,6 +87,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
turbulence->validate();
scalar StCoNum = 0.0;
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -97,7 +98,7 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
@ -130,11 +131,11 @@ int main(int argc, char *argv[])
protectedCell = 0;
}
forAll(betav, cellI)
forAll(betav, celli)
{
if (betav[cellI] < 0.99)
if (betav[celli] < 0.99)
{
protectedCell[cellI] = 1;
protectedCell[celli] = 1;
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/
#include "basicXiSubXiEq.H"
#include "zeroGradientFvPatchFields.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -93,59 +92,43 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
const scalarField Cw = pow(mesh.V(), 2.0/3.0);
tmp<volScalarField> tN
volScalarField N
(
new volScalarField
IOobject
(
IOobject
(
"tN",
mesh.time().constant(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"N",
mesh.time().constant(),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0),
zeroGradientFvPatchVectorField::typeName
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
);
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
volScalarField& N = tN();
N.internalField() = Nv.internalField()*Cw;
tmp<volSymmTensorField> tns
volSymmTensorField ns
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
U.mesh().time().timeName(),
U.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"ns",
U.mesh().time().timeName(),
U.mesh(),
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
pTraits<symmTensor>::zero
),
zeroGradientFvPatchSymmTensorField::typeName
IOobject::NO_READ,
IOobject::NO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
);
volSymmTensorField& ns = tns();
ns.internalField() = nsv.internalField()*Cw;
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;
volScalarField n(max(N - (Uhat & ns & Uhat), scalar(1e-4)));
volScalarField b((Uhat & B_ & Uhat)/sqrt(n));
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
volScalarField XiSubEq

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/
#include "basicXiSubG.H"
#include "zeroGradientFvPatchFields.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -71,32 +70,10 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::G() const
const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
tmp<volScalarField> tGtot = XiGModel_->G();
volScalarField& Gtot = tGtot();
volScalarField& Gtot = tGtot.ref();
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
tmp<volScalarField> tN
(
new volScalarField
(
IOobject
(
"tN",
Su_.mesh().time().timeName(),
Su_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
Su_.mesh(),
dimensionedScalar("zero", Nv.dimensions(), 0.0),
zeroGradientFvPatchVectorField::typeName
)
);
volScalarField& N = tN();
N.internalField() = Nv.internalField()*Cw;
scalarField N(Nv.primitiveField()*Cw);
forAll(N, celli)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -79,7 +79,7 @@ Foam::PDRDragModel::~PDRDragModel()
bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
{
PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
PDRDragModelCoeffs_.lookup("drag") >> on_;

View File

@ -168,7 +168,7 @@ public:
virtual void writeFields() const
{
notImplemented("PDRDragModel::write()");
NotImplemented;
}
};

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,10 +45,8 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn
(
"PDRDragModel::New"
) << "Unknown PDRDragModel type "
FatalErrorInFunction
<< "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/
#include "basic.H"
#include "zeroGradientFvPatchFields.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -109,13 +108,12 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
(
"zero",
dimMass/dimTime/pow(dimLength, 3),
pTraits<symmTensor>::zero
),
zeroGradientFvPatchSymmTensorField::typeName
Zero
)
)
);
volSymmTensorField& DragDcu = tDragDcu();
volSymmTensorField& DragDcu = tDragDcu.ref();
if (on_)
{
@ -145,12 +143,11 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0),
zeroGradientFvPatchVectorField::typeName
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0)
)
);
volScalarField& Gk = tGk();
volScalarField& Gk = tGk.ref();
if (on_)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -55,7 +55,7 @@ PDRkEpsilon::PDRkEpsilon
const word& modelName
)
:
Foam::RASModels::kEpsilon<EddyDiffusivity<compressible::turbulenceModel> >
Foam::RASModels::kEpsilon<EddyDiffusivity<compressible::turbulenceModel>>
(
geometricOneField(),
rho,
@ -130,7 +130,7 @@ void PDRkEpsilon::correct()
tgradU.clear();
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
epsilon_.boundaryFieldRef().updateCoeffs();
// Add the blockage generation term so that it is included consistently
// in both the k and epsilon equations
@ -161,9 +161,9 @@ void PDRkEpsilon::correct()
- fvm::Sp(C2_*betav*rho_*epsilon_/k_, epsilon_)
);
epsEqn().relax();
epsEqn.ref().relax();
epsEqn().boundaryManipulate(epsilon_.boundaryField());
epsEqn.ref().boundaryManipulate(epsilon_.boundaryFieldRef());
solve(epsEqn);
bound(epsilon_, epsilonMin_);
@ -182,7 +182,7 @@ void PDRkEpsilon::correct()
- fvm::Sp(betav*rho_*epsilon_/k_, k_)
);
kEqn().relax();
kEqn.ref().relax();
solve(kEqn);
bound(k_, kMin_);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,8 +36,8 @@ Description
{
scalarField sumPhi
(
fvc::surfaceSum(mag(phiSt))().internalField()
/ rho.internalField()
fvc::surfaceSum(mag(phiSt))().primitiveField()
/ rho.primitiveField()
);
StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();

View File

@ -7,13 +7,17 @@
+ turbulence->divDevRhoReff(U)
==
betav*rho*g
+ betav*fvOptions(rho, U)
);
fvOptions.constrain(UEqn);
volSymmTensorField invA(inv(I*UEqn.A() + drag->Dcu()));
if (pimple.momentumPredictor())
{
U = invA & (UEqn.H() - betav*fvc::grad(p));
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -74,7 +74,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
if (subGridSchelkin_)
{
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
up.primitiveFieldRef() += calculateSchelkinEffect(uPrimeCoef_);
}
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -82,7 +82,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
volScalarField up(sqrt((2.0/3.0)*k));
if (subGridSchelkin_)
{
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
up.primitiveFieldRef() += calculateSchelkinEffect(uPrimeCoef_);
}
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
@ -108,7 +108,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
dimensionedScalar("XiEq", dimless, 0.0)
)
);
volScalarField& xieq = tXiEq();
volScalarField& xieq = tXiEq.ref();
forAll(xieq, celli)
{
@ -119,9 +119,11 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
}
}
volScalarField::Boundary& xieqBf = xieq.boundaryFieldRef();
forAll(xieq.boundaryField(), patchi)
{
scalarField& xieqp = xieq.boundaryField()[patchi];
scalarField& xieqp = xieqBf[patchi];
const scalarField& Kp = K.boundaryField()[patchi];
const scalarField& Map = Ma.boundaryField()[patchi];
const scalarField& upBySup = upBySu.boundaryField()[patchi];

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/
#include "XiEqModel.H"
#include "zeroGradientFvPatchFields.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -68,7 +67,7 @@ Foam::XiEqModel::~XiEqModel()
bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
{
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
XiEqModelCoeffs_ = XiEqProperties.optionalSubDict(type() + "Coeffs");
return true;
}
@ -111,40 +110,31 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
false
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0),
zeroGradientFvPatchVectorField::typeName
dimensionedScalar("zero", Nv.dimensions(), 0.0)
)
);
volScalarField& N = tN.ref();
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
volScalarField& N = tN();
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
tmp<volSymmTensorField> tns
volSymmTensorField ns
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
pTraits<symmTensor>::zero
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
);
volSymmTensorField& ns = tns();
ns.internalField() = nsv.internalField()*pow(mesh.V(), 2.0/3.0);
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
const volVectorField Uhat
(
@ -157,10 +147,10 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
const scalarField upLocal(uPrimeCoef*sqrt((U & CT & U)*cellWidth));
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
const scalarField deltaUp(upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0));
// Re use tN
N.internalField() = upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0);
N.primitiveFieldRef() = upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0);
return tN;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -44,15 +44,8 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn
(
"XiEqModel::New"
"("
" const psiuReactionThermo& thermo,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiEqModel type "
FatalErrorInFunction
<< "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -67,7 +67,7 @@ Foam::XiGModel::~XiGModel()
bool Foam::XiGModel::read(const dictionary& XiGProperties)
{
XiGModelCoeffs_ = XiGProperties.subDict(type() + "Coeffs");
XiGModelCoeffs_ = XiGProperties.optionalSubDict(type() + "Coeffs");
return true;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -44,15 +44,8 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn
(
"XiGModel::New"
"("
" const psiuReactionThermo& thermo,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiGModel type "
FatalErrorInFunction
<< "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -85,7 +85,7 @@ Foam::XiModel::~XiModel()
bool Foam::XiModel::read(const dictionary& XiProperties)
{
XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
return true;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,10 +47,8 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn
(
"XiModel::New"
) << "Unknown XiModel type "
FatalErrorInFunction
<< "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -116,7 +116,7 @@ public:
//- Correct the flame-wrinking Xi
virtual void correct()
{
notImplemented("transport::correct()");
NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme

View File

@ -1,4 +1,4 @@
tmp<fv::convectionScheme<scalar> > mvConvection
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(
@ -73,6 +73,8 @@ if (ign.ignited())
+ fvm::div(phiSt, b)
- fvm::Sp(fvc::div(phiSt), b)
- fvm::laplacian(Db, b)
==
betav*fvOptions(rho, b)
);
@ -82,8 +84,14 @@ if (ign.ignited())
// Solve for b
// ~~~~~~~~~~~
bEqn.relax();
fvOptions.constrain(bEqn);
bEqn.solve();
fvOptions.correct(b);
Info<< "min(b) = " << min(b).value() << endl;
if (composition.contains("ft"))

View File

@ -0,0 +1 @@
const volScalarField& psi = thermo.psi();

View File

@ -23,7 +23,6 @@ volScalarField rho
);
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
volScalarField& b = composition.Y("b");
Info<< "min(b) = " << min(b).value() << endl;
@ -49,7 +48,7 @@ mesh.setFluxRequired(p.name());
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence
(
compressible::RASModel::New
compressible::New<compressible::RASModel>
(
rho,
U,
@ -227,3 +226,5 @@ fields.add(b);
fields.add(thermo.he());
fields.add(thermo.heu());
flameWrinkling->addXi(fields);
#include "createMRF.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -80,7 +80,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
dict.lookup("fuelFile")
)
)()
).subDict(typeName + "Coeffs")
).optionalSubDict(typeName + "Coeffs")
),
LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
@ -172,7 +172,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
}
else
{
FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)")
FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
@ -210,7 +210,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
}
else
{
FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)")
FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
@ -259,16 +259,18 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
)
);
volScalarField& Su0 = tSu0();
volScalarField& Su0 = tSu0.ref();
forAll(Su0, celli)
{
Su0[celli] = Su0pTphi(p[celli], Tu[celli], phi);
}
forAll(Su0.boundaryField(), patchi)
volScalarField::Boundary& Su0Bf = Su0.boundaryFieldRef();
forAll(Su0Bf, patchi)
{
scalarField& Su0p = Su0.boundaryField()[patchi];
scalarField& Su0p = Su0Bf[patchi];
const scalarField& pp = p.boundaryField()[patchi];
const scalarField& Tup = Tu.boundaryField()[patchi];
@ -306,16 +308,18 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
)
);
volScalarField& Su0 = tSu0();
volScalarField& Su0 = tSu0.ref();
forAll(Su0, celli)
{
Su0[celli] = Su0pTphi(p[celli], Tu[celli], phi[celli]);
}
forAll(Su0.boundaryField(), patchi)
volScalarField::Boundary& Su0Bf = Su0.boundaryFieldRef();
forAll(Su0Bf, patchi)
{
scalarField& Su0p = Su0.boundaryField()[patchi];
scalarField& Su0p = Su0Bf[patchi];
const scalarField& pp = p.boundaryField()[patchi];
const scalarField& Tup = Tu.boundaryField()[patchi];
const scalarField& phip = phi.boundaryField()[patchi];
@ -358,16 +362,18 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
)
);
volScalarField& ma = tMa();
volScalarField& ma = tMa.ref();
forAll(ma, celli)
{
ma[celli] = Ma(phi[celli]);
}
forAll(ma.boundaryField(), patchi)
volScalarField::Boundary& maBf = ma.boundaryFieldRef();
forAll(maBf, patchi)
{
scalarField& map = ma.boundaryField()[patchi];
scalarField& map = maBf[patchi];
const scalarField& phip = phi.boundaryField()[patchi];
forAll(map, facei)

View File

@ -1,9 +1,7 @@
rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = invA & UEqn.H();
volVectorField HbyA(constrainHbyA(invA & UEqn.H(), U, p));
if (pimple.transonic())
{
@ -12,7 +10,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
/fvc::interpolate(rho)
)
@ -25,6 +23,8 @@ if (pimple.transonic())
betav*fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rho*invA, p)
==
betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@ -41,7 +41,7 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
)
);
@ -53,6 +53,8 @@ else
betav*fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rho*invA, p)
==
betav*fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
@ -69,6 +71,7 @@ else
U = HbyA - (invA & (betav*fvc::grad(p)));
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
if (thermo.dpdt())

View File

@ -1,8 +1,4 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude\
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -10,13 +6,12 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
@ -24,4 +19,8 @@ EXE_LIBS = \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels
-llaminarFlameSpeedModels \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools

View File

@ -6,8 +6,7 @@
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U)
==
rho*g
+ fvOptions(rho, U)
fvOptions(rho, U)
);
UEqn.relax();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -56,36 +56,36 @@ Description
#include "ignition.H"
#include "Switch.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"

View File

@ -0,0 +1 @@
const volScalarField& psi = thermo.psi();

View File

@ -23,7 +23,6 @@ volScalarField rho
);
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
volScalarField& b = composition.Y("b");
Info<< "min(b) = " << min(b).value() << endl;
@ -139,3 +138,5 @@ if (composition.contains("ft"))
fields.add(b);
fields.add(thermo.he());
fields.add(thermo.heu());
#include "createMRF.H"

View File

@ -1,4 +1,4 @@
tmp<fv::convectionScheme<scalar> > mvConvection
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(

View File

@ -2,9 +2,7 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.transonic())
{
@ -13,7 +11,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
@ -45,13 +43,16 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -1,26 +1,14 @@
EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude\
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lreactionThermophysicalModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lchemistryModel \
-lODE \
-lthermophysicalFunctions \
-lspecie \
-lfiniteVolume \
-lmeshTools

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,17 +25,14 @@ Application
chemFoam
Description
Solver for chemistry problems
- designed for use on single cell cases to provide comparison against
other chemistry solvers
- single cell mesh created on-the-fly
- fields created on the fly from the initial conditions
Solver for chemistry problems, designed for use on single cell cases to
provide comparison against other chemistry solvers, that uses a single cell
mesh, and fields created from the initial conditions.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "psiReactionThermo.H"
#include "turbulentFluidThermoModel.H"
#include "psiChemistryModel.H"
#include "chemistrySolver.H"
#include "OFstream.H"
@ -49,10 +46,15 @@ int main(int argc, char *argv[])
{
argList::noParallel();
#define CREATE_MESH createSingleCellMesh.H
#define NO_CONTROL
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createSingleCellMesh.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "readInitialConditions.H"
#include "createControls.H"

View File

@ -54,4 +54,3 @@ Info<< "Creating base fields for time " << runTime.timeName() << endl;
T.write();
}

View File

@ -1,8 +1,2 @@
if (runTime.controlDict().lookupOrDefault("suppressSolverInfo", false))
{
lduMatrix::debug = 0;
}
Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));

View File

@ -0,0 +1,4 @@
scalar dtChem = refCast<const psiChemistryModel>(chemistry).deltaTChem()[0];
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
volScalarField& p = thermo.p();

View File

@ -1,6 +1,6 @@
if (mesh.nCells() != 1)
{
FatalErrorIn(args.executable())
FatalErrorInFunction
<< "Solver only applicable to single cell cases"
<< exit(FatalError);
}
@ -12,7 +12,7 @@
(
"initialConditions",
runTime.constant(),
runTime,
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
@ -27,36 +27,30 @@
autoPtr<psiChemistryModel> pChemistry(psiChemistryModel::New(mesh));
psiChemistryModel& chemistry = pChemistry();
scalar dtChem = refCast<const psiChemistryModel>(chemistry).deltaTChem()[0];
psiReactionThermo& thermo = chemistry.thermo();
thermo.validate(args.executable(), "h");
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
runTime,
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
thermo.rho()
);
volScalarField& p = thermo.p();
volScalarField Rspecific
(
IOobject
(
"Rspecific",
runTime.timeName(),
runTime,
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
@ -75,31 +69,16 @@
(
"U",
runTime.timeName(),
runTime,
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedVector("zero", dimVelocity, vector::zero),
p.boundaryField().types()
dimensionedVector("zero", dimVelocity, Zero)
);
#include "createPhi.H"
Info << "Creating turbulence model.\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo
)
);
OFstream post(args.path()/"chemFoam.out");
post<< "# Time" << token::TAB << "Temperature [K]" << token::TAB
<< "Pressure [Pa]" << endl;

View File

@ -25,7 +25,7 @@ fvMesh mesh
runTime,
IOobject::READ_IF_PRESENT
),
xferMove<Field<vector> >(points),
xferMove<Field<vector>>(points),
faces.xfer(),
owner.xfer(),
neighbour.xfer()

View File

@ -1,6 +1,6 @@
runTime.write();
Info<< "Sh = " << Sh
Info<< "Qdot = " << Qdot
<< ", T = " << thermo.T()[0]
<< ", p = " << thermo.p()[0]
<< ", " << Y[0].name() << " = " << Y[0][0]
@ -8,4 +8,3 @@
post<< runTime.value() << token::TAB << thermo.T()[0] << token::TAB
<< thermo.p()[0] << endl;

View File

@ -3,4 +3,3 @@ if (adjustTimeStep)
runTime.setDeltaT(min(dtChem, maxDeltaT));
Info<< "deltaT = " << runTime.deltaT().value() << endl;
}

View File

@ -1,3 +1,3 @@
dtChem = chemistry.solve(runTime.deltaT().value());
scalar Sh = chemistry.Sh()()[0]/rho[0];
integratedHeat += Sh*runTime.deltaT().value();
dtChem = chemistry.solve(runTime.deltaT().value());
scalar Qdot = chemistry.Qdot()()[0]/rho[0];
integratedHeat += Qdot*runTime.deltaT().value();

View File

@ -1,4 +1,5 @@
EXE_INC = \
-I. \
-I../engineFoam \
-I../XiFoam \
-I../../compressible/rhoPimpleFoam \
@ -12,7 +13,6 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude
EXE_LIBS = \
-lengine \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -35,22 +35,23 @@ Description
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "OFstream.H"
#include "fvIOoptionList.H"
#include "fvOptions.H"
#include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#define CREATE_TIME createEngineTime.H
#define CREATE_MESH createEngineMesh.H
#include "postProcess.H"
#include "setRootCase.H"
#include "createEngineTime.H"
#include "createEngineMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "createRhoUf.H"
#include "initContinuityErrs.H"
@ -59,6 +60,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;

View File

@ -0,0 +1,2 @@
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();

View File

@ -1,71 +1,70 @@
Info<< "Reading thermophysical properties\n" << endl;
Info<< "Reading thermophysical properties\n" << endl;
autoPtr<psiThermo> pThermo
autoPtr<psiThermo> pThermo
(
psiThermo::New(mesh)
);
psiThermo& thermo = pThermo();
thermo.validate(args.executable(), "h", "e");
volScalarField rho
(
IOobject
(
psiThermo::New(mesh)
);
psiThermo& thermo = pThermo();
thermo.validate(args.executable(), "h", "e");
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
thermo.rho()
);
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
Info<< "\nReading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
#include "compressibleCreatePhi.H"
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo
)
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
"rho",
runTime.timeName(),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
thermo.rho()
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
volScalarField& p = thermo.p();
Info<< "\nReading field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
#include "compressibleCreatePhi.H"
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::turbulenceModel::New
(
rho,
U,
phi,
thermo
)
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
#include "createMRF.H"

View File

@ -1,7 +1,6 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/XiFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -59,22 +59,23 @@ Description
#include "OFstream.H"
#include "mathematicalConstants.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#define CREATE_TIME createEngineTime.H
#define CREATE_MESH createEngineMesh.H
#include "postProcess.H"
#include "setRootCase.H"
#include "createEngineTime.H"
#include "createEngineMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "createRhoUf.H"
#include "initContinuityErrs.H"
@ -83,6 +84,8 @@ int main(int argc, char *argv[])
#include "setInitialDeltaT.H"
#include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;

View File

@ -2,9 +2,7 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.transonic())
{
@ -14,7 +12,7 @@ if (pimple.transonic())
fvc::interpolate(psi)
*(
(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho)
)
)
@ -29,7 +27,7 @@ if (pimple.transonic())
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@ -48,7 +46,7 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, rhoUf)
)
);
@ -56,13 +54,16 @@ else
fvc::makeRelative(phiHbyA, rho, U);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);

View File

@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I${LIB_SRC}/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
@ -14,15 +13,11 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidChemistryModel/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/combustionModels/lnInclude \
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/regionModels/pyrolysisModels/lnInclude \
@ -30,7 +25,6 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
@ -41,9 +35,6 @@ EXE_LIBS = \
-lspecie \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lsolidProperties \
-lsolidMixtureProperties \
-lthermophysicalFunctions \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \

View File

@ -1,4 +1,4 @@
tmp<fv::convectionScheme<scalar> > mvConvection
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(
@ -11,13 +11,12 @@ tmp<fv::convectionScheme<scalar> > mvConvection
{
radiation->correct();
combustion->correct();
dQ = combustion->dQ();
label inertIndex = -1;
Qdot = combustion->Qdot();
volScalarField Yt(0.0*Y[0]);
forAll(Y, i)
{
if (Y[i].name() != inertSpecie)
if (i != inertIndex && composition.active(i))
{
volScalarField& Yi = Y[i];
@ -44,10 +43,6 @@ tmp<fv::convectionScheme<scalar> > mvConvection
Yi.max(0.0);
Yt += Yi;
}
else
{
inertIndex = i;
}
}
Y[inertIndex] = scalar(1) - Yt;
@ -71,8 +66,8 @@ tmp<fv::convectionScheme<scalar> > mvConvection
)
- fvm::laplacian(turbulence->alphaEff(), he)
==
combustion->Sh()
+ radiation->Sh(thermo)
Qdot
+ radiation->Sh(thermo, he)
+ parcels.Sh(he)
+ surfaceFilm.Sh()
+ fvOptions(rho, he)

View File

@ -0,0 +1,4 @@
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
filmModelType& surfaceFilm = tsurfaceFilm();
const label inertIndex(composition.species()[inertSpecie]);

View File

@ -19,6 +19,13 @@ basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.species().found(inertSpecie))
{
FatalIOErrorIn(args.executable().c_str(), thermo)
<< "Inert specie " << inertSpecie << " not found in available species "
<< composition.species()
<< exit(FatalIOError);
}
Info<< "Creating field rho\n" << endl;
volScalarField rho
@ -35,8 +42,6 @@ volScalarField rho
);
volScalarField& p = thermo.p();
const volScalarField& T = thermo.T();
const volScalarField& psi = thermo.psi();
Info<< "\nReading field U\n" << endl;
volVectorField U
@ -54,6 +59,9 @@ volVectorField U
#include "compressibleCreatePhi.H"
#include "createMRF.H"
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence
(
@ -69,42 +77,11 @@ autoPtr<compressible::turbulenceModel> turbulence
// Set the turbulence into the combustion model
combustion->setTurbulence(turbulence());
volScalarField dQ
(
IOobject
(
"dQ",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
#include "readGravitationalAcceleration.H"
#include "readhRef.H"
#include "gh.H"
#include "readpRef.H"
volScalarField p_rgh
(
@ -119,11 +96,11 @@ volScalarField p_rgh
mesh
);
// Force p_rgh to be consistent with p
p_rgh = p - rho*gh;
mesh.setFluxRequired(p_rgh.name());
#include "phrghEqn.H"
multivariateSurfaceInterpolationScheme<scalar>::fieldTable fields;
forAll(Y, i)
@ -148,3 +125,44 @@ Switch solvePrimaryRegion
(
additionalControlsDict.lookup("solvePrimaryRegion")
);
Switch solvePyrolysisRegion
(
additionalControlsDict.lookupOrDefault<bool>("solvePyrolysisRegion", true)
);
volScalarField Qdot
(
IOobject
(
"Qdot",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
#include "createClouds.H"
#include "createSurfaceFilmModel.H"
#include "createPyrolysisModel.H"
#include "createRadiationModel.H"

View File

@ -3,4 +3,3 @@ Info<< "\nConstructing surface film model" << endl;
typedef regionModels::surfaceFilmModels::surfaceFilmModel filmModelType;
autoPtr<filmModelType> tsurfaceFilm(filmModelType::New(mesh, g));
filmModelType& surfaceFilm = tsurfaceFilm();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,8 +25,8 @@ Application
fireFoam
Description
Transient PIMPLE solver for Fires and turbulent diffusion flames with
reacting Lagrangian parcels, surface film and pyrolysis modelling.
Transient solver for fires and turbulent diffusion flames with reacting
particle clouds, surface film and pyrolysis modelling.
\*---------------------------------------------------------------------------*/
@ -40,40 +40,36 @@ Description
#include "solidChemistryModel.H"
#include "psiCombustionModel.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "createClouds.H"
#include "createSurfaceFilmModel.H"
#include "createPyrolysisModel.H"
#include "createRadiationModel.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
#include "readPyrolysisTimeControls.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "solidRegionDiffusionNo.H"
#include "setMultiRegionDeltaT.H"
@ -87,7 +83,10 @@ int main(int argc, char *argv[])
surfaceFilm.evolve();
pyrolysis.evolve();
if(solvePyrolysisRegion)
{
pyrolysis.evolve();
}
if (solvePrimaryRegion)
{

View File

@ -2,17 +2,15 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phig("phig", -rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
@ -20,24 +18,17 @@ surfaceScalarField phiHbyA
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix p_rghEqn
(
fvc::ddt(psi, rho)*gh
fvm::ddt(psi, p_rgh)
+ fvc::ddt(psi, rho)*gh
+ fvc::ddt(psi)*pRef
+ fvc::div(phiHbyA)
+ fvm::ddt(psi, p_rgh)
- fvm::laplacian(rhorAUf, p_rgh)
==
parcels.Srho()
@ -56,7 +47,7 @@ while (pimple.correctNonOrthogonal())
}
}
p = p_rgh + rho*gh;
p = p_rgh + rho*gh + pRef;
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"

View File

@ -0,0 +1,62 @@
if (pimple.dict().lookupOrDefault<bool>("hydrostaticInitialization", false))
{
volScalarField& ph_rgh = regIOobject::store
(
new volScalarField
(
IOobject
(
"ph_rgh",
"0",
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
),
mesh
)
);
if (equal(runTime.value(), 0))
{
p = ph_rgh + rho*gh + pRef;
thermo.correct();
rho = thermo.rho();
label nCorr
(
pimple.dict().lookupOrDefault<label>("nHydrostaticCorrectors", 5)
);
for (label i=0; i<nCorr; i++)
{
surfaceScalarField rhof("rhof", fvc::interpolate(rho));
surfaceScalarField phig
(
"phig",
-rhof*ghf*fvc::snGrad(rho)*mesh.magSf()
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(ph_rgh, rho, U, phig, rhof);
fvScalarMatrix ph_rghEqn
(
fvm::laplacian(rhof, ph_rgh) == fvc::div(phig)
);
ph_rghEqn.solve();
p = ph_rgh + rho*gh + pRef;
thermo.correct();
rho = thermo.rho();
Info<< "Hydrostatic pressure variation "
<< (max(ph_rgh) - min(ph_rgh)).value() << endl;
}
ph_rgh.write();
p_rgh = ph_rgh;
}
}

View File

@ -17,8 +17,7 @@
)
- fvm::laplacian(turbulence->alphaEff(), he)
==
rho*(U&g)
+ reaction->Sh()
Qdot
+ fvOptions(rho, he)
);

View File

@ -1,6 +1,5 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -1,23 +1,25 @@
MRF.correctBoundaryVelocity(U);
// Solve the Momentum equation
fvVectorMatrix UEqn
(
fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U)
==
rho*g
+ fvOptions(rho, U)
);
MRF.correctBoundaryVelocity(U);
UEqn.relax();
tmp<fvVectorMatrix> tUEqn
(
fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U)
+ turbulence->divDevRhoReff(U)
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
fvOptions.constrain(UEqn);
UEqn.relax();
if (pimple.momentumPredictor())
{
solve(UEqn == -fvc::grad(p));
fvOptions.constrain(UEqn);
fvOptions.correct(U);
K = 0.5*magSqr(U);
}
if (pimple.momentumPredictor())
{
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
K = 0.5*magSqr(U);
}

View File

@ -1,4 +1,4 @@
tmp<fv::convectionScheme<scalar> > mvConvection
tmp<fv::convectionScheme<scalar>> mvConvection
(
fv::convectionScheme<scalar>::New
(
@ -11,13 +11,12 @@ tmp<fv::convectionScheme<scalar> > mvConvection
{
reaction->correct();
dQ = reaction->dQ();
label inertIndex = -1;
Qdot = reaction->Qdot();
volScalarField Yt(0.0*Y[0]);
forAll(Y, i)
{
if (Y[i].name() != inertSpecie)
if (i != inertIndex && composition.active(i))
{
volScalarField& Yi = Y[i];
@ -42,10 +41,6 @@ tmp<fv::convectionScheme<scalar> > mvConvection
Yi.max(0.0);
Yt += Yi;
}
else
{
inertIndex = i;
}
}
Y[inertIndex] = scalar(1) - Yt;

View File

@ -0,0 +1,3 @@
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
const label inertIndex(composition.species()[inertSpecie]);

View File

@ -1,3 +1,5 @@
#include "createRDeltaT.H"
Info<< "Creating reaction model\n" << endl;
autoPtr<combustionModels::psiCombustionModel> reaction
@ -11,7 +13,14 @@ thermo.validate(args.executable(), "h", "e");
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
word inertSpecie(thermo.lookup("inertSpecie"));
const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.species().found(inertSpecie))
{
FatalIOErrorIn(args.executable().c_str(), thermo)
<< "Inert specie " << inertSpecie << " not found in available species "
<< composition.species()
<< exit(FatalIOError);
}
volScalarField rho
(
@ -40,11 +49,11 @@ volVectorField U
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
#include "compressibleCreatePhi.H"
pressureControl pressureControl(p, rho, pimple.dict(), false);
mesh.setFluxRequired(p.name());
Info << "Creating turbulence model.\n" << nl;
@ -88,16 +97,18 @@ forAll(Y, i)
}
fields.add(thermo.he());
volScalarField dQ
volScalarField Qdot
(
IOobject
(
"dQ",
"Qdot",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
);
#include "createMRF.H"

View File

@ -2,9 +2,12 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
if (pimple.nCorrPISO() <= 1)
{
tUEqn.clear();
}
if (pimple.transonic())
{
@ -13,7 +16,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
@ -26,7 +29,7 @@ if (pimple.transonic())
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@ -45,20 +48,23 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@ -75,11 +81,20 @@ else
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
// Explicitly relax pressure for momentum corrector
p.relax();
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
if (pressureControl.limit(p))
{
p.correctBoundaryConditions();
rho = thermo.rho();
}
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);

View File

@ -0,0 +1,118 @@
rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
tUEqn.clear();
}
if (pimple.transonic())
{
surfaceScalarField phid
(
"phid",
fvc::interpolate(psi)
*(
fvc::flux(HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
/fvc::interpolate(rho)
)
);
MRF.makeRelative(fvc::interpolate(psi), phid);
surfaceScalarField phic
(
"phic",
fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf()
);
HbyA -= (rAU - rAtU)*fvc::grad(p);
volScalarField rhorAtU("rhorAtU", rho*rAtU);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
+ fvc::div(phic)
- fvm::laplacian(rhorAtU, p)
==
fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
phi == phic + pEqn.flux();
}
}
}
else
{
surfaceScalarField phiHbyA
(
"phiHbyA",
(
fvc::flux(rho*HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
phiHbyA += fvc::interpolate(rho*(rAtU - rAU))*fvc::snGrad(p)*mesh.magSf();
HbyA -= (rAU - rAtU)*fvc::grad(p);
volScalarField rhorAtU("rhorAtU", rho*rAtU);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvc::div(phiHbyA)
- fvm::laplacian(rhorAtU, p)
==
fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
phi = phiHbyA + pEqn.flux();
}
}
}
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
// Explicitly relax pressure for momentum corrector
p.relax();
U = HbyA - rAtU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
if (pressureControl.limit(p))
{
p.correctBoundaryConditions();
rho = thermo.rho();
}
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -34,7 +34,8 @@ Description
#include "psiCombustionModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "pressureControl.H"
#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@ -42,20 +43,20 @@ Description
int main(int argc, char *argv[])
{
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "createTimeControls.H"
#include "createRDeltaT.H"
#include "initContinuityErrs.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
turbulence->validate();
if (!LTS)
{
#include "compressibleCourantNo.H"
@ -95,7 +96,14 @@ int main(int argc, char *argv[])
// --- Pressure corrector loop
while (pimple.correct())
{
#include "pEqn.H"
if (pimple.consistent())
{
#include "pcEqn.H"
}
else
{
#include "pEqn.H"
}
}
if (pimple.turbCorr())
@ -104,6 +112,8 @@ int main(int argc, char *argv[])
}
}
rho = thermo.rho();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"

View File

@ -1,7 +1,7 @@
EXE_INC = \
-I. \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -0,0 +1,3 @@
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
const label inertIndex(composition.species()[inertSpecie]);

View File

@ -1,3 +1,5 @@
#include "createRDeltaT.H"
Info<< "Creating reaction model\n" << endl;
autoPtr<combustionModels::rhoCombustionModel> reaction
@ -11,7 +13,14 @@ thermo.validate(args.executable(), "h", "e");
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
word inertSpecie(thermo.lookup("inertSpecie"));
const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.species().found(inertSpecie))
{
FatalIOErrorIn(args.executable().c_str(), thermo)
<< "Inert specie " << inertSpecie << " not found in available species "
<< composition.species()
<< exit(FatalIOError);
}
volScalarField rho
(
@ -40,8 +49,6 @@ volVectorField U
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
#include "compressibleCreatePhi.H"
@ -110,16 +117,18 @@ forAll(Y, i)
}
fields.add(thermo.he());
volScalarField dQ
volScalarField Qdot
(
IOobject
(
"dQ",
"Qdot",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
);
#include "createMRF.H"

View File

@ -1,86 +1,74 @@
rho = thermo.rho();
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution
const volScalarField psip0(psi*p);
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
fvScalarMatrix p_rghDDtEqn
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ fvc::div(phiHbyA)
==
fvOptions(psi, p_rgh, rho.name())
);
while (pimple.correctNonOrthogonal())
{
rho = thermo.rho();
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution - done in 2 parts. Part 1:
thermo.rho() -= psi*p;
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
fvScalarMatrix p_rghEqn
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
p_rghDDtEqn
- fvm::laplacian(rhorAUf, p_rgh)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
fvScalarMatrix p_rghDDtEqn
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ fvc::div(phiHbyA)
==
fvOptions(psi, p_rgh, rho.name())
);
while (pimple.correctNonOrthogonal())
if (pimple.finalNonOrthogonalIter())
{
fvScalarMatrix p_rghEqn
(
p_rghDDtEqn
- fvm::laplacian(rhorAUf, p_rgh)
);
// Calculate the conservative fluxes
phi = phiHbyA + p_rghEqn.flux();
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
// Explicitly relax pressure for momentum corrector
p_rgh.relax();
if (pimple.finalNonOrthogonalIter())
{
// Calculate the conservative fluxes
phi = phiHbyA + p_rghEqn.flux();
// Explicitly relax pressure for momentum corrector
p_rgh.relax();
// Correct the momentum source with the pressure gradient flux
// calculated from the relaxed pressure
U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rhorAUf);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
}
// Correct the momentum source with the pressure gradient flux
// calculated from the relaxed pressure
U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rhorAUf);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
}
p = p_rgh + rho*gh;
// Second part of thermodynamic density update
thermo.rho() += psi*p;
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);
}
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
}
p = p_rgh + rho*gh;
// Thermodynamic density update
thermo.correctRho(psi*p - psip0);
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);
}
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,8 +25,8 @@ Application
rhoReactingBuoyantFoam
Description
Solver for combustion with chemical reactions using density based
thermodynamics package, using enahanced buoyancy treatment.
Solver for combustion with chemical reactions using a density based
thermodynamics package with enhanced buoyancy treatment.
\*---------------------------------------------------------------------------*/
@ -35,8 +35,7 @@ Description
#include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@ -44,19 +43,20 @@ Description
int main(int argc, char *argv[])
{
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "createTimeControls.H"
#include "createRDeltaT.H"
#include "initContinuityErrs.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
turbulence->validate();
if (!LTS)
{
#include "compressibleCourantNo.H"

View File

@ -1,7 +1,7 @@
EXE_INC = \
-I. \
-I$(FOAM_SOLVERS)/combustion/reactingFoam \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \

View File

@ -0,0 +1,3 @@
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
const label inertIndex(composition.species()[inertSpecie]);

View File

@ -1,3 +1,5 @@
#include "createRDeltaT.H"
Info<< "Creating reaction model\n" << endl;
autoPtr<combustionModels::rhoCombustionModel> reaction
@ -11,7 +13,14 @@ thermo.validate(args.executable(), "h", "e");
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
word inertSpecie(thermo.lookup("inertSpecie"));
const word inertSpecie(thermo.lookup("inertSpecie"));
if (!composition.species().found(inertSpecie))
{
FatalIOErrorIn(args.executable().c_str(), thermo)
<< "Inert specie " << inertSpecie << " not found in available species "
<< composition.species()
<< exit(FatalIOError);
}
volScalarField rho
(
@ -40,11 +49,11 @@ volVectorField U
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
const volScalarField& T = thermo.T();
#include "compressibleCreatePhi.H"
pressureControl pressureControl(p, rho, pimple.dict(), false);
mesh.setFluxRequired(p.name());
@ -89,16 +98,18 @@ forAll(Y, i)
}
fields.add(thermo.he());
volScalarField dQ
volScalarField Qdot
(
IOobject
(
"dQ",
"Qdot",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar("dQ", dimEnergy/dimTime, 0.0)
dimensionedScalar("Qdot", dimEnergy/dimVolume/dimTime, 0.0)
);
#include "createMRF.H"

View File

@ -1,108 +0,0 @@
{
rho = thermo.rho();
// Thermodynamic density needs to be updated by psi*d(p) after the
// pressure solution - done in 2 parts. Part 1:
thermo.rho() -= psi*p;
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
if (pimple.transonic())
{
surfaceScalarField phiHbyA
(
"phiHbyA",
(
(fvc::interpolate(HbyA) & mesh.Sf())
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
MRF.makeRelative(phiHbyA);
surfaceScalarField phid("phid", fvc::interpolate(thermo.psi())*phiHbyA);
phiHbyA *= fvc::interpolate(rho);
fvScalarMatrix pDDtEqn
(
fvc::ddt(rho) + fvc::div(phiHbyA)
+ correction(psi*fvm::ddt(p) + fvm::div(phid, p))
);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
pDDtEqn
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
phi = phiHbyA + pEqn.flux();
}
}
}
else
{
surfaceScalarField phiHbyA
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
fvScalarMatrix pDDtEqn
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p))
+ fvc::div(phiHbyA)
==
fvOptions(psi, p, rho.name())
);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
pDDtEqn
- fvm::laplacian(rhorAUf, p)
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
phi = phiHbyA + pEqn.flux();
}
}
}
// Second part of thermodynamic density update
thermo.rho() += psi*p;
#include "rhoEqn.H"
#include "compressibleContinuityErrs.H"
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
if (thermo.dpdt())
{
dpdt = fvc::ddt(p);
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -35,7 +35,8 @@ Description
#include "turbulentFluidThermoModel.H"
#include "multivariateScheme.H"
#include "pimpleControl.H"
#include "fvIOoptionList.H"
#include "pressureControl.H"
#include "fvOptions.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"
@ -43,20 +44,20 @@ Description
int main(int argc, char *argv[])
{
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "createTimeControls.H"
#include "createRDeltaT.H"
#include "initContinuityErrs.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
turbulence->validate();
if (!LTS)
{
#include "compressibleCourantNo.H"
@ -97,7 +98,14 @@ int main(int argc, char *argv[])
// --- Pressure corrector loop
while (pimple.correct())
{
#include "pEqn.H"
if (pimple.consistent())
{
#include "../../../compressible/rhoPimpleFoam/pcEqn.H"
}
else
{
#include "../../../compressible/rhoPimpleFoam/pEqn.H"
}
}
if (pimple.turbCorr())

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
{
volScalarField& rDeltaT = trDeltaT();
volScalarField& rDeltaT = trDeltaT.ref();
const dictionary& pimpleDict = pimple.dict();
@ -43,13 +43,16 @@ License
// Damping coefficient (1-0)
scalar rDeltaTDampingCoeff
(
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1)
pimpleDict.lookupOrDefault<scalar>("rDeltaTDampingCoeff", 1.0)
);
// Maximum change in cell temperature per iteration
// (relative to previous value)
scalar alphaTemp(pimpleDict.lookupOrDefault("alphaTemp", 0.05));
// Maximum change in cell concentration per iteration
// (relative to reference value)
scalar alphaY(pimpleDict.lookupOrDefault("alphaY", 1.0));
Info<< "Time scales min/max:" << endl;
@ -58,44 +61,99 @@ License
// Flow time scale
{
rDeltaT.dimensionedInternalField() =
rDeltaT.ref() =
(
fvc::surfaceSum(mag(phi))().dimensionedInternalField()
/((2*maxCo)*mesh.V()*rho.dimensionedInternalField())
fvc::surfaceSum(mag(phi))()()
/((2*maxCo)*mesh.V()*rho())
);
// Limit the largest time scale
rDeltaT.max(1/maxDeltaT);
Info<< " Flow = "
<< gMin(1/rDeltaT.internalField()) << ", "
<< gMax(1/rDeltaT.internalField()) << endl;
<< 1/gMax(rDeltaT.primitiveField()) << ", "
<< 1/gMin(rDeltaT.primitiveField()) << endl;
}
// Reaction source time scale
if (alphaTemp < 1.0)
// Heat release rate time scale
if (alphaTemp < 1)
{
volScalarField::DimensionedInternalField rDeltaTT
volScalarField::Internal rDeltaTT
(
mag(reaction->Sh())/(alphaTemp*rho*thermo.Cp()*T)
mag(Qdot)/(alphaTemp*rho*thermo.Cp()*T)
);
Info<< " Temperature = "
<< gMin(1/(rDeltaTT.field() + VSMALL)) << ", "
<< gMax(1/(rDeltaTT.field() + VSMALL)) << endl;
<< 1/(gMax(rDeltaTT.field()) + VSMALL) << ", "
<< 1/(gMin(rDeltaTT.field()) + VSMALL) << endl;
rDeltaT.dimensionedInternalField() = max
rDeltaT.ref() = max(rDeltaT(), rDeltaTT);
}
// Reaction rate time scale
if (alphaY < 1)
{
dictionary Yref(pimpleDict.subDict("Yref"));
volScalarField::Internal rDeltaTY
(
rDeltaT.dimensionedInternalField(),
rDeltaTT
IOobject
(
"rDeltaTY",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("rDeltaTY", rDeltaT.dimensions(), 0)
);
bool foundY = false;
forAll(Y, i)
{
if (i != inertIndex && composition.active(i))
{
volScalarField& Yi = Y[i];
if (Yref.found(Yi.name()))
{
foundY = true;
scalar Yrefi = readScalar(Yref.lookup(Yi.name()));
rDeltaTY.field() = max
(
mag
(
reaction->R(Yi)().source()
/((Yrefi*alphaY)*(rho*mesh.V()))
),
rDeltaTY
);
}
}
}
if (foundY)
{
Info<< " Composition = "
<< 1/(gMax(rDeltaTY.field()) + VSMALL) << ", "
<< 1/(gMin(rDeltaTY.field()) + VSMALL) << endl;
rDeltaT.ref() = max(rDeltaT(), rDeltaTY);
}
else
{
IOWarningIn(args.executable().c_str(), Yref)
<< "Cannot find any active species in Yref " << Yref
<< endl;
}
}
// Update tho boundary values of the reciprocal time-step
rDeltaT.correctBoundaryConditions();
// Spatially smooth the time scale field
if (rDeltaTSmoothingCoeff < 1.0)
if (rDeltaTSmoothingCoeff < 1)
{
fvc::smooth(rDeltaT, rDeltaTSmoothingCoeff);
}
@ -105,20 +163,23 @@ License
// - only increase at a fraction of old time scale
if
(
rDeltaTDampingCoeff < 1.0
rDeltaTDampingCoeff < 1
&& runTime.timeIndex() > runTime.startTimeIndex() + 1
)
{
rDeltaT = max
(
rDeltaT,
(scalar(1.0) - rDeltaTDampingCoeff)*rDeltaT0
(scalar(1) - rDeltaTDampingCoeff)*rDeltaT0
);
}
// Update tho boundary values of the reciprocal time-step
rDeltaT.correctBoundaryConditions();
Info<< " Overall = "
<< gMin(1/rDeltaT.internalField())
<< ", " << gMax(1/rDeltaT.internalField()) << endl;
<< 1/gMax(rDeltaT.primitiveField())
<< ", " << 1/gMin(rDeltaT.primitiveField()) << endl;
}

View File

@ -1,9 +1,8 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
set -x
wclean libso BCs
wclean
wclean rhoCentralDyMFoam
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -1,7 +1,9 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
set -x
(wmake libso BCs && wmake && wmake rhoCentralDyMFoam)
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
# ----------------------------------------------------------------- end-of-file
(wmake $targetType BCs && wmake $targetType && wmake $targetType rhoCentralDyMFoam)
#------------------------------------------------------------------------------

View File

@ -94,15 +94,8 @@ Foam::smoluchowskiJumpTFvPatchScalarField::smoluchowskiJumpTFvPatchScalarField
|| mag(accommodationCoeff_) > 2.0
)
{
FatalIOErrorIn
FatalIOErrorInFunction
(
"smoluchowskiJumpTFvPatchScalarField::"
"smoluchowskiJumpTFvPatchScalarField"
"("
" const fvPatch&,"
" const DimensionedField<scalar, volMesh>&,"
" const dictionary&"
")",
dict
) << "unphysical accommodationCoeff specified"
<< "(0 < accommodationCoeff <= 1)" << endl

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -96,14 +96,8 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
|| mag(accommodationCoeff_) > 2.0
)
{
FatalIOErrorIn
FatalIOErrorInFunction
(
"maxwellSlipUFvPatchScalarField::maxwellSlipUFvPatchScalarField"
"("
"const fvPatch&, "
"const DimensionedField<vector, volMesh>&, "
"const dictionary&"
")",
dict
) << "unphysical accommodationCoeff_ specified"
<< "(0 < accommodationCoeff_ <= 1)" << endl
@ -126,7 +120,7 @@ Foam::maxwellSlipUFvPatchVectorField::maxwellSlipUFvPatchVectorField
else
{
this->refValue() = *this;
this->valueFraction() = scalar(1.0);
this->valueFraction() = scalar(1);
}
}
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -26,15 +26,10 @@ License
#include "mixedFixedValueSlipFvPatchField.H"
#include "symmTransformField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
template<class Type>
mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
Foam::mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF
@ -47,7 +42,21 @@ mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
template<class Type>
mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
Foam::mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF,
const dictionary& dict
)
:
transformFvPatchField<Type>(p, iF),
refValue_("refValue", dict, p.size()),
valueFraction_("valueFraction", dict, p.size())
{}
template<class Type>
Foam::mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const mixedFixedValueSlipFvPatchField<Type>& ptf,
const fvPatch& p,
@ -62,21 +71,7 @@ mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
template<class Type>
mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const fvPatch& p,
const DimensionedField<Type, volMesh>& iF,
const dictionary& dict
)
:
transformFvPatchField<Type>(p, iF),
refValue_("refValue", dict, p.size()),
valueFraction_("valueFraction", dict, p.size())
{}
template<class Type>
mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
Foam::mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const mixedFixedValueSlipFvPatchField<Type>& ptf
)
@ -86,8 +81,9 @@ mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
valueFraction_(ptf.valueFraction_)
{}
template<class Type>
mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
Foam::mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
(
const mixedFixedValueSlipFvPatchField<Type>& ptf,
const DimensionedField<Type, volMesh>& iF
@ -101,9 +97,8 @@ mixedFixedValueSlipFvPatchField<Type>::mixedFixedValueSlipFvPatchField
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
// Map from self
template<class Type>
void mixedFixedValueSlipFvPatchField<Type>::autoMap
void Foam::mixedFixedValueSlipFvPatchField<Type>::autoMap
(
const fvPatchFieldMapper& m
)
@ -114,9 +109,8 @@ void mixedFixedValueSlipFvPatchField<Type>::autoMap
}
// Reverse-map the given fvPatchField onto this fvPatchField
template<class Type>
void mixedFixedValueSlipFvPatchField<Type>::rmap
void Foam::mixedFixedValueSlipFvPatchField<Type>::rmap
(
const fvPatchField<Type>& ptf,
const labelList& addr
@ -125,16 +119,16 @@ void mixedFixedValueSlipFvPatchField<Type>::rmap
transformFvPatchField<Type>::rmap(ptf, addr);
const mixedFixedValueSlipFvPatchField<Type>& dmptf =
refCast<const mixedFixedValueSlipFvPatchField<Type> >(ptf);
refCast<const mixedFixedValueSlipFvPatchField<Type>>(ptf);
refValue_.rmap(dmptf.refValue_, addr);
valueFraction_.rmap(dmptf.valueFraction_, addr);
}
// Return gradient at boundary
template<class Type>
tmp<Field<Type> > mixedFixedValueSlipFvPatchField<Type>::snGrad() const
Foam::tmp<Foam::Field<Type>>
Foam::mixedFixedValueSlipFvPatchField<Type>::snGrad() const
{
tmp<vectorField> nHat = this->patch().nf();
Field<Type> pif(this->patchInternalField());
@ -147,9 +141,11 @@ tmp<Field<Type> > mixedFixedValueSlipFvPatchField<Type>::snGrad() const
}
// Evaluate the field on the patch
template<class Type>
void mixedFixedValueSlipFvPatchField<Type>::evaluate(const Pstream::commsTypes)
void Foam::mixedFixedValueSlipFvPatchField<Type>::evaluate
(
const Pstream::commsTypes
)
{
if (!this->updated())
{
@ -170,10 +166,9 @@ void mixedFixedValueSlipFvPatchField<Type>::evaluate(const Pstream::commsTypes)
}
// Return defining fields
template<class Type>
tmp<Field<Type> >
mixedFixedValueSlipFvPatchField<Type>::snGradTransformDiag() const
Foam::tmp<Foam::Field<Type>>
Foam::mixedFixedValueSlipFvPatchField<Type>::snGradTransformDiag() const
{
vectorField nHat(this->patch().nf());
vectorField diag(nHat.size());
@ -189,9 +184,8 @@ mixedFixedValueSlipFvPatchField<Type>::snGradTransformDiag() const
}
// Write
template<class Type>
void mixedFixedValueSlipFvPatchField<Type>::write(Ostream& os) const
void Foam::mixedFixedValueSlipFvPatchField<Type>::write(Ostream& os) const
{
transformFvPatchField<Type>::write(os);
refValue_.writeEntry("refValue", os);
@ -199,8 +193,4 @@ void mixedFixedValueSlipFvPatchField<Type>::write(Ostream& os) const
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// ************************************************************************* //

Some files were not shown because too many files have changed in this diff Show More