Compare commits

..

3713 Commits

Author SHA1 Message Date
d04100a99e TUT: fix for snappy mesh layers 2018-06-28 15:39:32 +01:00
6e35bcda70 ENH: Updated config for release v1806 2018-06-28 12:56:00 +01:00
16a6379183 TUT: Cleaned up headers 2018-06-26 17:37:38 +01:00
ddd176bc1a ENH: Corrected header documentation 2018-06-26 17:33:00 +01:00
34bd032db9 SUBMODULE: updated to use v1806 tagged branches for all modules 2018-06-28 13:09:36 +02:00
069f8c158d Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-27 16:46:24 -07:00
cfc6701f76 TUT: Changing outlet p BC 2018-06-27 16:45:59 -07:00
be07fc9bbe STYLE: some test apps compiling into wrong location (issue #876) 2018-06-27 10:31:35 +02:00
3bc35220b0 GIT: relocate bin/mergedDyM -> bin/deprecated/mergedDyMsolver
- the backend script should not be accessible from the PATH.
  Using deprecated/ adds a level of documentation.
2018-06-27 07:54:28 +02:00
2df51655ca TUT: remove stray catalyst script 2018-06-27 08:22:13 +02:00
d1d47fe5ef SUBMODULE: updates for catalyst 2018-06-26 16:52:18 +02:00
b70b2d8629 TUT: fixup formatting, tabs etc 2018-06-26 16:37:35 +02:00
30b4eda7a4 TUT: update some old keywords found in tutorials
- functionObjectLibs -> libs
- redirectType -> name
- change deprecated writeCompression flags types to Switch.

- cleanup some trailing ';;' from some dictionaries
2018-06-26 14:18:52 +02:00
1c9f93e173 TUT: Added sloshingTank2D case for comparison with the interFoam solver 2018-06-26 14:16:22 +01:00
007c766914 ENH: Script updates 2018-06-26 14:04:00 +01:00
14268bbcd1 COMP: Removed legacy file 2018-06-26 13:27:54 +01:00
cc075b88ea STYLE: Minor header correction - see #831 2018-06-26 13:16:51 +01:00
26a3167843 Merge branch 'feature-normalMethods' into 'develop-pre-release'
STYLE: separate areaNormal/unitNormal method for primitives (issue #885)

See merge request Development/OpenFOAM-plus!208
2018-06-26 12:58:59 +01:00
59b4a77d23 TUT: RunFunctions - added protection for user shell customisations 2018-06-26 11:51:02 +01:00
1e5919f8b0 TUT: Updates - see #856 2018-06-26 11:16:24 +01:00
f5628d72aa BUG: AMI/ACMI - corrected setting of [src|tgt]MagSf for parallel runs. See #856 #906 2018-06-26 11:14:57 +01:00
0b14c637e6 STYLE: minor code formatting 2018-06-25 19:27:21 +01:00
a410f52e6d COMP: handle unset WM_OSTYPE for cmake targets (issue #909)
- regularise referencing of OpenFOAM env variables, sources etc.
2018-06-26 09:48:57 +02:00
df9c675c84 STYLE: remove unnecessary include for cartesianCS 2018-06-26 08:36:05 +02:00
e30ca79924 BUG: Correcting solidThermo constructor 2018-06-25 16:38:54 -07:00
edcb649212 STY: Changing folder name for icoReactingMultiphaseInterFoam 2018-06-25 10:35:53 -07:00
2d7f3d09a8 ENH: regIOobject: improved debug message 2018-06-25 12:55:36 +01:00
3de018af57 BUG: heSolidThermo: initialise mu,psi. See #905. 2018-06-25 12:53:58 +01:00
67f208bd43 BUG: partial/possible regression related to closing stdin (issue #893, #856)
- The problem is not 100% reproducible, but be somewhat conservative
  and now only close(stdin) for pure background (daemon-like) use of
  Foam::system(), where it can be useful.

  Using Foam::system() for launching background processes is currently
  only used for the doc browser.
2018-06-25 11:39:53 +02:00
831a47b81e CONFIG: eliminate most occurances of outdated FOAM_INST_DIR (issue #444)
- since 1612, FOAM_INST_DIR and foamInstDir longer have any
  special meanings when sourcing the bashrc or cshrc files.
  Thus no need for special treatment in any of the dispatch wrappers.

  Retained FOAM_INST_DIR as (unexported) variable in etc/bashrc,
  just in case people are using patched versions of etc/bashrc
  as part of their installation.

ENH: relax prefix restrictions on foamCreateVideo (issue #904)

- shift the implicit '.' to be part of the default prefix. This allows
  things like "-image myimages_00" to work as might be expected.
2018-06-25 09:56:34 +02:00
f4d3c071ff Merge branch 'feature-processorLOD' into 'develop-pre-release'
Feature processor level of detail (LOD)

See merge request Development/OpenFOAM-plus!210
2018-06-25 08:55:20 +01:00
4300f4c02f ENH: improve flexiblity of foamCreateVideo (issue #904)
- respect trailing '-', '.', '_' for the image prefix name.
  For example,

    -image press_   to accept press_*.png

- additional -mask width option (for avconv)
2018-06-24 18:02:00 +02:00
d9568a4b56 SUBMODULE: updates for catalyst
- SIGFPE handling, cmake configuration

CONFIG: adjust for simplified Catalyst channel naming

- no sub-channels, select volField output based in the
  (internal | boundary) dictionary switches instead
2018-06-24 15:50:50 +02:00
3d22c5c265 STYLE: use fileName::expand() instead of stringOps::inplaceExpand
- do not need the stringOps version if there is no dictionary context
2018-06-23 16:40:51 +02:00
eed1e99378 TUT: remove 'functions' dictionary scope from catalyst files
- rename Allrun.parallel to Allrun-parallel (issue #899)
2018-06-23 13:41:20 +02:00
e0db37f043 ENH: support rhoRef for derived surfMesh sampled fields (issue #898) 2018-06-22 16:57:30 +02:00
c3f52a696c ENH: Added time reporting to mapFieldsPar 2018-06-21 16:20:03 +01:00
8cbe11f158 BUG: Corrected arg lookup name 2018-06-21 08:12:55 +01:00
5d2ad9227f STYLE: separate areaNormal/unitNormal method for primitives (issue #885) 2018-06-20 12:17:03 +02:00
1c64911367 ENH: Updated meshToMesh to be able to use the new processorLOD 2018-06-20 07:57:25 +01:00
d5422239f3 ENH: Added new processor level of detail (LOD) to optimise parallel data transfers 2018-06-19 12:00:25 +01:00
02f97872ca ENH: Dry-run - Include creation of sets and zones for dyanmic mesh cases 2018-06-19 13:34:33 +01:00
cf7dbcd0e4 STYLE: Minor clean-up 2018-06-19 11:51:38 +01:00
27dcb69ccc GIT: add forgotten Allrun-parallel script (issue #866) 2018-06-19 13:03:35 +02:00
d637b6eb78 ENH: avoid parse problems caused by #calc directives (fixes #722)
- The additional output generated by #calc directives in the
  controlDict or decomposeParDict causes issues for the RunFunctions
  extraction of 'application' and 'numberOfSubdomains'.

  Avoid by using -disableFunctionEntries, which also has the side-effect
  of disabling '#include'.
2018-06-19 12:38:53 +02:00
0c5f36f40a ENH: Move stabilisation to steady-state part of LES motorBike tutorial. See #856. 2018-06-18 15:00:47 +01:00
48dafdedcf COMP: fix warnings about major()/minor() name conflicts (closes #883)
- major() and minor() are GNU macros in sys/sysmacros.h
  and generates warning on some systems (eg, Ubuntu 18.04)

  use getMajor() and getMinor() as method names instead.
2018-06-18 15:37:24 +02:00
dad09c5e7d BUG: Correction to commit 8540e6f
- corrected the mass based correction and updated the misleading function
  arguments

- moved the option to the optimisation switches, e.g.:

    OptimisationSwitches
    {
        experimentalDdtCorr 1;
    }

- default remains off/no (0)
2018-06-18 14:13:12 +01:00
601ebaa919 BUG: simplefiedFvMesh: debug word referring to other debug. Fixes #882. 2018-06-18 14:10:13 +01:00
4fe6ed3c6a BUG: compressibleInterFoam: Corrected handling of thermal diffusivity with mixture turbulence model
Resolves bug-report https://bugs.openfoam.org/view.php?id=2958
2018-05-25 23:43:41 +01:00
0cdb9d1ca0 BUG: rhoPimpleFoam: Only execute the density predictor if not in simpleRho mode 2018-06-10 22:45:46 +01:00
22e1384522 TUT: Updated headers 2018-06-22 15:36:33 +01:00
598c49fe8a TUT: Added new tutorial cases 2018-06-22 15:25:06 +01:00
abb597359f ENH: Updated the boundaryDataSurfaceWriter to use a plain list for the points file 2018-06-22 15:24:07 +01:00
b68fe2c76d BUG: cleanCase deletes blockMeshDict (fixes #900)
- Don't remove the constant/polyMesh directory if it contains a
  blockMeshDict or blockMeshDict.m4 file. Offer a reminder that
  system/ is the normal place for it.
2018-06-22 14:50:25 +02:00
c8fd217e95 BUG: Foam::system command swallows first argument (fixes #901) 2018-06-22 15:18:41 +02:00
6390c18381 ENH: suppress Info output for some cases (issue #722, #893)
- add additional control via a Foam::infoDetailLevel flag, which is
  supported by a 'DetailLevel' macro.  Eg,

      DetailLevel << "some information" << nl

- When infoDetailLevel is zero, the stdout for all Foam::system() calls
  are also redirected to stderr to prevent child output from
  appearing on the parent.

- close stdin before exec in system call.
2018-06-22 12:26:33 +02:00
83c9d3b287 EHH: add sigFpe::ignore helper class (issue #897)
- convenient way to temporarily suspend the SIGFPE handler.
  Eg,

      // Normal code with SIGFPE enabled ...
      sigFpe::set();

      {
          // Ignore SIGFPE in this scope ...
          sigFpe::ignore noFpeHandling;
          ...
      }
2018-06-22 00:39:53 +02:00
d56744a66a STYLE: Renamed source files to reflect solver names (issue #890) 2018-06-21 16:14:16 +02:00
f7d4f52726 STYLE: update names of known solvers, consistent End value (issue #856) 2018-06-21 16:03:06 +02:00
237f20b0ed TUT: tab removal 2018-06-21 15:43:15 +02:00
73fbed1c2c TUT: consistent use of scale and headers for blockMeshDict 2018-06-21 15:28:25 +02:00
8717f9936e TUT: consistency in Allclean Allrun scripts 2018-06-21 15:19:09 +02:00
736d358782 STYLE: code tidying for icoReactingMultiPhaseInterFoam
- use Enum instead of NamedEnum
- shorter form for dimensionedScalar

- reduce verbosity about missed seeding for DTRM cloud.
  Re-enable old warnings in debug mode.
2018-06-21 13:35:22 +02:00
2f83248827 ENH: Bounding k using kMin in SSG RANS model 2018-06-21 16:12:41 -07:00
f8bf897ca3 STYLE: stabilityBlending: typos; line length. See also #875. 2018-06-21 11:55:10 +01:00
dcde2eed74 TUT: consistent name for runTimePostProcessing dictionary 2018-06-21 11:56:00 +02:00
1f953b807c ENH: use double for VTK legacy output (issue #891)
- some paraview versions (eg, on windows) don't support float, only double.

  This mostly affected the vtkSurfaceWriter.

  The foamToVTK is also affected, but since it also supports the XML
  output formats (vtp, vtu) these can be used instead.
2018-06-21 10:24:04 +02:00
813a0500e2 BUG: incorrect order for VTK symmTensor (fixes #892)
- affected manually generated legacy output (vtkSetWriter, vtkSurfaceWriter)

- the order emitted by vtkSetWriter remains, but needs to revisited again.
2018-06-21 09:38:25 +02:00
f9dc9dbf5f TUT: updates 2018-06-21 08:31:22 +01:00
dd9823def5 STYLE: Minor updates to simplifiedFvMesh code 2018-06-21 08:31:02 +01:00
cbb1ff8680 STYLE: residuals function object - added header documentation 2018-06-20 12:26:49 +01:00
8608834d48 Merge branch 'feature-icoReactingMultiphaseInterFoam-dev' into 'develop-pre-release'
Feature ico reacting multiphase inter foam dev

See merge request Development/OpenFOAM-plus!204
2018-06-21 08:28:48 +01:00
017213deca Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-20 16:44:35 -07:00
649149f9de ENH: Improvements to the log format and fix write function 2018-06-20 16:43:00 -07:00
2790f2da4e ENH: Editing tutorials, and Make/files 2018-06-20 12:27:12 -07:00
c103331a6a INT: integration updates 2018-06-20 16:28:48 +01:00
f15be4d0b0 BUG: bad indexing in regionSizeDistribution function object (closes #888) 2018-06-20 13:51:30 +02:00
3603cf289f BUG: basicThermo: enforcing shared T. Fixes #887. 2018-06-20 12:07:00 +01:00
12e2142db8 COMP: refactoring to resolve compiler warnings - see #886 2018-06-20 10:56:04 +01:00
b6b2f430a3 CONFIG: bump paraview to 5.5.2 2018-06-20 01:57:35 +02:00
ca2a83d532 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-06-20 01:56:41 +02:00
8295d398aa BUG: accessing invalid coordinateRotation after move assignment (fixes #884)
- incorrect coordinateSystem clear() after the move

- add Test-coordinateSystem
2018-06-19 21:24:38 +02:00
7bf7aaea91 ENH: Further enhancements to stabilizationSchemes 2018-06-19 12:04:27 -07:00
9001aa2440 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-19 11:23:36 -07:00
a3a6768608 ENH: Adding additional entry to stabilizationSchemes.
Correcting tutorial and expanding documentation
2018-06-19 11:21:56 -07:00
5cd6e4bed4 ENH: report the function object name that causes the FatalError 2018-06-19 19:14:16 +02:00
0289582a75 Merge remote-tracking branch 'origin/master' into develop 2018-06-19 18:39:10 +02:00
1871b1d3bc TUT: use separate forces file for wingMotion2D 2018-06-19 17:18:15 +02:00
18f3fadf9c STYLE: restrict vtkCloud output names to use time-index (issue #866)
- this provides easily sortable names.

  The time information is available via the corresponding .series
  file, which can also be loaded directly with ParaView 5.5 or later.

  For further redundancy, time information is saved in the first XML
  comment inside of the .vtp files. For example,

      <!-- cloud=limestoneCloud1 time=0.005 index=200 -->
2018-06-19 17:08:25 +02:00
ce0623ca31 BUG: foamRestoreFields blocks in parallel (issue #877) 2018-06-19 16:46:15 +02:00
6ac47e6db5 STYLE: consistent foamDictionary stderr redirect in RunFunctions 2018-06-19 13:56:30 +02:00
f5275444cc CONFIG: adjust adios2 config 2018-06-19 13:53:23 +02:00
5754405bfb CONFIG: cannot pass additional arguments to foamEtcFile (closes #880)
- add support by using updated foamEtcFile from 1806, which also add
  the '-config' short-cut option.
2018-06-18 08:42:55 +02:00
5390c48b2d BUG: dictionary lookup of embedded coordinateSystem fails (fixes #879)
- also fix incorrect documentation in forces functionObject and
  interRegionExplicitPorositySource fvOption.
2018-06-16 00:29:41 +02:00
636328fc1c ENH: icoReactingMultiPhaseInterFoam: thermo sharing T 2018-06-15 14:05:37 +01:00
f3474dad1d BUG: rigidBodyMotionState: not readable in binary. Fixes #871. 2018-06-13 14:55:20 +01:00
616b91c06e Merge branch 'master' into develop 2018-06-13 14:17:47 +01:00
387ee6b2ad ENH: Updated example usage in header. Fixes #859 2018-06-13 14:11:51 +01:00
765c2051aa BUG: fftw: missing normalisation. See #867. 2018-06-13 14:09:37 +01:00
51c48fa9c9 BUG: non-uniform distribution for Random::position<label> (closes #865)
- use floor/truncate instead of round. Backport of changes in the
  develop-pre-release branch.
2018-06-13 12:38:13 +02:00
4bafb6fd54 COMP: Added include file to enable derived code extensions 2018-06-13 10:52:08 +01:00
cf0a288ead STYLE: typo in copyright dates 2018-06-12 09:03:30 +02:00
071d561224 BUG: refineWallLayer: incorrect handlign of useSet option. Fixes #864. 2018-06-11 13:13:44 +01:00
f19b88a53e GIT: spurious prefix for catalyst submodule naming 2018-06-11 11:49:05 +02:00
8b614d4a46 CONFIG: incorrect Qt5 detect (csh variant)
- bump to ParaView 5.5.1
2018-06-11 11:48:09 +02:00
7602e04ca5 BUG: error with surfMesh transfer from triSurfaceMesh (closes #862)
- face/point ownership is transferred to the surfMesh, so use these
  directly when sampling the interior.
2018-06-08 17:22:40 +02:00
63d07c9ef8 ENH: adjust AMI information for better log processing (issue #860)
- now report as  "min = XX max = YY average = ZZ"
  instead of as  "min/max/average = XX, YY, ZZ"

  this makes it easier to parse any particular value
  (eg, with foamLog)
2018-06-08 13:43:40 +02:00
c611bd6f94 CONFIG: add hostCollated for -fileHandler completion
- in anticipation of future change,
  hard-coded choice within bash_completion
2018-06-07 15:43:46 +02:00
10941280cb BUG: incorrect bitSet auto-vivify in snappy
- should use bitSet::set() and not bitSet::operator[] to auto-vivify
  out-of-range entries

- use bitSet::test() instead of bitSet::operator[] when testing
  non-const variables - circumvents any potential out-of-range issues.
2018-06-07 14:43:10 +02:00
86cd37d144 ENH: check for excess tokens on dimensionedType, Enum (issue #762)
- propagates check for lookupOrDefault etc.
2018-06-07 14:22:06 +02:00
e3ea3b0ce6 STYLE: remove unneeded includes (snappyRefineDriver) 2018-06-07 12:29:37 +02:00
4cb073e150 ENH: Up to date icoReactingMultiphaseInterFoam solver and libs
Adding tutorials and other minor changes
2018-06-04 11:25:59 -07:00
84b109219a STYLE: reduced usage of Switch
- Since 'bool' and 'Switch' use the _identical_ input mechanism
  (ie, both accept true/false, on/off, yes/no, none, 1/0), the main
  reason to prefer one or the other is the output.

  The output for Switch is as text (eg, "true"), whereas for bool
  it is label (0 or 1). If the output is required for a dictionary,
  Switch may be appropriate. If the output is not required, or is only
  used for Pstream exchange, bool can be more appropriate.
2018-06-01 20:51:48 +02:00
0f60cc9263 STYLE: remove bad edit in comment 2018-06-01 14:59:35 +02:00
cdb6d5a604 CONFIG: remove Darwin GCC wmake rules (partly broken, poorly tested) 2018-06-01 14:35:43 +02:00
35d682a4fb COMP: make the scotch librt dependency conditional 2018-06-01 14:17:41 +02:00
8058184b0c COMP: resolve 'point' ambiguity in foamyQuadMesh
- CGAL Triangulation_2.h (version 4.12) defines a point function,
  which interferes with the Foam::point typedef.
2018-06-01 14:10:17 +02:00
d571e5231b ENH: detect excess tokens for "libs" entry (issue #762)
- this addresses issue #843
2018-06-01 13:31:12 +02:00
511b35629d ENH: improve infrastructure for detecting excess tokens (issue #762)
- Always used for optional dictionary entries, since these are individual
  values, and not meant to be embedded in a larger stream of tokens.

  Methods:
     - lookupOrDefault, lookupOrAddDefault, lookupOrDefaultCompat
     - readIfPresent, readIfPresentCompat

- Handling mandatory dictionary entries is slightly more complex,
  since these may be part of larger stream of tokens, and are often
  used in a constructor context. For example,

      word modelType(dict.lookup("type"));

  Or they are used without a definite context. For example,

      dict.lookup("format") >> outputFormat;

  Newly introduced methods for mandatory dictionary entries:
     - get, getCompat
     - read, readCompat

  In a constructor or assignment context:

      word modelType(dict.get<word>("type"));
      outputFormat = dict.lookup("format");

  without copy/move (similar to readIfPresent):

      dict.read("format", outputFormat);
2018-06-01 11:55:57 +02:00
a6f524b1df STYLE: -diff-etc instead of -diffEtc in foamDictionary 2018-06-01 11:36:43 +02:00
b393c60d86 ENH: vtk: fix reading of inverted prisms. Fixes #850. 2018-05-31 12:42:43 +01:00
cd8b67844f ENH: snappyHexMesh: Remove cells inside any limitRegion with level -1. Fixes #852. 2018-05-31 10:05:02 +01:00
1c030f441d STYLE: missing newline in correctPhi.H 2018-05-30 16:18:20 +02:00
12553a2e43 COMP: include /usr/local in search for system headers/libraries
- this is consistent with compiler defaults, and helps Darwin users
2018-05-30 14:45:12 +02:00
e43ae3f23f ENH: detect excess tokens when looking up a dictionary value (issues #762) 2018-05-30 14:43:48 +02:00
2aaae74ee1 STYLE: consistent ordering of "inline explicit" vs. "explicit inline"
- resolve in favour of "inline explicit", which had marginally more
  uses and provides consistent prefixing for inline methods.
2018-05-30 12:11:13 +02:00
f9fe71815a STYLE: consistent use of '= delete' for removed constructors/assignments
- make the purpose more explicit, and reduces some work for the
  compiler as well.
2018-05-30 12:03:17 +02:00
6b6b36afd3 STYLE: revert bitSet/HashSet setMany() to set() method (issue #837)
- improves backward compatibility and more naming consistency.
  Retain setMany(iter1, iter2) to avoid ambiguity with the
  PackedList::set(index, value) method.
2018-05-29 17:38:02 +02:00
3de9b2f675 COMP: resolve size ambiguity (Darwin) 2018-05-29 12:36:12 +02:00
eeb725715d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
fe21322939 BUG: Corrected ConeNozzleInjection injected posisions in parallel operation. See #840 2018-05-30 14:05:53 +01:00
e747024c34 BUG: Corrected header documentation - see #831 2018-05-29 15:28:44 +01:00
ffe8048e04 BUG: COxidationIntrinicRate - corrected eta. See #842 2018-05-29 15:10:19 +01:00
5e9ba0bc72 ENH: Darwin emulation for addr2line 2018-05-29 11:21:59 +02:00
bd33a382ee COMP: define additional UIndirectList iterator member types (closes #847)
- required for std::iterator_traits specialization, which is used by
  the std::max_element algorithm on Darwin.
2018-05-29 08:56:08 +02:00
30309e9a65 COMP: 64-bit label ambiguity 2018-05-29 11:16:20 +02:00
7e270fc482 STYLE: formatting of scotch options 2018-05-29 09:57:30 +02:00
14e9ef34e5 Merge remote-tracking branch 'origin/develop' into develop 2018-05-29 10:28:28 +01:00
ca6b6cee8d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
7df0608306 STYLE: inline shorterPath function for printStack 2018-05-28 17:44:26 +02:00
d318a630b6 ENH: add directive '#sinclude' (or '#includeIfPresent' as long name)
- consistency with make and more succinct.

- reduce code duplication in findEtcFiles.
2018-05-28 13:38:03 +02:00
e3bb7ffd25 STYLE: avoid mix of 'sinclude' and '-include' in make files 2018-05-28 10:46:40 +02:00
26bb05d6f0 BUG: cyclicPeriodic: wrong indexing. Fixes #838. 2018-05-24 13:29:43 +01:00
417a2f6a73 BUG: reference FO: allocate interpolator on all processors. Fixes #823. 2018-05-24 09:52:33 +01:00
cb1cd96b04 ENH: snappyHexMesh: directional refinememt.
Basic directional refinement:
- only for coordinate aligned meshes
- only for refinementRegions
See the mesh/snappyHexMesh/aerofoilNACA0012_directionalRefinement
tutorial.
2018-05-21 16:51:57 +01:00
85ecb009d7 TUT: Updated input value 2018-05-18 09:57:12 +01:00
d8ea41e7bd STYLE: foamPwd (posix) function with some env replacements (issue #844)
- the current working path with replacements for base-level
  OpenFOAM env variables such as FOAM_RUN, WM_PROJECT_DIR,
  WM_PROJECT_USER_DIR etc

  Can be used directly from the command-line or embedded into a
  command prompt. For example,

      PS1='$(foamPwd)\n\u\$ '

- aliases for user solver/utilities located under "$WM_PROJECT_USER_DIR":
  (ufoam, uapp, usol, uutil)
2018-05-17 15:33:59 +01:00
66df3369dc BUG: ConeInjection - corrected number of parcels injected for multiple injector positions 2018-05-17 09:04:00 +01:00
1844ce5ab2 BUG: wrong sizing index for VTK legacy polyhedrals (closes #829) 2018-05-16 15:57:49 +01:00
c18a2a6370 BUG: compiler-specific INTELMPI not always found (closes #830)
- tie the MPI rules to the base compiler type *without* its version.
  Eg, linux64Gcc (which exists) instead of linux64Gcc81
2018-05-16 12:36:29 +01:00
430367b25a STYLE: shm: indentation 2018-03-01 17:09:39 +00:00
e5d4fbcd72 BUG: snappyHexMesh: cutting imcompatible with corner-point detection 2018-02-21 11:08:21 +00:00
4d72c2aac0 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
87504d501a BUG: regionToCell: incorrect indexing of remote values. Fixes #818. 2018-05-02 10:55:47 +01:00
1ac7f2e873 BUG: wrong nanoseconds in highResLastModified (closes #794)
- was using st_atim instead of st_mtim for the nanoseconds

- value of followLink was being ignored (it was always being followed).
2018-04-11 10:27:41 +02:00
1eb2458cf5 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-04-06 08:52:23 -07:00
a65b189741 ENH: Adding thermo using polynomial transport, JANAF and ideal gas.
This thermo is used with multiComponentMixture in rhoThermo type
2018-04-06 08:46:17 -07:00
1edb2f7dd0 BUG: mesh refinement crash with degenerate mesh distributions (closes #778)
- occurred when the initial mesh distribution was missing cells on
  some processors.
2018-03-21 21:54:40 +01:00
546fdb6207 BUG: corrected 'binned' distribution model 2018-03-20 10:17:33 +00:00
d7b9cea87c BUG: IsoAdvector - updated use of pos/neg as reported by Johan Roenby. See #775 2018-03-19 13:56:32 +00:00
fae1ba0f63 BUG: Corrections to externalWallHeatFluxTemperature BC (ref EP624) 2018-03-14 15:34:53 +00:00
4df782615c BUG: surface proxy zone handling with dangling? reference (closes #757)
- using const reference to temporary was failing.  Remedy by using a
  direct copy, which is a reasonable solution since surfZone content
  is quite minimal.
2018-03-13 17:58:02 +01:00
40e7d389d8 ENH: DPMFoam - extended RAS model selection. See #743 2018-03-13 12:48:16 +00:00
b0c5608b62 TUT: Corrected turbulence Ck value - see #753 2018-03-13 12:32:16 +00:00
73646bb15b BUG: removed incorrect code from cyclicFaPatch referring to cyclicPolyPatch. See #761 2018-03-13 08:54:39 +00:00
e78548352e TUT: Removed misleading comment in tutorial - see #746 2018-03-06 11:12:39 +00:00
7f7f9336c8 COMP: add -fpermissive to c++LESSWARN flags (closes #744)
- downgrades some diagnostics about nonconformant code from errors to
  warnings. Oddly enough, the errors actually arise from STL library
  elements shipped with gcc itself. Affects kahip compilation with
  gcc-6, gcc-7
2018-02-28 14:31:48 +01:00
628f0860c3 BUG: faceOnlySet sampling does not stop at 'end' (closes #745) 2018-02-28 11:23:59 +01:00
9f03511ffb GIT: merge artifact duplicate call to update mesh moving 2018-02-28 10:59:53 +01:00
94afd9e9b2 BUG: isoAdvection using 'vof2IsoTol' instead of 'isoFaceTol' (closes #740) 2018-02-23 15:11:24 +01:00
4d4c5910ed ENH: lagrangian injection - exposed minimum number of particles per parcel. See #728
The minimum number of particles per parcel can now be set in the
injection model input, e.g.:

    model1
    {
        type            ...;
        massTotal       ...;
        parcelBasisType ...;
        minParticlesPerParcel 1; <-- new optional entry
        SOI             ...;
        ...

Uses a value of 1 by default if the entry is not present.  The value of
1 is generally recommended and beneficial for coupled cases where small
time steps can lead to the injection of too many parcels and subsequently
greatly over-predict the particle source contributions (momentum, heat,
mass transfer etc)
2018-02-23 12:00:14 +00:00
ac3a8bc3cb BUG: simpleCoalParcelFoam - corrected dimensions of Qdot. Fixes #742 2018-02-23 09:04:16 +00:00
7ec44a88f1 ENH: Updating the header documentation for fanFvPatchField 2018-01-25 10:04:30 -08:00
ad98934e90 ENH: Changing fanFvPatchField operation for non-dimensional mode.
The non-dimensional table takes non-dimensional U as entry, not flow rate
2018-01-25 08:46:48 -08:00
bf6aa309e4 GIT: corrected incorrect merge artefacts 2018-01-25 11:12:42 +00:00
20125b36a3 BUG: timeControlFunctionObject swallows dictionary modifications (closes #716)
- runTimeModifiable change to the dictionary not being propagated to
  the underlying functionObjects
2018-01-24 20:45:59 +01:00
294a3d05ba BUG: problems converting clouds to ensight or vtk format (closes #708)
- problems when the cloud was not available on all processors.

- NB: ensight measured data only allows a single cloud, but
  foamToEnsight writes all clouds.
2018-01-23 15:39:45 +01:00
d4fe3b931a BUG: noiseModel - added missing read of 'writePSDf' entry 2018-01-19 12:48:59 +00:00
f37b3c479a ENH: kOmegaSSTLM improved robustness 2018-01-18 12:09:06 +00:00
8716ca25c0 ENH: sixDoFRigidBodyState relocated and code improvements. Fixes #711 2018-01-18 09:26:22 +00:00
e3c4696a6e TUT: Updated Allrun scripts for tests. Fixes #710 2018-01-17 15:30:49 +00:00
40985d291b ENH: use main constant/triSurface directory for sampling surfaces (closes #704)
- these were previously taken from region-local directories
  (eg, constant/region/triSurface), but this becomes difficult to
  manage when there are many files and regions.
2018-01-17 14:47:38 +01:00
2ebcb74dd2 BUG: reconstructPar ignores writeLagrangianPositions (fixes #702)
- The central InfoSwitch "writeLagrangianPositions" allows writing an
  additional Lagrangian "positions" file, but these were not being
  written by reconstructPar. These are now also written in reconstructPar
  if the central writeLagrangianPositions InfoSwitch is enabled.

NOTES

- "positions" are reconstructed from the processors "coordinates" file

- decomposePar will not attempt to create or redistribute any
  "positions" files
2018-01-17 13:38:24 +01:00
73ce0ccbef DOC: Documentation updates 2018-01-11 14:32:39 +00:00
1510c0aeb5 ENH: interIsoFoam - added linkage against wave modelling library 2018-01-11 14:30:26 +00:00
35d930ec0c COMP: mpi: const_cast because of incorrect mpi.h header. Fixes #697. 2018-01-10 09:10:30 +00:00
f412419c41 SUBMODULE: cfmesh update for 64-bit labels 2018-01-08 14:50:52 +01:00
4781193e31 ENH: nutUBlended wall function - added protection for uTau. See #696 2018-01-08 10:33:56 +00:00
f02783b986 ENH: Updates to the k-omega SST decay control functionality - see #694 2018-01-05 14:15:32 +00:00
a8c2e99dc4 CONFIG: updated completion_cache 2017-12-30 21:16:17 +00:00
f26eae84d5 Merge remote-tracking branch 'origin/develop' 2017-12-30 20:30:18 +00:00
c217800a74 TUT: minor update to div scheme test 2017-12-30 20:29:13 +00:00
85533e0d5b STYLE: Updated README 2017-12-30 20:04:26 +00:00
4287c91573 SUBMODULE: cfmesh update for v1712 2017-12-30 09:32:23 +00:00
23af7e435a ENH: FFT - removed power-of-2 constraint on number of samples 2017-12-29 23:57:22 +00:00
6f72f3452d BUG: foamToVTK - only convert finte area if -finiteAreaFields option is specified. Fixes #687 2017-12-29 23:50:10 +00:00
3b84004098 ENH: epsilonWallFunction - enable low-Re mode to be [de]activated on a
switch

The new lowReCorrection entry can be used to ensure that the low-Re
mode is only applied when its value is on/true, e.g.

    lowReCorrection      on;

When active, the low-Re mode is active when the local y+ is less than
the calculated y+_laminar.  When inactive, the high-Re form is employed
irrespectively of the local y+.

It has a defaulrt value of off/false for backwards compatibility with
OpenFOAM v1706
2017-12-29 20:48:32 +00:00
695246ad5a ENH: snappyHexMesh: directional refinement parallel 2017-12-28 14:45:47 +00:00
59caad90b9 BUG: decomposeParDict: missing coeffs 2017-12-28 13:49:58 +00:00
abb332df6d BUG: surfaceRedistributePar: hang in collated. See #686. 2017-12-28 12:45:49 +00:00
65833e6c22 BUG: pressure: generate calculated bcs early. Fixes #685. Ep 581. 2017-12-28 12:07:37 +00:00
08e6eca301 ENH: sampledTriSurfaceMesh: add warning about surface completely outside. Fixes #575. 2017-12-27 10:58:37 +00:00
fb152bd9c9 COMP: Added missing make/files entries. Fixes #682 2017-12-26 23:16:06 +00:00
9eb00fde2c BUG: Fixing creating of turbulence after overset specific in createFields.H for overRhoPimpleDyMFoam 2017-12-22 12:53:40 -08:00
8a5a50cac3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-22 11:17:31 -08:00
737a05736d BUG: Following commit eeafddfb3b2e392a7 for bug repor`t https://bugs.openfoam.org/view.php?id=2777 2017-12-22 11:15:29 -08:00
5a5c286a8b ENH: Correcting fvSchemes/fvSolution for sloshingTank2D 2017-12-22 11:06:08 -08:00
38d13f41f3 ENH: Added new heat transfer coefficient function object
Computes the heat transfer coefficient [W/m2/K] using a run-time
selectable model:
- ReynoldsAnalogy
- fixedReferenceTemperature
- localReferenceTemperature
2017-12-22 19:00:25 +00:00
b85a38dc41 INT: streamFunction wave model updates 2017-12-22 17:06:42 +00:00
ac20f63cfc BUG: - continuation of commit 3b70a82bb 2017-12-22 15:27:37 +00:00
d1c80c59cc MODULE: update for avalanche 2017-12-22 16:26:09 +01:00
66f473b11c ENH: Updated extractEulerianParticles and deps after change to barycentric tracking 2017-12-22 13:19:41 +00:00
e60a77442c STYLE: less verbose output of available procs in redistributePar 2017-12-22 12:50:55 +01:00
3787d45c12 BUG: decomposePar -decomposeParDict fails for faMesh (closes #680)
- was using system/decomposeParDict and ignoring the command-line
  option.
2017-12-22 12:28:39 +01:00
1eaa024a08 BUG: Change the calculation of dgdt term in the pEq plus reverting compressible pEqComp until
further investigation on the consequences on dynamic mesh for compressibleInterDyMFoam.
alphaSuSp.H has to be added in the solver folder in order to make it compatible with the alpha Eq.
2017-12-21 17:08:33 -08:00
1d77b78418 ENH: changing endTime for sonicFoam/RAS/nacaAirfoil
Fixing fvOption in multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection
2017-12-21 12:53:10 -08:00
3951cca2b1 BUG: Changing sign for the radiative flux for the wallHeatFlux FO.
NOTE: The radiative flux (qr) is positive when the heat flux is going into the wall,
this is oposite the the he flux which is positive going out of the wall.
2017-12-21 09:33:45 -08:00
0b4a97bce5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-21 09:15:21 -08:00
5a3dfc60b6 BUG: Adding cellMask to constrainHbyA in pEq.H 2017-12-21 09:13:54 -08:00
576a226dbe BUG: Correcting HbyA constrain with cellMask in pEq.H 2017-12-21 07:37:40 -08:00
cc2e9cb404 CONFIG: update submodules for 64-bit build 2017-12-21 16:34:24 +01:00
ab9c70c050 COMP: single-precision compilation with FFT (closes #678) 2017-12-21 16:04:13 +01:00
9c38ad6ae4 TUT: relocate tutorial log analysis as functions for reuse in modules
- removed some unneeded tutorial files
2017-12-21 14:17:20 +01:00
01b785f23a ENH: 2:1 constraint 2017-12-21 13:12:22 +00:00
2fe7d0c00b STYLE: update BuildIssues with CGAL mpfr-none problem (issue #674)
- add some notes about 'git submodule' in modules/README.md
2017-12-21 10:38:57 +01:00
bd181f9a6c BUG: lagrangian - corrected references to position() 2017-12-19 21:25:12 +00:00
e97275cf12 ENH: collated support. Fixes createZeroDirectory in #675. 2017-12-21 15:05:10 +00:00
8931e443d8 ENH: collated support. Fixes lumpedPointMotion in #675. 2017-12-21 14:53:16 +00:00
2967be7d4d ENH: fileHandler support. Fixes channel395DFSEM in #675. 2017-12-21 14:25:13 +00:00
d259402e40 GIT: .foam: left over 2017-12-21 13:03:52 +00:00
774dcadb65 BUG: cellCuts: incorrect correspondence. Fixes #670. 2017-12-21 13:00:44 +00:00
351fa4f979 TUT: updated sonicFoam case (see #677) 2017-12-21 11:16:28 +00:00
e7b15d21dd Merge branch 'feature-noise-fft' into 'develop'
Updated noise fft handling via fftw

See merge request Development/OpenFOAM-plus!186
2017-12-21 10:19:53 +00:00
929ed3ca02 ENH: New deferred correction scheme
The characteristics of the base scheme are recovered by applying an
explicit correction to the upwind scheme weights.

Usage
    Example of the \c deferredCorrection scheme applied to the \c linear
    scheme:
    \verbatim
    divSchemes
    {
        .
        .
        div(phi,U)      Gauss deferredCorrection linear;
        .
        .
    }
    \endverbatim

Based on a generalised form of a deferred correction linear scheme
supplied by CFD Software E+F GmbH
2017-12-21 09:03:19 +00:00
90a9cd06c7 ENH: Constructing coeff volScalarField with 'calculated' Bc's for compressible flow to
avoid unphysical 'fixedValue' at boundaries
2017-12-20 10:58:42 -08:00
b14e7b794d COMP: Updated initialisation order 2017-12-20 17:16:22 +00:00
e7d9a1accf ENH: Changing BC for U to slip 2017-12-20 08:32:53 -08:00
feb11e4a39 BUG: UIPstream: sending zero sized string accesses beyond buffer. Fixes #676 2017-12-20 15:28:20 +00:00
276cef6aba ENH: kOmegaSST - added turbulence decay control terms
Based on the reference:
      Spalart, P. R. and Rumsey, C. L. (2007).
      Effective Inflow Conditions for Turbulence Models in Aerodynamic
      Calculations
      AIAA Journal, 45(10), 2544 - 2553.

The decay control default is off for backwards compatibility.  To enable
it, add the following to the coefficients dictionary

      // Optional decay control
      decayControl    yes;
      kInf            \<far-field k value\>;
      omegaInf        \<far-field omega value\>;
2017-12-20 08:48:32 +00:00
ef08bc56ba BUG: Removing finiteArea lib from option file for reconstructPar.
Modifying relaxation factors for the angledDuct for rhoPimpleFoam
2017-12-19 14:51:42 -08:00
7230b3dc62 ENH: Adding postProcessing option to solver overPimpleDyMFoam 2017-12-19 12:31:54 -08:00
985a18df75 Adding overPotentialFoam and overRhoSimpleFoam and tutorials 2017-12-19 11:33:43 -08:00
a6d88f2fe7 Adding turbulence to RAS-Tjunction and reducing MRF in mixerVessel2D to make it laminar 2017-12-19 11:02:31 -08:00
f97954b0b6 BUG: still require IStringStream for argList (closes #672)
- regression introduced by part of commit 2787a8664d.

  Specifically the way that scalarRanges is written, it parses through
  until it hits invalid input. This works fine with an IStringStream,
  but the ITstream is pickier and reports this as being an error.

  So revert to IStringStream and be less picky about argList parsing.
  in the longer-term, should fix scalarRanges instead.
2017-12-19 17:59:15 +01:00
f187dd8aa3 ENH: finiteArea - integration updates 2017-12-19 17:07:08 +00:00
995c55b60e CONFIG: add clang third-party lib to LD_LIBRARY_PATH
- required if there is no system openmp and libomp or libgomp are
  only found in the clang hierarchy

STYLE: add some notes in the openmp rules.

- the _OPENMP macro is now used in low-level testing files
2017-12-19 16:07:15 +01:00
1428310bac ENH: FFT - only create the fftw plan once 2017-12-19 14:45:58 +00:00
d20b981fef STYLE: add End markers to some tutorials and finiteArea utils (issue #671) 2017-12-19 14:59:24 +01:00
8bf98e74da TUT: added tutorial files (issue #671)
- also cleanup by using 0.orig/ directory.
- use foamListRegions to obtain region names
2017-12-19 14:40:33 +01:00
5713efede3 STYLE: use range-for in checkTopology.C
- remove odd spaces in checkMesh output
2017-12-19 12:44:10 +01:00
c9211b6170 BUG: incorrect cellZone boundBox reported by checkMesh (closes #663)
- also incorrect number of points per zone
2017-12-19 12:24:47 +01:00
00325db33b ENH: additional options for transforming points (closes #660)
- The -rotate-angle option allows convenient specification of a
  rotation about an arbitrary axis. Eg, -rotate-angle '((1 1 1) 45)'

- The -origin option can be used to temporarily shift the origin
  for the rotation operations. For example,

      -origin '(0 0 1)' -rotate-angle '((1 0 0) 180)'

  for mirroring.
2017-12-19 11:24:08 +01:00
95e357ede4 TUT: use uniform scaling short form
Eg,
    transformPoints -scaling 0.01
instead of
    transformPoints -scaling '(0.01 0.01 0.01)'
2017-12-19 09:41:54 +01:00
f38ad72ad0 ENH: add argList::optionCount method
- convenience for checking is any/all particular options have been
  specified. Eg,

  if (args.optionCount({"opt1", "opt2", "opt3"}) < 3) ...
2017-12-19 08:20:45 +01:00
4a6fc12469 BUG: finiteArea - corrected assignments to refs 2017-12-19 09:19:50 +00:00
ed183b7c30 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-18 16:12:56 -08:00
709d2f43b1 Addition of tutorial using energyTransport FO + ArrheniusBirdCarreau laminar transport 2017-12-18 16:12:48 -08:00
c6433e32c2 ENH: Extended the effectiveness heat exchanger source to enable target
heat rejection

The new optional entry targetQdot can be used to specify a target heat
rejection.  This is additionally controlled using the
targetQdotCalcInterval  and targetQdotRelax entries which default to
values of 5 and 0.5, respectively.
2017-12-18 19:41:33 +00:00
6b33d0ec6b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-18 08:24:58 -08:00
19c3875a14 CONFIG: update tcsh completion_cache to include finiteArea and cfmesh
- include bash completion for paraFoam, and provision for using
  foamEtcFile as well.
2017-12-18 14:26:49 +01:00
b51b6e20fb Merge branch 'feature-finiteArea-postProcessing' into 'develop'
finite area integration

See merge request Development/OpenFOAM-plus!179
2017-12-18 11:44:02 +00:00
22e0a05e8b STYLE: finiteArea doc and style updates 2017-12-18 11:25:53 +00:00
00a8c8bc5f BUG: liquidFilmFoam - corrected double looping 2017-12-18 11:21:07 +00:00
2728a96b9c ENH: finiteArea - faMesh now derived from faSolution, faSchemes and data classes 2017-12-18 10:50:37 +00:00
4c81ee202d CONFIG: update for gcc-4.9.4, and cfmesh module 2017-12-18 10:51:53 +01:00
16db44b67d STYLE: add flex major version in '#if' conditional 2017-12-17 16:22:39 +01:00
8567ef594a STYLE: remove unneed DynamicList::reserve() call
- DynamicList now has SizeMin=16, which eliminates the need for reserve()
  in some cases

- remove unused enrichedPatch static variable
2017-12-17 13:47:12 +01:00
c70d7237e2 STYLE: more robust extraction of API number from wmake rules 2017-12-17 15:19:09 +01:00
22775693d5 STYLE: adjust comments, indentation 2017-12-17 13:14:05 +01:00
2795d64384 COMP: suppress clang warnings about unknown compiler warning option
- allows enabling new warnings without causing messy output with older
  clang versions
2017-12-15 20:02:26 +01:00
1f9bdb4b4f CONFIG: add foamConfigurePaths -kahip* options (closes #666) 2017-12-15 18:04:11 +01:00
db75d4fe8e ENH: vanDriestDelta - updated reading of coeffs from non-optional sub-dict 2017-12-15 17:30:55 +00:00
9ab7fe6b24 ENH: IDDESDelta - updated the hmax delta to be run-time selectable
The delta used for hmax can be set using the optional 'hmax' entry
- if not supplied, the maxDeltaxyz delta is used (backwards
  compatibility)
2017-12-15 17:26:22 +00:00
9c1bb8d707 ENH: maxDeltaxyz - simplified the delta calc and reset the default coeff to 2 2017-12-15 17:25:22 +00:00
627f312776 Merge branch 'config-thirdparty' into 'develop'
update for third-party versions

See merge request Development/OpenFOAM-plus!185
2017-12-15 12:28:37 +00:00
912b38fd9c ENH: applyBoundaryLayer - added -write-nut option to write nut|nuTilda (default=no) 2017-12-15 11:15:50 +00:00
5ba4e83f7a CONFIG: update versions of some ThirdParty software
- ADIOS 1.13.0
- fftw 3.3.7
- paraview 5.4.1

ENH: include ThirdParty QT libraries in LD_LIBRARY_PATH for paraview
2017-12-15 09:23:37 +01:00
445017c741 BUG: snappyMultiRegionHeater: missing decomposeParDict. See #652. 2017-12-14 16:31:49 +00:00
d523d0a634 Merge branch 'feature-overset-lsq' into 'develop'
ENH: overset: new solvers, new stencil

See merge request Development/OpenFOAM-plus!180
2017-12-14 15:43:59 +00:00
e18575bfcb Merge branch 'style-config' into 'develop'
Style config

See merge request Development/OpenFOAM-plus!184
2017-12-14 12:02:13 +00:00
5c607bb801 ENH: print paraFoam -help and -help-full to stdout
- this makes it possible to use "foamAddCompletion paraFoam" and have
  bash completions for paraFoam as well
2017-12-14 12:50:59 +01:00
a820e2d2b7 STYLE: add explicit note to bashrc,cshrc about using prefs.{sh,csh}
- adjust comment formatting to reduce clutter
2017-12-14 11:18:40 +01:00
dd2b3d4e9b STYLE: drop little-used, little-known 'foamSite' alias 2017-12-14 10:58:15 +01:00
3f853f031a STYLE: cleanup of compiler settings
- relocate WM_COMPILER_ARCH, WM_COMPILER_LIB_ARCH from
  etc/{bashrc,cshrc} to etc/config.{csh,sh}/settings since these
  should not be changed by the user anyhow.

- Use gcc/g++ as common base and specialize afterwards (to reduce
  duplication)

- adjust format of WM_PROJECT_SITE fallback to allow for easier
  automated edits
2017-12-14 10:22:30 +01:00
5d5ef73f74 COMP: adjust type for dummy postProcess fields 2017-12-14 01:17:21 +01:00
3da2aee4ef ENH: Updated wildcard handling for function object field entries 2017-12-13 20:57:56 +00:00
b37fc2d4b1 Merge branch 'feature-externalCoupled' into 'develop'
Feature external coupled

See merge request Development/OpenFOAM-plus!176
2017-12-13 19:58:09 +00:00
3999498eed Merge branch 'config-modules' into 'develop'
Support for additional modules

See merge request Development/OpenFOAM-plus!183
2017-12-13 19:43:09 +00:00
bc8420e14f STYLE: trailing whitespace, doxygen, error messages from fileOperation 2017-12-13 17:56:34 +01:00
ffc1c5aca0 CONFIG: add additional modules/ directory and Module namespace
- any code placed here should provide Allwmake and Allwclean scripts
  and normally have compilation targets into FOAM_APPBIN, FOAM_LIBBIN

  Since there is no standardize places for sources or applications,
  a simultaneous build of a module's doxygen documentation requires
  a minor bit of manual effort. Add (via symlink) the sources into
  the modules/doc/ directory to have them included in the normal
  OpenFOAM doxygen documentation generation.

  A makelink.example file is provided there as an example.
2017-12-13 17:36:35 +01:00
47bd51348b ENH: snappyHexMesh: message 2017-12-13 12:45:06 +00:00
52231e7836 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
0af97856f1 ENH: Added new nutUBlendedWallFunction
This forms part of what is termed 'automatic wall treatment' in the
reference:

    Menter, F., Carregal Ferreira, J., Esch, T., Konno, B. (2003).
    The SST Turbulence Model with Improved Wall Treatment
    for Heat Transfer Predictions in Gas Turbines.
    Proceedings of the International Gas Turbine Congress 2003 Tokyo

Note
    The full 'automatic wall treatment' description also requires use of
    the  Foam::omegaWallFunction with the \c blended flag set to 'on'
2017-12-12 08:51:47 +00:00
3b70a82bb7 BUG: Partial revert of commit fd87d0af1
omegaWallFunction
- re-instated behaviour when not using 'blended'
- turbulence generation always included when using 'blended'
- 'blended' now true by default

epsilonWallFunction
- re-instated low-Re switching
2017-12-12 08:48:38 +00:00
88fac3ed9f ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
7fe700a8dc COMP: HashPtrTableI.H: inlined functions 2018-05-21 09:50:22 +01:00
447ee9e027 ENH: processorField: added etc/caseDicts file. Fixes #807. 2018-05-21 09:45:55 +01:00
1275c71e50 ENH: snappyHexMeshDict: description of gapMode 2018-05-16 11:38:24 +01:00
b0ddf92e78 ENH: polyMesh: fixed warning message. Fixes #828. 2018-05-16 10:14:45 +01:00
48d654cf19 ENH: avoid memory leaks for HashPtrTable, PtrMap insertion (issue #749)
- disallow insert() of raw pointers, since a failed insertion
  (ie, entry already existed) results in an unmanaged pointer.

  Either insert using an autoPtr, or set() with raw pointers or autoPtr.

- IOobjectList::add() now takes an autoPtr instead of an object reference

- IOobjectList::remove() now returns an autoPtr instead of a raw pointer
2018-05-17 09:56:36 +01:00
46b768628c STYLE: use FieldBase for template invariant parts
- use refCount instead of the tmp<...>::refCount alias
2018-05-16 18:03:14 +01:00
fe80e3b4ed SUBMODULE: updates for catalyst 2018-05-16 16:07:31 +01:00
4289242c07 Merge remote-tracking branch 'origin/master' into develop 2018-05-16 16:07:00 +01:00
7c43b919c5 STYLE: eliminate a global reduction for field function (issue #816) 2018-05-15 18:10:03 +01:00
5b50febfa4 ENH: simplify distance calculation in distanceSurface
- use normal instead of volumeType to decide on the sign.
  This provides a continuous field and eliminates special handling of
  GREAT in iso-surface routines.

- fix regression in isoSurfaceCell cutting that was introduced by the
  previous adjustments for distanceSurface
2018-05-15 13:50:24 +01:00
d8356fee44 CONFIG: change default writeLagrangianPositions ON (closes #781)
- this enables x,y,z access of lagrangian positions, which is useful
  for postprocessing in paraview, but at the expense of slightly
  more disk space.
2018-05-15 11:11:59 +01:00
65129d7b90 CONFIG: export ThirdParty Qt5_DIR (issue #827) 2018-05-14 17:04:18 +01:00
df3b406ef8 COMP: resolve faceZone constructor ambiguity for gcc 4.8.1 2018-05-11 17:18:52 +01:00
26c24492b1 SUBMODULE: updates for avalanche, catalyst, cfmesh 2018-05-11 15:29:00 +02:00
73a525b7f5 ENH: additional input/output parameters for lumped point motion (closes #804)
- input or output scaling of values to manage dissimilar unit systems
  in the structures model

- logging of communicated force, moments and updated positions.
  This allows tracking of the information exchange throughout the
  duration of the simulation and may assist in post-simulation diagnosis.
2018-03-22 23:57:46 +01:00
51d6008bbb Merge remote-tracking branch 'origin/master' into develop 2018-05-11 15:15:54 +02:00
28627250c6 CONFIG: update catalyst configuration files
- relocated from
    etc/caseDicts/postProcessing/catalyst/ -> etc/caseDicts/insitu/catalyst/

- adjusted for unified catalyst function object
2018-05-11 14:55:47 +02:00
cc0eac3e19 ENH: add decompose flag for vtkWrite function object
- default is now without polyhedral decomposition, since this produces
  compacter files and VTK mananges this in most instances.
  However, provide function object flag to reinstate the old behaviour.
2018-05-11 08:04:50 +02:00
f40d7ef578 COMP: use emptyLabelList to avoid reference to temporary (gcc 8.1) 2018-05-09 12:40:38 +02:00
1513a049e0 BUG: swirl: decide based on global properties. Fixes #824. 2018-05-10 11:12:19 +01:00
56231b5b5f STYLE: use FatalIOError and minor changes to log output 2018-05-09 12:43:11 +01:00
16f3eac7d6 ENH: reference FO - position entry is now optional 2018-05-09 12:15:43 +01:00
050628c7b1 COMP: Corrections for clang 3.7.1 2018-05-08 15:54:08 +01:00
8c5d0cd8b2 Merge remote-tracking branch 'origin/develop' into develop 2018-05-08 13:56:16 +01:00
0d7c582293 STYLE: Minor typo corrections 2018-05-08 13:24:38 +01:00
091d847094 ENH: Added a new function object to create a field relative to a field value
Calculates and outputs a field whose values are offset to a reference
    value obtained by sampling the field at a user-specified location.

    The field values are calculated using:

    \f[
        f_c = s(f_{c,t} - f_p + f_{off})
    \f]

    where
    \vartable
        f_c     | field values at cell
        s       | optional scale factor (default = 1)
        f_{c,t} | current field values at cell at this time
        f_p     | field value at position
        f_{off} | offset field value (default = 0)
    \endvartable

Usage
    Example of function object specification to calculate the reference
field:
    \verbatim
    pRef
    {
        type        reference;
        libs        ("libfieldFunctionObjects.so");
        ...
        field       p;
        result      pRef;
        position    (0 0 0);
        scale       1.2;
        offset      100000;
    }
    \endverbatim
2018-05-08 13:19:46 +01:00
5c60cbe34d ENH: improve ensightWrite handling of moving mesh
- now treat all mesh geometries as moving, since we cannot know
  beforehand if this is the case.
2018-05-08 12:41:06 +02:00
e3706cdc69 COMP: wallDistData: incorrect templates 2018-05-08 10:33:58 +01:00
f99880cbea ENH: add nodeValues option for ensightWrite function object (closes #734) 2018-05-08 09:51:15 +02:00
b24bd516ae ENH: write ensightWrite case on each write (closes #733)
- allows processing of the data during the calculation.
2018-05-08 09:25:07 +02:00
9531212f14 ENH: disable ensightWrite, vtkWrite function objects in post-process mode
- prevents accidental overwrite of runtime conversions.
2018-05-08 09:16:00 +02:00
dbe16de58c ENH: cleaner, more consistent ensight case surface output files
- use same data mask width as ensightCase (8 digits)

- consolidate geometry time steps with data time steps if possible,
  for a cleaner case file.
2018-05-08 08:15:31 +02:00
2f567e53de COMP: silence some compiler warnings/errors
- catch (value)
- forward declarations for operator<<()
- non-const access to Reaction name()
- spurious return statement
2018-05-07 17:21:56 +02:00
272e09b051 CONFIG: add Gcc81 2018-05-07 17:21:30 +02:00
01a313d889 BUG: collated ensight not working with isosurfaces (closes #318)
- the problem arises since the various surface writers are stateless.
  The collated output format hacks around this limitation by adding in
  its own fieldDict caching (to disk).

  Now include an updateMesh() method to hook into geometry changes.
  This is considered a stop-gap measure until the surface output
  handling is improved.
2018-05-07 16:59:15 +02:00
b0648f2ba0 ENH: improvements in the surface sampling infrastructure
- improvement documentation for surface sampling.

- can now specify alternative sampling scheme for obtaining the
  face values instead of just using the "cell" value. For example,

      sampleScheme    cellPoint;

  This can be useful for cases when the surface is close to a boundary
  cell and there are large gradients in the sampled field.

- distanceSurface now handles non-closed surfaces more robustly.
  Unknown regions (not inside or outside) are marked internally and
  excluded from consideration. This allows use of 'signed' surfaces
  where not previously possible.
2018-05-07 11:29:00 +02:00
5268b5e61d BUG: Corrected no-op in reverse transform multi-D fft - see #813 2018-05-03 14:54:09 +01:00
ef882e542a ENH: zero initialize memory for Pstream send (issue #814)
- this avoids some valgrind messages

      "Uninitialised byte(s) found during client check request"
2018-05-02 14:02:55 +02:00
6d89a3ec38 ENH: additional convenience for mpirunDebug
- a -valgrind option for logging with valgrind

- determine number of processors from system/decomposeParDict
  or -decomposeParDict if -np was not specified
2018-05-02 11:49:33 +02:00
0ea44eda59 ENH: bitSet::find_first_not() method (issue #751)
- find the position of the first bit off - symmetrical with find_first()
2018-05-02 08:33:49 +02:00
4653beaa49 ENH: report illegal cellId for getRefCellValue (FULLDEBUG)
-  this should normally not be triggered, provided that setRefCell was
   used. However, if getRefCellValue() was called without any previous
   checking on refCelli, it is possible to provoke errors.
2018-04-30 14:25:37 +02:00
b4a2876c56 ENH: use move construct for cellZone/faceZone 2018-03-07 11:28:05 +01:00
4fe8ed8245 STYLE: use direct iteration for HashSet
- The iterator for a HashSet dereferences directly to its key.

- Eg,

      for (const label patchi : patchSet)
      {
          ...
      }
  vs.
      forAllConstIter(labelHashSet, patchSet, iter)
      {
          const label patchi = iter.key();
          ...
      }
2018-03-06 00:29:03 +01:00
2a6ac7edce BUG: nearWallFields: correct exit condition for particles. Fixes #812. 2018-04-30 13:08:58 +01:00
e2361b102f COMP: inplaceMapValue relocated to ListOps 2018-04-30 14:05:54 +02:00
153323e1f6 Merge branch 'feature-regionsplit' into 'develop'
Feature regionsplit

See merge request Development/OpenFOAM-plus!201
2018-04-30 11:21:45 +01:00
f3d1e41d76 COMP: label-size 64 compilation of fft (issue #813) 2018-04-30 08:24:38 +02:00
f86c129fd5 STYLE: additional comment when completion not found (issue #719)
No completion added for XXX
    ... incorrect platform, or not yet compiled?
2018-04-30 07:50:48 +02:00
ed2722745d ENH: revert regionSplit to older algorithm (issue #805)
- the algorithm was last used in OpenFOAM-2.4, after which it was
  replaced with a FaceCellWave version.

  Whereas the original (2.4.x) version exhibited performance
  degradation on very large meshes (with explicit constraints), the
  FaceCellWave version exhibited performance issues with large numbers
  of blocked faces.

  With large numbers of blocked faces, the FaceCellWave regionSplit
  could take between 10 to 100 times longer due to the slow
  propagation speed through blocked faces.

  The 2.4 regionSplit has been revamped to avoid local memory
  allocations, which appears to have been the source of the original
  performance issues on large meshes.

  For additional performance, intermediate renumbering is also avoided
  during the consolidation of regions over processor domains.
2018-04-27 15:51:33 +02:00
dd8341f659 ENH: make format of ExecutionTime = ... output configurable (issue #788)
- controlled by the the 'printExecutionFormat' InfoSwitch in
  etc/controlDict

      // Style for "ExecutionTime = " output
      // - 0 = seconds (with trailing 's')
      // - 1 = day-hh:mm:ss

   ExecutionTime = 112135.2 s  ClockTime = 113017 s

   ExecutionTime = 1-07:08:55.20  ClockTime = 1-07:23:37

- Callable via the new Time::printExecutionTime() method,
  which also helps to reduce clutter in the applications.
  Eg,

     runTime.printExecutionTime(Info);

  vs

     Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
         << "  ClockTime = " << runTime.elapsedClockTime() << " s"
         << nl << endl;

--

ENH: return elapsedClockTime() and clockTimeIncrement as double

- previously returned as time_t, which is less portable.
2018-04-27 15:00:34 +02:00
0743b61a3c STYLE: minor cleanup in decompositionMethod
- reduce cell looping. Avoid initial looping over blockFace.

- make early return (no processor sets, connections, or blocked faces)
  more apparent.
2018-04-26 12:36:24 +02:00
4dcd052ffc STYLE: remove old/dead decompositionMethod::calcCellCells code
- alternative calcCellCells that handled explicitConnections was
  deactivated (2014 or earlier) and finally removed APR-2018.
2018-04-27 11:16:18 +02:00
10b69fa2b4 ENH: ListOp::inplaceMapValue using a Map<label> for the mapping.
For example, with some HashTable or Map container of models

    { model0 => 1, model1 => 4, model2 => 5, model3 => 12, model4 => 15, }

specify the remapping

    Map<label> mapper({{1, 3}, {2, 6}, {3, 12}, {5, 8}});

inplaceMapValue(mapper, models) then yields

    { model0 => 3, model1 => 4, model2 => 8, model3 => 12, model4 => 15, }

--

ENH: extend bitSet::count() to optionally count unset bits instead.

--

ENH: BitOps compatibility methods for boolList.

- These ease coding that uses a boolList instead of bitSet and use
  short-circuit logic when possible.

  Eg, when 'bitset' and 'bools' contain the same information

      bitset.count()  <->  BitOps::count(bools)
      bitset.all()    <->  BitOps::all(bools)
      bitset.any()    <->  BitOps::any(bools)
      bitset.none()   <->  BitOps::none(bools)

  These methods can then be used directly in parameters or in logic.
  Eg,

      returnReduce(bitset.any(), orOp<bool>());
      returnReduce(BitOps::any(bools), orOp<bool>());

      if (BitOps::any(bools)) ...
2018-04-27 10:43:32 +02:00
c0766ce8ea STYLE: consistent '// End namespace' markers 2018-04-27 09:51:35 +02:00
a9fbaa4b08 ENH: volPointInterpolate: improved debug message 2018-04-26 17:08:50 +01:00
a645b2b5c8 BUG: annularThermalMixer: incorrect shm setup. Fixes #811. 2018-04-25 11:43:52 +01:00
0226485c77 BUG: extraneous '}' in FULLDEBUG 2018-04-26 14:49:49 +02:00
d3c2668cc6 STYLE: extraneous debug output in PackedList
- bitSet::used() method for compatibility with code using the
  PackedBoolList typedef, but marked as deprecated.
2018-04-26 14:10:16 +02:00
f181a7ac61 SUBMODULE: minor updates for cfmesh
- with updated DynList that inherits from UList and uses List/FixedList
  internally for its memory management
2018-04-26 10:45:52 +02:00
497dde2b2f CONFIG: bump API version number to 1804 to account for bitSet
- since PackedBoolList is now a compatibility typedef for bitSet,
  it is useful to have an additional means of distinction.

STYLE: simplify internal version tests and compiler defines.

- the API version is now conveyed via the OPENFOAM define directly.
  The older OPENFOAM_PLUS define is provided for existing code.
2018-04-26 09:28:42 +02:00
ebfe46503f STYLE: improve wmkdepend parse error message
- parsing error state only arises from a missing final newline
  in the file (which the dnl macro does not capture).
  Report with a warning instead of modifying the dnl macro since
  we generally wish to know about this anyhow.

- add missing newline to YEqn.H file.
2018-04-25 14:37:59 +02:00
e6787bfa9a Merge branch 'feature-bitset' into 'develop'
ENH: new bitSet class and improved PackedList class (closes #751)

See merge request Development/OpenFOAM-plus!200
2018-04-25 11:39:59 +01:00
dffc65d41d STYLE: make token null constructor constexpr, noexcept 2018-04-25 10:42:25 +02:00
2fde6c3ab0 ENH: improve handling of mismatched brackets, forgotten ';' (issue #762)
- flags the following type of problems:

  * mismatches:

        keyword  mismatch ( set of { brackets ) in the } entry;

  * underflow (too many closing brackets:

        keyword  too many ( set of ) brackets ) in ) entry;

- a missing semi-colon

        dict
        {
           keyword  entry with missing semi-colon
        }

  will be flagged as 'underflow', since it parses through the '}' but
  did not open with it.

Max monitoring depth is 60 levels of nesting, to avoid incurring any
memory allocation.
2018-04-25 09:55:00 +02:00
76cb38fbc7 CONFIG: adjust make scripts for darwin
- handling of dead links (find -L -delete unsupported)

- remove ignore case flag on 's/../../i' used in have_scotch script.
  It is unneeded and not tolerated by Darwin's sed.

- avoid embedded comments in EXE_INC (Make/options files), which do
  not work well with the OSX LLVM cpp.
  It strips out the comments but also removes the continuation char.

STYLE: adjust notes about paraview library locations
2018-04-24 21:20:06 +02:00
0dfda5f796 COMP: fix Darwin size ambiguities
- size ambiguity for Foam::min(string::size_type, label)

- stream operators for int16/uint16 which are needed for mode_t (Darwin)
2018-04-24 18:03:42 +02:00
7bb7f1b352 ENH: overset: extraneous exchange. Fixes #803. 2018-04-25 09:20:57 +01:00
b18a9d73c4 ENH: checkMesh: near-zero vol cell. Fixes #808. 2018-04-23 17:54:16 +01:00
366d757937 COMP: ConstCirculator: missing include 2018-04-23 17:50:50 +01:00
2768500d57 CONFIG: remove WM_LINK_LANGUAGE env variable (always c++)
- was somewhat redundant in wmake/rules/General/general anyhow
2018-04-24 14:59:47 +02:00
b4d38ab468 ENH: improve handling of ThirdParty packages
- generalize some of the library extensions (.so vs .dylib).
  Provide as wmake 'sysFunctions'

- added note about unsupported/incomplete system support

- centralize detection of ThirdParty packages into wmake/ subdirectory
  by providing a series of scripts in the spirit of GNU autoconfig.
  For example,

      have_boost, have_readline, have_scotch, ...

  Each of the `have_<package>` scripts will generally provide the
  following type of functions:

      have_<package>          # detection
      no_<package>            # reset
      echo_<package>          # echoing

  and the following type of variables:

      HAVE_<package>          # unset or 'true'
      <package>_ARCH_PATH     # root for <package>
      <package>_INC_DIR       # include directory for <package>
      <package>_LIB_DIR       # library directory for <package>

  This simplifies the calling scripts:

      if have_metis
      then
          wmake metisDecomp
      fi

  As well as reducing clutter in the corresponding Make/options:

      EXE_INC = \
          -I$(METIS_INC_DIR) \
          -I../decompositionMethods/lnInclude

      LIB_LIBS = \
          -L$(METIS_LIB_DIR) -lmetis

  Any additional modifications (platform-specific or for an external build
  system) can now be made centrally.
2018-04-24 14:51:19 +02:00
672f0574e2 COMP: resolve signed/unsigned long ambiguity on Darwin 2018-04-24 13:17:22 +02:00
29c020f5b3 COMP: sinclude platform-specific CGAL rules
- permits platform-specific override of the general CGAL rules
2018-04-24 09:26:50 +02:00
5af5bfa1a5 ENH: error handling for Ragel STL parsing
- also simplify parsing by accepting any case on keywords.
  This implies that something like "sOlId", "SoLiD" will also
  be accepted. Although nobody should really count on this rather
  generous behaviour, it does simplfy the state machine even further.
2018-04-24 09:15:50 +02:00
591a1a0c68 ENH: improve memory allocations for explicit connections (issue #805)
STYLE: change access methods names in mesh wave algorithms

- nUnvisitedCells(), nUnvisitedFaces() etc instead of
  getUnsetCells(), getUnsetFaces()

- simplify some coding with range-for
2018-04-23 10:37:24 +02:00
857eed5b51 ENH: change findCell mode in meshRefinement (issue #805)
- in 2.4.x the general default for polyMesh::findCell was FACE_DIAG_TRIS,
  but this was changed to CELL_TETS for better handling of concave
  cells.

- in snappyHexMesh meshRefinement, findCell is used to define
  locations in mesh and cells for closer refinement. Using CELL_TETS
  causes an octree rebuild when the mesh has changed and this adds
  considerable overhead. For this operation, the faster FACE_DIAG_TRIS
  mode can be used instead.
2018-04-23 09:37:24 +02:00
1f25c5975d BUG: wmkdepend finds 'include' in multi-line comments (closes #784)
- the previous grammar used

      '/*' { fgoto comment; }

  to start processing multi-line comments and

      comment := any* :>> '*/' @{ fgoto main; };

  as a finishing action to return to normal lexing, but seemed not to
  have been triggered properly.

  Now simply trap in a single rule:

      '/*' any* :>> '*/';             # Multi-line comment

STYLE: use more compact dnl (delete to newline)

  OLD:   [^\n]* '\n'
  NEW:   (any* -- '\n') '\n'

  eliminates the intermediate state
2018-04-20 14:41:32 +02:00
694004ad41 ENH: finiteArea - integrated d2dt2 scheme from Alexander Kabat vel Job 2018-04-20 15:04:47 +01:00
4a2afb85d6 BUG: Added missing oriented flag to meshPhi 2018-04-19 12:08:19 +01:00
b5c7e43c84 DEFEATURE: remove foamToTecplot360
- the API-versioned calls (eg, tecini142, teczne142, tecpoly142, tecend142),
  the limited availability of the SDK and lack of adequate testing make
  proper maintenance very difficult.
2018-04-19 14:51:33 +02:00
6b8f037333 STYLE: provide number of unreachable blocked cells
- in debug, also report the first 10 cell ids

- format header documentation
2018-04-05 16:41:52 +02:00
12157acf07 STYLE: suppress fatal errors for indexedOctree debug=1
- these errors are mostly rounding related (when a point is located on
  the edge of a bounding box instead of being fully inside it).

  For debug > 1, continue to treat as fatal.
2018-04-04 18:14:34 +02:00
0cfe88f2e4 CONFIG: update VTK version to use the latest version
- also see issue #793 (paraview version)
2018-04-19 10:08:09 +02:00
0e82e883f0 ENH: make decomposition methods const (issue #796) 2018-04-19 09:48:11 +02:00
ef922b6917 STYLE: adjust codeTemplates to use '= delete' 2018-04-19 07:38:31 +02:00
367ddb8f05 Merge branch 'style-iostream-option' into 'develop'
Style iostream option

See merge request Development/OpenFOAM-plus!199
2018-04-18 17:23:29 +01:00
756502da87 COMP: listOutput: make compatible with stl include files 2018-04-18 11:35:30 +01:00
af3f93c057 ENH: snappyHexMeshDict: changed 17x to 1.7.x 2018-04-18 11:32:59 +01:00
21369e4702 COMP: correction for Clang 2018-04-18 13:33:09 +01:00
ed4564a805 STYLE: Added backwards compatibility for old keywords 2018-04-18 13:32:49 +01:00
622cde7e31 COMP: some legacy rendering removed for VTK 9 2018-04-18 13:59:35 +02:00
a1b4b20bf4 ENH: surfaceNoise - only write on the master process 2018-04-17 16:00:03 +01:00
53ae09ad04 STYLE: relocate stream allocators to Detail namespace 2018-04-13 10:24:22 +02:00
4cf932b230 STYLE: reorder/refactor stream format options
- IOstreamOption class to encapsulate format, compression, version.
  This is ordered to avoid internal padding in the structure, which
  reduces several bytes of memory overhead for stream objects
  and other things using this combination of data.

  Byte-sizes:
      old  IOstream:48  PstreamBuffers:88  Time:928
      new  IOstream:24  PstreamBuffers:72  Time:904

====

STYLE: remove support for deprecated uncompressed/compressed selectors

In older versions, the system/controlDict used these types of
specifications:

    writeCompression uncompressed;
    writeCompression compressed;

As of DEC-2009, these were deprecated in favour of using normal switch
names:

    writeCompression true;
    writeCompression false;
    writeCompression on;
    writeCompression off;

Now removed these deprecated names and treat like any other unknown
input and issue a warning. Eg,

   Unknown compression specifier 'compressed', assuming no compression

====

STYLE: provide Enum of stream format names (ascii, binary)

====

COMP: fixed incorrect IFstream construct in FIREMeshReader

- spurious bool argument (presumably meant as uncompressed) was being
  implicitly converted to a versionNumber. Now caught by making
  IOstreamOption::versionNumber constructor explicit.

- bad version specifier in changeDictionary
2018-04-12 20:32:20 +02:00
a230e8d408 STYLE: Correcting typos 2018-03-28 17:14:16 +01:00
3a569c9fd5 ENH: streamLineBase - construct with curve distance 2018-03-27 11:01:06 +01:00
801fb7bd5f ENH: streamLine/wallBoundedStreamLine - minor refactoring to enable new derived functionality 2018-03-27 11:00:12 +01:00
ee2ca640d4 BUG: fft - corrected multi-D fft regression when moving to fftw 2018-03-22 16:36:11 +00:00
5037634bd1 CONFIG: return instead of exit in lib-dir script
- affected csh users
2018-04-17 11:45:44 +02:00
aeef1cd4df BUG: wmkdepend parser missing some files
- adjusted grammar to be more precise
2018-04-17 09:20:01 +02:00
ea71484efa ENH: add alternative STL ASCII parsers
- In addition to the traditional Flex-based parser, added a Ragel-based
  parser and a handwritten one.

  Some representative timings for reading 5874387 points (1958129 tris):

      Flex   Ragel   Manual
      5.2s   4.8s    6.7s         total reading time
      3.8s   3.4s    5.3s         without point merging
2018-04-16 10:20:45 +02:00
a8da75d27e STYLE: support wordRe ICASE enum
- better naming consistency with std::regex_constants::icase

- deprecate older NOCASE, but leave supported
2018-04-13 10:42:42 +02:00
b29a0119de ENH: minor code tidying, machine simplifications for wmkdepend parser 2018-04-13 16:17:39 +02:00
c8d0e5ae03 COMP: single-precision ambiguity (fixes #799) 2018-04-12 18:50:58 +02:00
48b52ac8ee SUBMODULE: minor updates for avalanche and cfmesh 2018-04-12 16:32:02 +02:00
c2da3424bb SUBMODULE: catalyst function object
- now uses current OpenFOAM code level

- added initial catalyst script for insitu processing of overset
2018-04-12 16:25:42 +02:00
428f746c68 STYLE: include temperature (T) in the default paraFoam pre-selection 2018-04-12 13:51:51 +02:00
f056e59db6 CONFIG: simplify paraview lib path for 5.5 (issue #793)
- note that the python paths also seem to be treated differently
2018-04-12 12:39:30 +02:00
de72a04aeb ENH: make it easier to switch between the various make dependencies programs.
- However, the new ragel-based parser is much faster
  than the others, and does not cause 'too many open files' error
  that the flex-based parser does (issue #784).

  The timings (using src/sampling as being somewhat representative)

    $ wclean; wmakeLnInclude -u .; time wmake -s dep

        3.4s  wmkdepend (ragel) [now default]
        5.7s  wmkdep (flex)
        6.1s  cpp -M

- The makeDepend script is for testing purposes only, but could used as
  a hook for other dependency generation systems (eg, ninja).
  It simply wraps 'cpp -M' in a form that is calling compatible with
  wmkdepend.

BUG: wmkdepend parser was missing optional leading space on #include match

STYLE: use -G2 (goto-based) option for wmkdepend state machine

- the machine is compact with few states and lends itself to this
2018-04-12 10:14:03 +02:00
5f88e4271e ENH: allow "<case>", "<system>" ... in the string expansions (issue #792)
- the expansions were previously required as slash to follow, but
  now either are possible.

    "<case>", "<case>/" both yield the same as "$FOAM_CASE" and
    will not have a trailing slash in the result. The expansion of
    "$FOAM_CASE/" will however have a trailing slash.

- adjust additional files using these expansions
2018-04-11 23:10:49 +02:00
fc5895f1df STYLE: rename toLabel, toLabelRange classes -> labelOp, labelRangeOp
- make purpose as functors _slightly_ clearer.

- base definition removed for stricter enforcement of the specialization
  requirement.
2018-04-11 22:48:03 +02:00
97dc9f4029 EHN: make signal verbosity an optional calling argument. 2018-04-11 21:35:02 +02:00
297570de53 COMP: some low-level darwin-related patches
- a partial selection from https://github.com/mrklein/openfoam-os-x
  with adjustments. The primary purpose is to reduce header-level
  incompatibilities and to provide a common set of make rules to allow
  easier patching (or re-integration).
2018-04-09 12:48:55 +02:00
d2b1b1cdc0 ENH: paraFoam: catch read errors. Fixes #798. 2018-04-12 15:12:04 +01:00
cb14a2020b ENH: snappyHexMesh: exclude feature angle analysis. See #699. 2018-04-11 10:58:46 +01:00
1fff0109d1 STYLE: adjust config examples 2018-04-11 12:17:56 +02:00
6321ba8f45 Merge branch 'feature-wmake' into 'develop'
Feature wmake

See merge request Development/OpenFOAM-plus!198
2018-04-11 12:35:10 +01:00
1676bd4003 ENH: replace flex-based wmkdep with ragel-based parser (issue #784)
This is similar to efforts (Feb 2010) but using ragel
  (https://en.wikipedia.org/wiki/Ragel) instead of the now defunct
  coco/r. The modified commit message from 2010:

ENH: add C++-based wmkdepend parser (uses ragel grammar).

- This avoids dependency on lex/flex and provides better encapsulation
  for buffer switching. As a result, the maximum number of open files
  only corresponds to the include depth.

--

Note that the flex source and rules are still available, but are not
deactivate (see wmake/rules/General/transform)
2018-04-11 12:31:36 +02:00
a9741cea79 ENH: additional text expansion shortcuts (issue #792)
Support the following expansions when they occur at the start of a
string:

    Short-form       Equivalent
    =========       ===========
      <etc>/          ~OpenFOAM/   (as per foamEtcFile)
      <case>/         $FOAM_CASE/
      <constant>/     $FOAM_CASE/constant/
      <system>/       $FOAM_CASE/system/

These can be used in fileName expansions to improve clarity and reduce
some typing

     "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
2018-04-10 13:41:41 +02:00
d814bce3ee CONFIG: adjust paraview lib path for 5.5 (issue #793)
ParaView 5.4 and older:
    - requires lib/paraview-X.X only

  ParaView 5.5:
    - requires lib/
    - does not appear to require lib/paraview-X.X, but retained for simplicity

- Change default version to paraview-5.5.0 for testing purposes
2018-04-11 11:01:17 +02:00
6d8be52294 STYLE: provide caseDicts for the catalyst function object 2018-04-10 14:23:56 +02:00
b85d0b5cb7 ENH: provide Rand48 as generator in the expected C++11 form
- this removes an OS-specific dependency (eg, drand48_r is not POSIX)
  and allows easier use of other random number generators.

  The Rand48 generator has identical behaviour and period as the
  lrand48() library routine, but holds its own seed and state
  (which makes it re-entrant) and can be combined with other
  random distributions.

  However, when using the modified form to obtain scalar values
  they will not be identical to what drand48() yields.

  This is because drand48() uses the raw 48-bit values to directly
  set the mantissa of an IEEE double where as the newer distribution
  normalizes based on the 32-bit value.

STYLE: simplify code in Random::shuffle and use Swap
2018-04-09 11:08:34 +02:00
e4f5471edf ENH: improve robustness of fileStat class (issue #794)
- quick ignore of empty filenames.

- relocated some implementation details from POSIX.C to the
  fileStat class, where they make more sense.
2018-04-11 10:24:27 +02:00
a11b93bee1 Merge remote-tracking branch 'origin/master' into develop 2018-04-11 10:35:35 +02:00
52cf2d68c4 STYLE: avoid 'sed -i' in wmake rules
- less efficient and less portable than using single-pass processing
2018-04-08 22:15:21 +02:00
0e669fcb39 ENH: Editing header description 2018-04-05 08:39:03 -07:00
bf4125b248 ENH: New outletMachNumberPressure BC. It sets pressure at outlet
keeping chocked conditions of Mach number.
This BC can work in two modes, chocked or non-chocked. In the
chocked mode the Ma is an input. In the non-chocked mode
the Ma is calculated from model inputs.
2018-04-03 16:39:07 -07:00
c52ee82f79 COMP: missing bracket 2018-04-03 21:51:22 +02:00
bbf8dc18f6 Merge branch 'style-returns' into 'develop'
STYLE: use 'return nullptr' for empty autoPtr/tmp returns

See merge request Development/OpenFOAM-plus!197
2018-04-03 20:32:52 +01:00
5ac02c6809 Merge branch 'style-dimensioned' into 'develop'
more consistent use of dimensioned Zero

See merge request Development/OpenFOAM-plus!196
2018-04-03 20:30:31 +01:00
06035b8a30 Merge branch 'feature-catalyst' into 'develop'
Feature catalyst

See merge request Development/OpenFOAM-plus!195
2018-04-03 20:22:48 +01:00
795bdfb2f1 SUBMODULE: catalyst function object 2018-04-03 19:07:35 +02:00
c0498e731a ENH: consolidate some common methods for paraview + catalyst 2018-04-03 18:42:35 +02:00
5c77932513 TUT: test parallel for sphereTransport tutorial 2018-04-03 16:43:05 +02:00
3dbe6ef81f ENH: downgrade to warning and exit if MPI_Finalized is called twice.
- this can occur when OpenFOAM is run in serial mode, but connects to
  a program that starts/stops MPI on its own.
2018-04-03 16:35:03 +02:00
55d9eb206d STYLE: missing space in checkMesh (fixes #767) 2018-04-03 09:40:04 +02:00
b85b261348 STYLE: string::assign instead of string::operator= in string sub-classes
- makes the meaning clearer
2018-04-03 08:31:59 +02:00
c2f0864f68 ENH: remove size limit when reading verbatim strings (issue #785) 2018-04-03 08:16:20 +02:00
b854ce228e ENH: wmkdep: better error message. See #784. 2018-03-28 16:39:05 +01:00
795ece8bb7 ENH: writeFile: check for opening status. Fixes #783. 2018-03-28 11:45:28 +01:00
0c1163c182 Merge branch 'feature-profiling' into 'develop'
ENH: reduce profiling overhead (issue #764)

See merge request Development/OpenFOAM-plus!194
2018-03-27 16:39:02 +01:00
2c3befe090 STYLE: inconsistent field naming for hexRef8Data 2018-03-27 11:46:47 +02:00
d901b4f450 ENH: reduce profiling overhead (issue #764)
- avoid clockTime in favour of clockValue.

- avoid allocations when profiling is not active.

- replace hashing with manual pointer lists
2018-03-26 21:38:47 +02:00
e0d075ff89 Merge branch 'feature-ptrlist' into 'develop'
Updated/modified PtrList implementation

See merge request Development/OpenFOAM-plus!193
2018-03-26 18:41:42 +01:00
db76bbbac0 TUT: clean out old tutorial build directories 2018-03-26 15:54:31 +02:00
36719bf55b STYLE: consistent lookupOrDefault template parameters
- in many cases can just use lookupOrDefault("key", bool) instead of
  lookupOrDefault<bool> or lookupOrDefault<Switch> since reading a
  bool from an Istream uses the Switch(Istream&) anyhow

STYLE: relocated Switch string names into file-local scope
2018-03-26 09:09:09 +02:00
568fbf727d STYLE: simplify VectorSpaceOps template looping
- this is a continuation of commit ba92e75215 with simpler
  template logic.
2018-03-22 14:03:31 +01:00
5d008f7a18 ENH: improvements for PtrList, UPtrList and new PtrDynList container
- improve internal handling to permit deriving resizable containers
  (eg, PtrDynList).

- include '->' iterator dereferencing

- Only append/set non-const autoPtr references. This doesn't break
  existing code, but makes the intention more transparent.
2018-03-22 01:13:38 +01:00
35d348c00d BUG: guard against potential wasted memory in DynamicField
- specialize transfer and swap to ensure allocated capacity isn't
  forgotten.
2018-03-21 15:30:14 +01:00
018124e3bf STYLE: use 'return nullptr' for empty autoPtr/tmp returns
- both autoPtr and tmp are defined with an implicit construct from
  nullptr (but with explicit construct from a pointer to null).
  Thus is it safe to use 'nullptr' when returning an empty autoPtr or tmp.
2018-03-21 09:31:09 +01:00
4cb763f9d2 STYLE: make null constructed lists constexpr, noexcept
- can assist the compiler in producing tighter code.
2018-03-19 13:53:28 +01:00
ca15b5779d Merge remote-tracking branch 'origin/master' into safe-develop 2018-03-22 23:47:20 +01:00
e53384362c ENH: added surfaceFieldValue uniformity operation 2018-03-22 22:38:34 +01:00
acfa0d3ed1 ENH: add bounding to surfMeshes variant of sampled planes (issue #714) 2018-03-22 14:47:53 +01:00
2db4b0867e CONFIG: consolidate C++ flags per compiler type
- easier to ensure that flags are consistent
2018-03-21 11:50:57 +01:00
936d897768 ENH: ConeNozzleInjection - added ability for the injector to move
The set of injectionMethods has been extended to include a new option:

    injectionMethod movingPoint;

The position is then read as a TimeFunction1 entry, e.g. for a 'table'
type:

    position        table
    (
        (0 (-0.009 0.0995 0))
        (1e-3 (0.009 0.0995 0))
    );

where the list corresponds to the tuples (time (position)), and the time
is relative to the start of injection (SOI)
2018-03-21 16:08:52 +00:00
a0a039ad57 ENH: armclang: new compiler type. Fixes #779. 2018-03-21 12:08:44 +00:00
710117fe2b ENH: checkMesh: output cellRegion field. Fixes #763. 2018-03-21 11:41:57 +00:00
46aac34956 ENH: snappyHexMeshDict: improved comment 2018-03-21 11:01:30 +00:00
872ac6c6c0 Merge remote-tracking branch 'origin/master' into develop 2018-03-20 10:52:54 +00:00
f0435beb9c Merge remote-tracking branch 'origin/master' into develop 2018-03-16 23:38:29 +01:00
2f86cdc712 STYLE: more consistent use of dimensioned Zero
- when constructing dimensioned fields that are to be zero-initialized,
  it is preferrable to use a form such as

      dimensionedScalar(dims, Zero)
      dimensionedVector(dims, Zero)

  rather than

      dimensionedScalar("0", dims, 0)
      dimensionedVector("zero", dims, vector::zero)

  This reduces clutter and also avoids any suggestion that the name of
  the dimensioned quantity has any influence on the field's name.

  An even shorter version is possible. Eg,

      dimensionedScalar(dims)

  but reduces the clarity of meaning.

- NB: UniformDimensionedField is an exception to these style changes
  since it does use the name of the dimensioned type (instead of the
  regIOobject).
2018-03-16 10:24:03 +01:00
6a541ccc92 COMP: avoid attempted auto-vivify with PackedBoolList []
- also ensure fewer side-effects from inplaceReorder

- provide ListOps::reorder especially for PackedList and PackedBoolList
  since they behave differently from regular lists.
2018-03-15 15:20:00 +01:00
d17bc72585 ENH: consistency of HashSet setMany(), insertMany() with packed-list version
- this also provides a better separation of the intent
  (ie, inserting a single value, or inserting multiply values)
2018-03-14 21:08:29 +01:00
5d1fb23555 ENH: code reduction in PackedList, PackedBoolList (issue #751)
- eliminate iterators from PackedList since they were unused, had
  lower performance than direct access and added unneeded complexity.

- eliminate auto-vivify for the PackedList '[] operator.
  The set() method provides any required auto-vivification and
  removing this ability from the '[]' operator allows for a lower
  when accessing the values. Replaced the previous cascade of iterators
  with simpler reference class.

PackedBoolList:

- (temporarily) eliminate logic and addition operators since
  these contained partially unclear semantics.

- the new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

- more consistent use of PackedBoolList test(), set(), unset() methods
  for fewer operation and clearer code. Eg,

      if (list.test(index)) ...    |  if (list[index]) ...
      if (!list.test(index)) ...   |  if (list[index] == 0u) ...
      list.set(index);             |  list[index] = 1u;
      list.unset(index);           |  list[index] = 0u;

- deleted the operator=(const labelUList&) and replaced with a setMany()
  method for more clarity about the intended operation and to avoid any
  potential inadvertent behaviour.
2018-03-13 08:32:40 +01:00
23b6ea4b85 ENH: provide iterators for IndirectList, UIndirectList
- consistency with other containers.
  Allows range-for, enables various std algorithms, and can be used
  with ListOp::create() with an iterator range.
2018-03-07 17:50:34 +01:00
77338c8bd0 ENH: reduce overhead for clockTime, cpuTime
- clockValue class for managing the clock values only, with a null
  constructor that does not query the system clock (can defer to later).
  Can also be used directly for +/- operations.

- refactor clockTime, cpuTime, clock to reduce storage.
2018-03-15 10:01:51 +01:00
fb4c99b698 STYLE: minor cleanup of contiguous (issue #769) 2018-03-14 21:01:44 +01:00
5542ff6351 STYLE: derive always/never predicates from std types
- make constexpr noexcept
2018-03-14 18:04:42 +01:00
11027b8df6 COMP: Correction for clang 2018-03-16 11:12:47 +00:00
63f60cef59 BUG: Reinstated regex functionality for particle local interaction 2018-03-16 11:01:04 +00:00
bac943e6fc ENH: new bitSet class and improved PackedList class (closes #751)
- The bitSet class replaces the old PackedBoolList class.
  The redesign provides better block-wise access and reduced method
  calls. This helps both in cases where the bitSet may be relatively
  sparse, and in cases where advantage of contiguous operations can be
  made. This makes it easier to work with a bitSet as top-level object.

  In addition to the previously available count() method to determine
  if a bitSet is being used, now have simpler queries:

    - all()  - true if all bits in the addressable range are empty
    - any()  - true if any bits are set at all.
    - none() - true if no bits are set.

  These are faster than count() and allow early termination.

  The new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

  The new find_first(), find_last(), find_next() methods provide a faster
  means of searching for bits that are set.

  This can be especially useful when using a bitSet to control an
  conditional:

  OLD (with macro):

      forAll(selected, celli)
      {
          if (selected[celli])
          {
              sumVol += mesh_.cellVolumes()[celli];
          }
      }

  NEW (with const_iterator):

      for (const label celli : selected)
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

      or manually

      for
      (
          label celli = selected.find_first();
          celli != -1;
          celli = selected.find_next()
      )
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

- When marking up contiguous parts of a bitset, an interval can be
  represented more efficiently as a labelRange of start/size.
  For example,

  OLD:

      if (isA<processorPolyPatch>(pp))
      {
          forAll(pp, i)
          {
              ignoreFaces.set(i);
          }
      }

  NEW:

      if (isA<processorPolyPatch>(pp))
      {
          ignoreFaces.set(pp.range());
      }
2018-03-07 11:21:48 +01:00
4f880ba8ea ENH: timeVaryingMappedFixedValue - added option to use an alternate points file name 2018-02-23 14:41:01 +00:00
65fd9b8b4b ENH: turbulenceFields FO - added nuTilda and turbulence length scale 2018-02-23 14:39:51 +00:00
6a024a7b71 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-03-15 08:13:56 -07:00
949a047f27 BUG: Correcting dictionary constructor for swirlFanVelocity 2018-03-15 08:09:07 -07:00
bf74bf32fd Merge branch 'feature-shortestPathSet' into 'develop'
Feature shortest path set

See merge request Development/OpenFOAM-plus!151
2018-03-15 10:18:38 +00:00
2386de9bf4 Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2018-03-15 10:03:22 +00:00
e10575ee31 COMP: Allwmake: link order. Fixes #765. 2018-03-15 08:51:33 +00:00
e92aa8fce4 ENH: reduced amount seeding in regionSplit
- now only seed boundary faces and an internal face of cell that itself
  has a blocked face.
2018-03-14 16:21:58 +01:00
520c14c136 ENH: add meshTools polyFields
- provides a simple means of writing an internal dimensioned field
  when fvMesh is not available (eg, during mesh creation).
2018-03-14 13:04:22 +01:00
a6fb0436d5 BUG: fvMotionSolvers: fix dimensions. Fixes #765. 2018-03-14 11:07:56 +00:00
ac027daf36 STYLE: pointDisplacement: fix header 2018-03-14 11:05:37 +00:00
5a816c45a7 ENH: fvMotionSolvers: add fvOptions. Fixes #765. 2018-03-12 14:14:48 +00:00
239c96bf28 ENH: checkMesh: minTetVolume field. Fixes #763. 2018-03-12 09:29:17 +00:00
69ebe127a8 ENH: shm: feature angle. See #699. 2018-03-08 15:14:42 +00:00
3269ba0df9 ENH: shm: Parallel consistent extrusion. Fixes #759. 2018-03-08 15:07:24 +00:00
cb03d0bcf4 STYLE: localPointRegion: minor comment 2018-03-08 15:00:45 +00:00
d1b4471141 BUG: snappyHexMesh: make corner-point detection compatible with cutting 2018-02-21 11:15:38 +00:00
da26c3985e SUBMODULE: avalanche update - movable references in polyMesh constructor 2018-03-07 18:08:37 +01:00
451f8e0357 Merge remote-tracking branch 'origin/master' into develop 2018-03-07 18:08:07 +01:00
9670bf8220 Merge branch 'feature-memory-containers' into 'develop'
Feature memory containers

See merge request Development/OpenFOAM-plus!192
2018-03-07 16:58:10 +00:00
664685f7fe CONFIG: bump API version number to 1803 to account for removal of Xfer
- primary points for an external user are the polyMesh constructor

- add config info for gcc-7.3.0

COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
2018-03-05 20:18:26 +01:00
3d608bf06a ENH: remove reliance on the Xfer class (issue #639)
This class is largely a pre-C++11 holdover. It is now possible to
simply use move construct/assignment directly.

In a few rare cases (eg, polyMesh::resetPrimitives) it has been
replaced by an autoPtr.
2018-03-05 13:28:53 +01:00
081783db6c ENH: add Xfer rvalue(), valid() methods
- rvalue() is a (transitional) means of converting Xfer content to a
  reference for move construct, move assign semantics.

- valid() method for consistency with autoPtr and tmp classes
2018-02-28 09:30:31 +01:00
7e84380783 GIT: corrected incorrect merge artifacts
STYLE: simplified output logic, reduced duplicate code in CompactIOList
2018-02-27 11:48:34 +01:00
57291e8692 STYLE: use autoPtr::New and tmp::New for simple return types 2018-02-26 14:00:30 +01:00
52b36f84b5 ENH: cleanup tmp class (issue #639)
Improve alignment of its behaviour with std::shared_ptr

  - element_type typedef
  - swap, reset methods

* additional reference access methods:

cref()
    returns a const reference, synonymous with operator().
    This provides a more verbose alternative to using the '()' operator
    when that is desired.

        Mnemonic: a const form of 'ref()'

constCast()
    returns a non-const reference, regardless if the underlying object
    itself is a managed pointer or a const object.
    This is similar to ref(), but more permissive.

        Mnemonic: const_cast<>

    Using the constCast() method greatly reduces the amount of typing
    and reading. And since the data type is already defined via the tmp
    template parameter, the type deduction is automatically known.

    Previously,

        const tmp<volScalarField>& tfld;

        const_cast<volScalarField&>(tfld()).rename("name");
        volScalarField& fld = const_cast<volScalarField&>(tfld());

    Now,

        tfld.constCast().rename("name");
        auto& fld = tfld.constCast();

--

BUG: attempts to move tmp value that may still be shared.

- old code simply checked isTmp() to decide if the contents could be
  transfered. However, this means that the content of a shared tmp
  would be removed, leaving other instances without content.

* movable() method checks that for a non-null temporary that is
  unique (not shared).
2018-02-26 12:05:00 +01:00
660f3e5492 ENH: cleanup autoPtr class (issue #639)
Improve alignment of its behaviour with std::unique_ptr

  - element_type typedef
  - release() method - identical to ptr() method
  - get() method to get the pointer without checking and without releasing it.
  - operator*() for dereferencing

Method name changes

  - renamed rawPtr() to get()
  - renamed rawRef() to ref(), removed unused const version.

Removed methods/operators

  - assignment from a raw pointer was deleted (was rarely used).
    Can be convenient, but uncontrolled and potentially unsafe.
    Do allow assignment from a literal nullptr though, since this
    can never leak (and also corresponds to the unique_ptr API).

Additional methods

  - clone() method: forwards to the clone() method of the underlying
    data object with argument forwarding.

  - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)

STYLE: avoid implicit conversion from autoPtr to object type in many places

- existing implementation has the following:

     operator const T&() const { return operator*(); }

  which means that the following code works:

       autoPtr<mapPolyMesh> map = ...;
       updateMesh(*map);    // OK: explicit dereferencing
       updateMesh(map());   // OK: explicit dereferencing
       updateMesh(map);     // OK: implicit dereferencing

  for clarity it may preferable to avoid the implicit dereferencing

- prefer operator* to operator() when deferenced a return value
  so it is clearer that a pointer is involve and not a function call
  etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
2018-02-26 12:00:00 +01:00
fc92d30e74 ENH: improvements for labelRange
- constexpr, noexcept.
  Added an 'at()' method for returning an iterator within the range
  and changed operator()(label) to have behaviour as per found().
  This makes the labelRange usable as a unary predicate.

- added templated conversion class 'toLabelRange'

- add range() method to polyPatch and surfZone classes, and corresponding
  templated conversion functors.
  For example,

      auto patchDims = ListOps::create<labelRange>
      (
          mesh.boundaryMesh(),
          toLabelRange<polyPatch>()
      );

  to create a List<labelRange> representing the patch extents.
2018-03-04 20:30:34 +01:00
bcabe827f6 ENH: dedicated HashSetOps, HashTableOps namespaces
- relocated HashSetPlusEqOp and HashTablePlusEqOp to
  HashSetOps::plusEqOp and HashTableOps::plusEqOp, respectively

- additional functions for converting between a labelHashSet
  and a PackedBoolList or List<bool>:

  From lists selections to labelHashSet indices:

      HashSetOps::used(const PackedBoolList&);
      HashSetOps::used(const UList<bool>&);

  From labelHashSet to list forms:

      PackedBoolList bitset(const labelHashSet&);
      List<bool> bools(const labelHashSet&);
2018-03-06 11:41:34 +01:00
15f7260884 ENH: cleanup of ListOps, ListListOps. Adjustments to List, PackedList.
- relocated ListAppendEqOp and ListUniqueEqOp to ListOps::appendEqOp
  and ListOps::UniqueEqOp, respectively for better code isolation and
  documentation of purpose.

- relocated setValues to ListOps::setValue() with many more
  alternative selectors possible

- relocated createWithValues to ListOps::createWithValue
  for better code isolation. The default initialization value is itself
  now a default parameter, which allow for less typing.

  Negative indices in the locations to set are now silently ignored,
  which makes it possible to use an oldToNew mapping that includes
  negative indices.

- additional ListOps::createWithValue taking a single position to set,
  available both in copy assign and move assign versions.
  Since a negative index is ignored, it is possible to combine with
  the output of List::find() etc.

STYLE: changes for PackedList

- code simplication in the PackedList iterators, including dropping
  the unused operator() on iterators, which is not available in plain
  list versions either.

- improved sizing for PackedBoolList creation from a labelUList.

ENH: additional List constructors, for handling single element list.

- can assist in reducing constructor ambiguity, but can also helps
  memory optimization when creating a single element list.
  For example,

    labelListList labels(one(), identity(mesh.nFaces()));
2018-03-01 14:12:51 +01:00
ffd7b00ad5 ENH: fvMatrix::setReferences() single value variant 2018-03-02 13:27:34 +01:00
330b113abc BUG: incorrect cellId check in fvMatrix::setReferences() 2018-03-02 13:17:54 +01:00
53ab527b45 ENH: added constexpr, noexcept for bool, Switch
- rationalized some method naming.
  Eg, c_str() instead of asText()
2018-03-03 20:32:49 +01:00
13ea73c31c ENH: cleanup, extend zero/one classes
- constexpr, noexcept on various bits

- addition of a 'one::minus' class that returns '-1' instead of '1'.
  There are no additional operations defined for this class,
  but it can be used in various places to signal alternative behaviour
  such as "initialize to a negative or other invalid value"
2018-03-02 10:04:56 +01:00
b4703f4a08 ENH: pre-cleanup of Xfer class (issue #639)
- This class is largely a pre-C++11 holdover, prior to having movable
  references.

- align internals with autoPtr instead of always unconditionally
  allocating memory. The valid() method can be used to check for a null
  pointer.

- Consolidate into a single file, in anticipation of future removal.
2018-03-04 21:38:33 +01:00
9cd9e812d2 COMP: avoid compiler warning 'assuming signed overflow does not occur' 2018-02-22 14:21:16 +01:00
a843054b7a ENH: more generous range check for UList<bool>::operator[] specialization
- now also handles negative indices without issue.
  This increases its robustness for predicate type of use.
2018-02-28 09:07:13 +01:00
799924e79a BUG: inverted logic in UList::operator== (introduced by a0148ac095) 2018-02-28 08:48:13 +01:00
46e73fe4dc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-23 08:18:09 -08:00
fe2e75c7dc ENH: Adding swirlFanVelocity to files in finiteVolume and change fanFvPatch operation 2018-02-23 08:16:55 -08:00
3371ed8fac Merge branch 'feature-linked-lists' into 'develop'
several improvements for linked-lists

See merge request Development/OpenFOAM-plus!177
2018-02-23 10:34:42 +00:00
3a4b92c4b2 STYLE: remove deprecated and unused ListOps
- deprecated MAR-2017

    subset(const UList<T>& select, const T& value, const ListType&);
    inplaceSubset(const UList<T>& select, const T& value, ListType&);

  The subsetList/inplaceSubsetList variants with a unary predicate
  provide more flexible and robuster solutions.

- deprecated MAR-2017

    initList(const T[mRows]);
    initListList(const T[mRows][nColumns]);

  Required prior to the addition of constructors with
  std::initializer_list
2018-02-22 12:24:48 +01:00
37e248c74b STYLE: consistent use of wordHashSet instead of HashSet<word>
- the wordHashSet typedef is always available when HashSet has been
  included.

- use default HashTable key (word) instead of explicitly mentioning it
2018-02-22 11:19:47 +01:00
f95f8bf512 COMP: wmake/wmakePrintBuild -api failed to extract API number 2018-02-22 10:54:16 +01:00
35b3d1c6ff STYLE: provide coordinateSystems names() method for consistency 2018-02-22 10:44:25 +01:00
bdb616de24 SUBMODULE: cfmesh update - using findIndices instead of findStrings 2018-02-22 09:43:56 +01:00
ec38e7a408 ENH: prevent conversion of string to regExp in stringListOps (closes #739)
* For most cases, this conversion would be largely unintentional
  and also less efficient. If the regex is desirable, the caller
  should invoke it explicitly.
  For example,

      findStrings(regExp(str), listOfStrings);

  Or use one of the keyType, wordRe, wordRes variants instead.
  If string is to be used as a plain (non-regex) matcher,
  this can be directly invoked

      findMatchingStrings(str, listOfStrings);

  or using the ListOps instead:

      findIndices(listOfStrings, str);

* provide function interfaces for keyType.
2018-02-22 09:28:03 +01:00
f959927910 ENH: improve consistency of ListOps and stringListOps
- subsetList, inplaceSubsetList with optional inverted logic.

- use moveable elements where possible.

- allow optional starting offset for the identity global function.
  Eg,  'identity(10, start)' vs 'identity(10) + start'
2018-02-21 12:58:00 +01:00
3ee2f3293e STYLE: avoid global findIndex() in favour of UList::find() 2018-02-21 11:50:34 +01:00
c126464d1c ENH: change wordRes to be a List of wordRe instead of a wrapper (issue #259)
- this permits direct storage of a list with additional matcher
  capabilities

- provide wordRes::matcher class for similar behaviour as previously
2018-02-21 10:05:30 +01:00
03b287ed24 COMP: adjust tests to compile with current code base 2018-02-20 17:24:08 +01:00
87b1bbacd8 ENH: support writeLagrangianPositions in redistributePar (issue #702) 2018-02-20 15:22:47 +01:00
0d3d895d4d STYLE: use slash-scoping for foamDictionary usage
Eg, -entry boundaryField/wall2/q  vs. boundaryField.wall2.q

- remove unneeded quoting when calling foamDictionary
2018-02-20 13:13:34 +01:00
fe140cd6c5 TUT: test mode not respected (closes #710)
- now replaced 'if ! isTest' with 'if notTest' for most cases.
2018-02-20 12:54:44 +01:00
63edb6024b STYLE: improve robustness of wall interactions code (issue #737) 2018-02-20 12:19:38 +01:00
ad871a16fc BUG: spray/wall interactions failing in parallel (closes #737)
- should have been limited to non-processor patches only
2018-02-20 11:51:08 +01:00
80fad8483b ENH: add polyBoundaryMesh::nNonProcessor() method
- returns the number of non-processorPolyPatch patches, which is invariant
  across all processors.
2018-02-20 11:41:13 +01:00
8716061a4a ENH: support local InfoSwitch for writeLagrangianPositions (issue #721)
- remove writeLagrangianCoordinates as InfoSwitch, since this is
  something that a regular user should not be able to disable.
2018-02-19 15:03:22 +01:00
d69c26311f STYLE: relocate geometryType enum to cloud class (issue #721) 2018-02-19 12:40:06 +01:00
cbbb9753eb STYLE: consolidate positionsCompat1706 structure (issue #721) 2018-02-19 11:57:57 +01:00
3c35c3535e BUG: Fixing bug in dimensioning variables for parallel case 2018-02-21 15:36:30 -08:00
240e304ba2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-21 10:32:44 -08:00
543ac07774 BUG: Fixing constructors from dictionary to avoid hanging in parallel when patch size is zero 2018-02-21 10:31:49 -08:00
32a854d2e2 ENH: meshStructure: make sense in parallel. Fixes #732. 2018-02-15 09:08:40 +00:00
8033592eb1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-14 10:17:32 +00:00
ad3d5020f7 ENH: foamDictionary. Added comment. Fixes #316. 2018-02-14 10:17:13 +00:00
88f4b6ca8d ENH: optionally limit systemCall function-object to master only (closes #729) 2018-02-09 19:24:31 +01:00
3e3c97397e STYLE: simplify hashing to use struct instead of class
- more consistent with STL practices for function classes.

- string::hash function class now operates on std::string rather
  than Foam::string since we have now avoided inadvertent use of
  string conversion from int in more places.
2018-02-09 15:34:59 +01:00
09a6e94073 BUG: incorrect HashTable / HashSet instances
- Eg instead of using labelHashSet, used HashSet<label> which uses
  the string::hash for hashing. Other places inadvertently using the
  string::hash instead of Hash<label> for hashing.

STYLE: use Map<..> instead of HashTable<.., label, Hash<label>>

- reduces clutter
2018-02-09 09:30:02 +01:00
806b668418 STYLE: two-parameter Foam::name replaced by word::printf (issue #724)
- reduces some ambiguity and clarifies the expected output and
  behaviour.

STYLE: reduce some automatic conversions of char to string
2018-02-08 12:00:54 +01:00
fa8d972796 STYLE: replace HashSet/HashTable xfer with equivalent movable (issue #726)
- avoid confusion by using HashTable::lookup(key, deflt) explicitly
  instead of allowing an operator() version.
2018-02-08 10:52:29 +01:00
e42c228155 ENH: cleanup List constructors (issue #725)
- add copy construct from UList

- remove copy construct from dissimilar types.

  This templated constructor was too generous in what it accepted.
  For the special cases where a copy constructor is required with
  a change in the data type, now use the createList factory method,
  which accepts a unary operator. Eg,

      auto scalars = scalarList::createList
      (
          labels,
          [](const label& val){ return 1.5*val; }
      );
2018-02-08 08:53:14 +01:00
e27e566345 ENH: blockMesh: stabilise multi-surface intersection. Fixes #730. 2018-02-07 17:57:50 +00:00
4432ca2ef1 Merge branch 'feature-primitiveMesh' into 'develop'
BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703.

See merge request Development/OpenFOAM-plus!189
2018-02-07 13:56:34 +00:00
9ede061dfe STYLE: snappyHexMesh: use iterator 2018-02-07 13:53:28 +00:00
7363a01aa3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-01 16:00:37 -08:00
dada835d31 ENH: adding swirlFanVelocity BC for jumpCyclic types
It creates a swirling velocity across a baffle using jumpCyclic for vectors
2018-02-01 15:59:04 -08:00
e2332d6bd2 COMP: better handling of versioned cmake libraries
- sentinel was not working properly when building user-space routines
2018-01-31 08:35:56 +01:00
38803ddcf7 STYLE: use default construct/destroy for surface writers 2018-01-30 11:52:04 +01:00
25adff2503 ENH: improved handling of bounded sampled planes (issue #714)
- now warn about the following:
  * the bounding box does not overlap wih the global mesh
  * plane does not intersect the (valid) bounding box
  * plane does not intersect the global mesh

- add bounding to the "plane" variant of a sampled plane.
2018-01-30 10:15:19 +01:00
e6c1b394cc ENH: additional boundBox methods (issue #714)
-  boundBox::nDim() to assess dimensionality

- boundBox::intersect(const plane&) to test if plane intersects the
  bounding box
2018-01-29 10:07:44 +01:00
1b9aec2a3d CONP: suppress register warnings for clang only 2018-01-30 06:49:32 +01:00
e13f8a38a9 COMP: suppress warning about deprecated register keyword (Flex) 2018-01-29 09:13:28 +01:00
ba92e75215 BUG: array-bound error for SphericalTensor component-wise functions
STYEL: use constexpr for VectorSpaceOps
2018-01-29 08:56:43 +01:00
25339a5b49 ENH: minor cleanup of the Xfer class
- simplify structure, removed unused constuctors.

- transfer from base objects via '=' assignment removed as being too
  non-transparent

- add New factory method with perfect forwarding.
2018-01-26 15:53:57 +01:00
db1c1e89be ENH: avoid xfer on simple data types
- in many places can use move construcors or rely on RVO
2018-01-26 12:50:06 +01:00
fa3acc9955 ENH: make CompactListList swapable and move construct/assignable 2018-01-26 12:19:48 +01:00
a0148ac095 ENH: replace reverse iterators for UList
- use std::reverse_iterator adaptors, avoid the array-bounds warning
- use pointer arithmetic instead of dereferencing the internal array

- adjust logic to use 'operator<' instead of 'operator>' in sorting.
  This creates less work when making other classes sortable.
2018-01-26 07:52:26 +01:00
d029f4c5c9 ENH: improved swap/transfer methods for FixedList
- the transfer method was previously a copy

- use std::reverse_iterator adaptors in FixedList
  This greatly reduces the amount of code and now avoids the array-bounds
  warning for FixedList::rend()

- use pointer arithmetic instead of dereferencing the internal array
2018-01-25 18:23:11 +01:00
8fc27e0ec8 ENH: make hashedWordList movable 2018-01-25 15:00:25 +01:00
4e47be34d2 Merge branch 'master' into develop 2018-01-25 11:13:30 +00:00
915e8c9f35 ENH: remove Foam::Swap specializations for HashSet, HashTable
- without these will use the normal move construct + move assign.
  This is similarly efficient, but avoids the inadvertently having the
  incorrect Swap being used for derived classes.

STYLE: remove unused xfer methods for HashTable, HashSet

- unneeded since move construct and move assignment are possible
2018-01-25 12:13:16 +01:00
6d75552a77 Merge remote-tracking branch 'origin/master' into develop 2018-01-25 11:59:12 +01:00
7ee93afe9e ENH: allow early completion in PackedBoolList::used()
- can stop producing content when the target number of entries has
  been reached.

- change return type to labelList instead an Xfer container.
  This allows return-value-optimization and avoids a surrounding
  allocation. This potentially breaks existing code.

- make PackedList and PackedBoolList moveable. Drop xfer wrappers.
2018-01-25 10:16:23 +01:00
de4a1eeedb CONFIG: improve evaluation of arguments for foamEtcFile
- forward command-line arguments for paraview, where they may also be
  evaluated (cshrc, POSIX shell)
  Eg,
      . etc/bashrc ParaView_VERSION=5.4.1-mpipy
      source etc/cshrc ParaView_VERSION=5.4.1-mpipy
2018-01-24 12:15:09 +01:00
9bd7ea593e ENH: added fileName::relative() method
- this currently just strips off the leading parent directory name

     "/this/path/and/subdirs/name"

     relative("/this/path")  -> "and/subdirs/name"
     relative("/this")       -> "path/and/subdirs/name"
2018-01-23 18:25:55 +01:00
e98ff5ec73 Merge branch 'feature-LagrangianPatchInterationInfo' into 'develop'
ENH: Adding optional output information ordered by injectorID to LocalInteraction.

See merge request Development/OpenFOAM-plus!187
2018-01-24 08:30:27 +00:00
cf728cef6e STYLE: use Pair flip() method instead of global Swap() function 2018-01-23 17:22:57 +01:00
39ee5d5079 ENH: add HashTable += operation (combines HashTables)
- adjust return values of HashSet operators.
2018-01-23 16:35:43 +01:00
7f3d4b3554 Merge branch 'master' into develop 2018-01-23 16:11:28 +01:00
dc3e4e2c47 ENH: DEShybrid scheme - LES delta name now input instead of default of
'delta'

The scheme should now be specified using, e.g.

    div(phi,U)      Gauss DEShybrid
        linear                    // scheme 1
        linearUpwind grad(U)      // scheme 2
        hmax                      // LES delta name, e.g. 'delta', 'hmax'
        0.65                      // DES coefficient, typically = 0.65
        30                        // Reference velocity scale
        2                         // Reference length scale
        0                         // Minimum sigma limit (0-1)
        1                         // Maximum sigma limit (0-1)
        1.0e-03;                  // Limiter of B function, typically 1e-03
2018-01-23 10:24:33 +00:00
757b8625de Revert "STYLE: overset: warning message. Fixes #691."
This reverts commit 0ee1ed638f.
2018-01-22 16:02:02 +00:00
0ee1ed638f STYLE: overset: warning message. Fixes #691. 2018-01-22 15:22:48 +00:00
5b005095ca STYLE: fvOptions: typos 2018-01-22 11:55:43 +00:00
038bb40a79 COMP: resolve template qualification and other issues for clang-5.0.1 2018-01-22 15:13:39 +01:00
479b8e9d01 CONFIG: bump to llvm-5.0.1 version 2018-01-22 14:47:38 +01:00
0ac8a94122 Merge branch 'feature-memory-streams' into 'develop'
Feature memory streams

See merge request Development/OpenFOAM-plus!191
2018-01-22 13:22:32 +00:00
23c9dd716d ENH: coding cleanup for memory streams
- simplify structure.
- protect against nullptr when resetting memory streams
- make UIListStream swappable
- add uiliststream as an example of using a plain std::istream
2018-01-22 09:42:06 +01:00
0a5e4cf1b0 ENH: define stdFoam::min(), stdFoam::max() as constexpr as per C++14 2018-01-19 17:13:03 +01:00
991a15c4ad ENH: added readFloat(), readDouble() two-parameter forms
- as per readInt32(), readInt64() etc.
  Previously only had readScalar() in a two-parameter form.
2018-01-18 13:00:55 +01:00
89d49f002a Merge branch 'master' into develop 2018-01-18 09:33:40 +00:00
29c066d21e STYLE: avoid redundant eof check in UIPstream (issue #676) 2018-01-17 14:20:30 +01:00
17b82e5e7e Merge remote-tracking branch 'origin/master' into develop 2018-01-17 14:08:11 +01:00
12aa2d3c30 ENH: SubStrings::str(int) method for similarity with std::smatch
- define regExp::results_type using SubStrings container for handling
  groups. This makes a later shift to std::smatch easier, but changes
  the regExp API for matching with groups. Previously had list element
  0 for regex group 1, now list element 0 is the entire match and list
  element 1 is regex group 1.

  Old:
      List<std::string> mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat[0] << nl;

  New:
      regExp::results_type mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat.str(1) << nl;
2018-01-17 00:15:36 +01:00
82a9f2c949 BUG: spurious empty surface zones added (fixes #706)
- problems were introduced by the change ee252307d3 (issue #686).
  Affected reading of OBJ files.

  The fallback zone (used to catch unnamed groups/zones), which was
  previously filtered away when not needed. Now handle more explicitly.

ENH: use stringOps::split and low-level read{Label,Scalar} for parsing OBJ file
2018-01-16 13:20:58 +01:00
ff07ae1520 CONFIG: typo in config.csh/mpi
- also handle stray semi-colons in foamCleanPath.
  Treat like a ':' separator.
  They are incorrect and potentially problematic for shell evals.
2018-01-16 12:00:21 +01:00
a4fa743add ENH: cellCuts: dump only if loop 2018-01-15 17:34:33 +00:00
df30537a61 Merge branch 'style-config-files' into 'develop'
improve handling of gmp/mpfr configuration

See merge request Development/OpenFOAM-plus!190
2018-01-15 17:20:05 +00:00
434a2cb1b9 ENH: primitiveMesh: updated C++ 2018-01-15 15:59:40 +00:00
effe4ce217 BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703. 2018-01-15 14:10:09 +00:00
2d51d4b340 ENH: support silent compat versions.
- can tag the version compatibility with a negative number to suppress
  the warnings but retain some information about which version was
  supported.
2018-01-15 10:09:21 +01:00
1b4807413f ENH: Adding report per injectorId to StandardWallInteraction 2018-01-12 15:43:47 -08:00
ad82072d0f Merge branch 'style-arglist-simplification' into 'develop'
Simplify argList methods names and add more compat options

See merge request Development/OpenFOAM-plus!188
2018-01-12 14:24:37 +00:00
110b00f048 ENH: improved handling of gmp/mpfr library settings (issue #674)
- export library path for gmp/mpfr from CGAL config files.
  This is required when non-system gmp/mpfr libraries are being
  used, but not using a ThirdParty compiler installation.

- automatically handle lib/ vs lib64/ (eg, for central installations)
  for packages such as boost, CGAL, etc. While the ThirdParty
  compilation of these will normally land in lib64/, this may not be
  the case when they are supplied by another means.

- reworked the handling of foamEtcFile and foamCleanPath for less
  clutter in the configuration files.
  Added the bin/tools/lib-dir script to handle logic that is
  too complex to easily manage in csh.
2018-01-11 01:30:23 +01:00
74b1757f07 ENH: Adding optional output information ordered by injectorID to LocalInteraction.
The total number of escaped|stick particles in patches can now be sorted by the injectorID from
which the particle originated. It uses outputByInjectorId keyword in the localInteractionCoeffs
dictionary
2018-01-10 09:29:18 -08:00
2feb11dbeb ENH: add testing for directory lister class 2018-01-10 15:01:12 +01:00
eb7f6d2406 ENH: add output methods for wordRes 2018-01-10 14:09:56 +01:00
2b0eaf2d38 ENH: add fileName::isBackup() method
- previously part of POSIX.C
2018-01-10 10:22:57 +01:00
c093095444 ENH: improve robustness of foamSearch (fixes #700) 2018-01-09 17:28:11 +01:00
c5f4dbd866 ENH: foamRunTutorials now skips tutorials with Allrun-optional
- for tutorials that are known to run poorly, can provide a
  placeholder Allrun-optional instead of the usual Allrun script.
  If this is detected, the case will be skipped.
2018-01-09 16:44:32 +01:00
ab38c04006 STYLE: note deprecated status for NamedEnum 2018-01-09 16:06:40 +01:00
2f32b586b5 ENH: PtrList, UPtrList cleanup
- rationalize iterators, reduce code duplication,
  improve assignment behaviour, moveable construct and assignment.
2018-01-09 13:15:50 +01:00
4deeba17c1 STYLE: restore use of ITstream in argList parsing
- can now be used as previously intended, since the scalarRange
  parsing has been fixed.
2018-01-08 17:10:58 +01:00
adbbd0e678 ENH: add argList option ignoring for compatibility upgrades
- can be used to handle when options become redundant, but it is
  undesirable to treat its presence as an error. Can now tag it as
  being ignored.

     argList::ignoreOptionCompat({"oldOption", 1706}, true);
     argList::ignoreOptionCompat({"oldBoolOpttion", 1706}, false);

     command  -oldOption xyz -oldBoolOpttion
2018-01-08 16:25:27 +01:00
345a2a42f1 ENH: simplify method names for reading argList options and arguments
- use succincter method names that more closely resemble dictionary
  and HashTable method names. This improves method name consistency
  between classes and also requires less typing effort:

    args.found(optName)        vs.  args.optionFound(optName)
    args.readIfPresent(..)     vs.  args.optionReadIfPresent(..)
    ...
    args.opt<scalar>(optName)  vs.  args.optionRead<scalar>(optName)
    args.read<scalar>(index)   vs.  args.argRead<scalar>(index)

- the older method names forms have been retained for code compatibility,
  but are now deprecated
2018-01-08 15:35:18 +01:00
243eda1f7a Merge remote-tracking branch 'origin/master' into develop 2018-01-08 15:05:31 +01:00
9dc361dae9 STYLE: avoid unnecessary use of optionLookup
- direct parsing of -funcs to ITstream.
- use direct lookup when the option is a word/string
2018-01-08 12:38:53 +01:00
199dc3376c STYLE: missing comma in Test-decomposePar 2018-01-08 11:57:54 +01:00
4fd32bfdf2 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
f55a42a835 ENH: improve robustness of scalarRanges from string (fixes #673)
- now avoid Istream and token mechanism in favour of a simpler string
  parser. This makes the code clearer, smaller, robuster.

- provide convenience ge/gt/le/lt static constructors for scalarRange
  for using bounds directly with specifying via a string parameter.

- scalarRange, scalarRanges now follow the unary predicate pattern
  (using an operator() for testing). This allows their reuse in
  other contexts. Eg, for filtering operations:

      myHash.filterValues(scalarRange::ge(100));

- remove unused scalarRanges methods that were specific to handling
  lists of time values. These were superseded by timeSelector methods
  several versions ago.
2018-01-08 09:59:04 +01:00
85eb441bea STYLE: add constexpr to PackedList methods 2018-01-04 19:16:15 +01:00
f868b11a31 BUG: snappyHexMesh: incorrect feature angle. Fixes #699. 2018-01-08 11:50:33 +00:00
34a71c19dc ENH: plane: null constructor so we can have a List of them 2018-01-04 14:43:01 +00:00
931296ef3d ENH: alphatJayatillekeWallFunction - re-worked to remove dependency on k. See #684 2018-01-04 12:24:57 +00:00
534c173a09 TUT: cleanup lumpedPointMotion copied/derived files (closes #683) 2018-01-03 10:48:17 +01:00
ee252307d3 BUG: distributedTriSurfaceMesh hangs (issue #686)
- caused by the removal of empty zones when reading the surface files
2018-01-03 10:34:23 +01:00
4408ec20b4 ENH: collated: switch off threading by default. See also #659. 2017-12-11 13:50:31 +00:00
fd4782f754 COMP: adjustments for 64-bit label-size 2017-12-11 10:22:06 +01:00
2d76c49b94 BUG: OFstreamCollator: checking for threads. Fixes #659. 2017-12-11 10:25:37 +00:00
eabce47e0d Merge branch 'feature-domain-decomposition' into 'develop'
Minor improvements for redistributePar

See merge request Development/OpenFOAM-plus!181
2017-12-08 17:09:44 +00:00
88423b2a6f TUT: snappyMultiRegionHeater with redistributePar 2017-12-08 16:06:30 +00:00
ddde330884 ENH: overset: new solvers, new stencil 2017-12-08 16:00:02 +00:00
700e17bdb4 INT: Initial check-in of IH Cantabria streamFunction wave generation
model and test case

Code supplied by Gabriel BARAJAS OJEDA
2017-12-08 15:54:34 +00:00
03b8275a83 ENH: add foamListRegions utility
- list all regions from constant/regionProperties:
     * foamListRegions

- list specific region type from constant/regionProperties:
     * foamListRegions fluid
     * foamListRegions solid
2017-12-08 14:05:25 +00:00
74b557d5f2 STYLE: indentation: trailing whitespace 2017-12-08 12:26:16 +00:00
cf15d299cc ENH: remove old proc-addressing when redistributing (issue #656)
- after redistribution, the old cellProcAddressing etc files are incorrect
  and potentially troublesome.
2017-12-08 12:02:09 +00:00
22b133a52a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-08 10:32:08 +00:00
bf49ae9bc4 ENH: readFields: suppress warning messages when reading surface fields. Fixes #654. 2017-12-08 09:55:00 +00:00
28d39110a8 ENH: readFields: suppress warning messages when reading surface fields 2017-12-08 09:55:00 +00:00
570e1ab0ba fixup CONFIG: update versions of ThirdParty software 2017-12-08 09:34:02 +00:00
405cf8129a CONFIG: update some wmake rules
- initial settings for ADIOS2, linuxARM64Gcc, linuxARM64Clang
2017-12-07 15:41:58 +00:00
f385e3b984 ENH: finiteArea support for paraview reader plugin (paraFoam) 2017-12-06 15:10:11 +00:00
1af512ae51 ENH: Added divergence scheme test case 2017-12-05 11:43:09 +00:00
1e7b67fdcf TUT: relocate externalCoupled heater tutorial, add steady-state version 2017-12-05 12:00:00 +01:00
0e2798399e ENH: add enthalpy sub-looping for chtMultiRegion* solvers 2017-12-05 12:00:00 +01:00
96ed3638e4 ENH: basic support for generic solution loop-control 2017-12-05 12:00:00 +01:00
e0f397d863 BUG: ensightSurfaceReader - corrected initial list sizing 2017-11-30 08:36:07 +00:00
610c290969 ENH: added functionObject::execute(int) method
- this is a provision for defining execute actions that can be called
  largely independently of the normal time-loop constraints. This can
  be useful to provide hooks for sub-cycling, or to define an action
  that can be triggered manually or on some other event.
2017-11-28 10:00:15 +01:00
cc5f30f25e ENH: several improvements for linked-lists
- support move construct/assignment for linked-lists themselves
  and when moving into a 'normal' list

- better consistency with begin/end signatures and the various
  iterators.

- for indirect linked-lists, provide iterator access to the underlying
  data element address:   iter.get()  vs  &(iter())

- add standard '->' indirection for iterators (as per normal STL
  definitions)
2017-11-27 14:11:25 +01:00
c2ff8ea99e ENH: Added finiteArea support to foamToVTK 2017-11-21 16:33:33 +00:00
05a8fe5dd3 STYLE: compact license text in config files for easier reading/editing 2017-11-20 09:00:10 +01:00
d6b3595fe8 BUG: Correcting expression for adimensional pressure drop table for fanFvPatchField 2017-11-16 11:01:54 -08:00
b2f002ba45 ENH: FFT - updated for fft of real data 2017-11-16 18:05:56 +00:00
93587afefc ENH: Avoidding 0/0 conflict in externalCoupledTemperatureMixed increaging the zero order of denomitaror 2017-11-15 12:58:58 -08:00
37d92d0714 ENH: adding non-dimensional option to fanFvPatchField.C 2017-11-15 12:54:09 -08:00
9d7df50822 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-11-15 10:06:35 -08:00
0bb53ab6f3 BUG: ptscotch: truncate decomposition back to correct number of cells. Fixes #642. 2017-11-15 12:34:39 +00:00
a14eb71160 COMP: various compilation changes
- label-size 64 build, compiler warnings, unused template argument,
  faMatrix::clone() method

STYLE: faScalarMatrix - moved info message to within a debug scope
2017-11-14 08:41:20 +00:00
56232cdab0 Merge branch 'style-write-entry' into 'develop'
STYLE: use Ostream writeEntry when writing key/value entries

See merge request Development/OpenFOAM-plus!168
2017-11-14 08:32:13 +00:00
6b32f7b474 Merge remote-tracking branch 'origin/develop' into develop 2017-11-13 11:45:40 +00:00
6eaa143825 BUG: foamListTimes: reinstated. Fixes #638. 2017-11-13 11:44:19 +00:00
0ca0a6264b STYLE: use readLabel/readScalar (string) instead of via IStringStream 2017-11-13 11:23:17 +01:00
817b9a14ba BUG: missing space in ensight (surface format) case file (closes #637)
- occurred when variable name exceeded the 15-char alignment format
  and the name run into the previous field.
2017-11-13 11:06:26 +01:00
14d4484fae STYLE: single-string findStrings deprecated in favour of stringOps::match
- reduces ambiguity between matching a list of strings and a single string.
2017-11-13 10:37:38 +01:00
5a6b59d8b0 ENH: snappyHexMesh: added missing entry 2017-11-13 08:57:43 +00:00
1d925c736c STYLE: searchableSurfaces: typo in comment 2017-11-08 14:20:47 +00:00
7924f24b4a STYLE: overLaplacianFoam: removed unused entries 2017-11-08 09:09:41 +00:00
4039933b89 Merge branch 'feature-function-object-field-input' into 'develop'
Feature function object field input

See merge request Development/OpenFOAM-plus!167
2017-11-13 09:10:55 +00:00
4466daa008 Merge branch 'feature-token-passing' into 'develop'
ENH: support change of Pstream buffer format via flag modifier

See merge request Development/OpenFOAM-plus!166
2017-11-13 09:00:25 +00:00
073aca9115 Merge branch 'feature-fieldAverage-windowing' into 'develop'
Feature field average windowing

See merge request Development/OpenFOAM-plus!165
2017-11-13 08:59:36 +00:00
8f444b7164 ENH: support change of Pstream buffer format via flag modifier
- allows changing the format of the sending OPstream at an arbitrary
  point in the transmission. The information is passed through the
  buffer and the receiving IPstream changes its format accordingly.
  This allows a temporary toggling of ASCII/BINARY mid-stream.
2017-11-13 09:21:11 +01:00
24d8c891d7 ENH: add bin/tools/foamCreateModuleInclude
- support when creating modules for OpenFOAM.
  Original source from Ivan Spisso (CINECA) modified by OpenCFD
2017-11-13 07:46:17 +01:00
4f1e4aa59e ENH: add token type for stream flags (ASCII/BINARY) 2017-11-12 16:57:37 +01:00
5281dd4877 ENH: changed return value to bool for Ostream::write(const token&)
- the return value signals if this method handled this particular type
  of token. This minor change allows this method to be used as a succinct
  prefilter an output token stream. It also provides better encapsulation
  of what the particular output stream handles.

  Eg,

      bool ok = os.write(tok);
      if (!ok)   // or   if (!ok && os.good())
      {
          os << tok;
      }

  instead of

      if (tok.type() == typeA || tok.type() == typeB || ...)
      {
          os.write(tok);
      }
      else
      {
          os << tok;
      }
2017-11-12 15:25:14 +01:00
c51ee22101 STYLE: fix stray use of argList option() instead of [] 2017-11-09 18:59:55 +01:00
166f62f19d STYLE: spelling, doxygen 2017-11-09 11:04:34 +01:00
59e8c39747 ENH: static parse methods for ITstream 2017-11-09 08:39:36 +01:00
cea5ca147d Merge branch 'feature-dictionary-methods' into 'develop'
dictionary compatibility/migration methods

See merge request Development/OpenFOAM-plus!162
2017-11-08 19:55:07 +00:00
e289c78027 COMP: mismatch of inline some HashTable methods 2017-11-08 20:44:43 +01:00
c7392f7fb0 ENH: additional dictionary compatibility/migration methods
- when dictionary keywords change between versions, the programmer
  can use these compatibility methods to help with migration.

    * csearchCompat, foundCompat, lookupEntryPtrCompat, lookupEntryCompat,
      lookupCompat, lookupOrDefaultCompat, readIfPresentCompat, ...

  They behave like their similarly named base versions, but accept an
  additional list of older keyword names augmented by a version number.
  For example,

      dict.readIfPresentCompat
      (
          "key", {{"olderName", 1612}, {"veryOld", 240}},
          myscalar
      );

   where 1612=OpenFOAM-v1612, 240=OpenFOAM-v2.4.x, etc.
2017-11-08 19:08:10 +01:00
8d5f28bcc0 ENH: dictionary add/set methods now return a pointer to the entry
- If the entry could be directly inserted: a pointer to the inserted entry.
- If a dictionary merge was required: a pointer to the dictionary that
  received the entry.
- Return nullptr on any type of insertion failure.

This change is code compatible with existing code since it only alters
a bool return value to be a pointer return value.
2017-11-08 17:43:28 +01:00
9edc0c15fe ENH: add rmDir silent option for all fileOperations implementations 2017-11-08 14:54:57 +01:00
ba39777818 COMP: Resolved compiler warnings 2017-11-08 08:48:48 +00:00
ec9a7cc016 ENH: function objects - enabled 'fields' entry to use patterns for some objects 2017-11-07 17:33:09 +00:00
69238a9e14 BUG: steadyStateDdtSchems - corrected oriented state of return fields for *Corr functions. Fixes #634 2017-11-07 12:10:47 +00:00
3611f03914 COMP: Removed unused variable 2017-11-07 11:31:21 +00:00
c1b7854cf7 COMP: Removed unused variable 2017-11-07 11:31:21 +00:00
6aa7b6ac2a STYLE: Header clean-up 2017-11-07 11:22:58 +00:00
54a4cafa12 Merge branch 'feature-token-passing' into 'develop'
Improvements to token handling

See merge request Development/OpenFOAM-plus!160
2017-11-07 14:16:22 +00:00
2ae2783635 ENH: add a test dictionary token streaming class 2017-11-07 13:12:43 +01:00
b8d5880447 STYLE: Header clean-up 2017-11-07 11:22:58 +00:00
f42ed2fc9f Merge branch 'fix_gl_632' into 'develop'
STYLE: Corrected file name in surface noise, added README file

See merge request Development/OpenFOAM-plus!161
2017-11-07 10:50:02 +00:00
4bc9c98695 STYLE: Corrected file name in surface noise, added README file 2017-11-07 16:08:30 +05:30
a7095ceded Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-11-06 09:05:02 -08:00
07e662a0ef BUG: Correcting adimensional formulation for fanPressureFvPatchScalarField 2017-11-06 09:04:15 -08:00
454e609fbc ENH: Adding momemtum predictor to chtSimpleFoam 2017-11-06 09:03:42 -08:00
ad116ef7f2 ENH: use updated ITstream for parsing strings to token lists 2017-11-06 17:38:53 +01:00
9ac1fa417b BUG: finiteArea: corrected reference access to tmps 2017-11-06 11:54:20 +00:00
c0ba7bf05a STYLE: use Ostream writeEntry when writing key/value entries
- makes for clearer code

ENH: make writeIfDifferent part of Ostream
2017-11-06 00:49:24 +01:00
61534989df ENH: simplify primitiveEntry parsing code, move append new tokens
- simplify string output code
2017-11-05 22:07:17 +01:00
c4de3e0a4d ENH: enhancements to behaviour of token
- improved memory alignment reduces overhead for Int32 compilation

- added move/swap semantics

- made the type() readonly in favour of setVariant() to allow change
  of variant within a particular storage representation.
  Eg, STRING -> VERBATIMSTRING.
2017-11-05 20:05:28 +01:00
e1b71c028c ENH: add move/swap semantics to string types and regExp
- move append() single element to List and DynamicList

ENH: add stringOps::count to avoid unnecessary string conversions
2017-11-05 13:26:10 +01:00
cae8a894cd ENH: allow creation of ITstream by parsing string 2017-11-06 09:25:58 +01:00
061a85858f ENH: support method/spawn as mpirunDebug command-line options 2017-11-04 17:25:26 +01:00
3d13220df4 STYLE: relocate charList typedef to containers 2017-11-04 16:05:32 +01:00
507486194e ENH: improved parallel transfer of strings
- support send/receive with embedded '\0' characters
2017-11-04 15:51:52 +01:00
590b319a78 TUT: 'restore0Dir -processors' with filtering of #include files 2017-11-04 14:59:59 +01:00
dd838766be STYLE: make memorybuf naming more consistent with std iostreams 2017-11-04 14:30:14 +01:00
ebd922a32e ENH: support longer doxygen brief descriptions. 2017-11-04 14:26:38 +01:00
f7ff26bd2d ENH: fieldAverage - enable suppressing of intermediate field writing for the exact method
Also updated/corrected restart behaviour
2017-10-30 13:47:32 +00:00
7a41a9c9c3 collatedFileOperation: preferentially collect all data in the simulation thread
so the write thread does not have to do any parallel communication.  This avoids
the bugs in the threading support in OpenMPI.

Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2669
2017-10-27 17:13:43 +01:00
ec761da0be COMP: Corrected construction from tmp compiler error 2017-12-07 09:29:27 +00:00
ea5df84dc0 COMP: 64 bit labels 2017-12-06 15:52:07 +00:00
2cd84dd091 ENH: snappyHexMeshDict: description of missing switch 2017-12-04 15:30:42 +00:00
5a455dac34 TUT: tutorial updates 2017-12-06 12:53:10 +00:00
b137005449 Merge remote-tracking branch 'origin/master' into develop 2017-12-06 12:52:12 +00:00
6b97bf54ab TUT: Adding Alltest scripts 2017-12-05 12:19:47 +00:00
6c44f9b102 Merge branch 'feature-profiling-summary' into 'develop'
minor improvements in profiling

See merge request Development/OpenFOAM-plus!178
2017-12-01 14:52:56 +00:00
8fc6bd17c9 ENH: improvements in profiling (issue #648)
- include amount of free system memory in profiling, which can give an
  indication of when swapping is about to start

- profilingSummary utility to collect profiling from parallel
  calculations. Collects profiling information from processor
  directories and summarize the time spent and number of calls as (max
  avg min) values.
2017-12-01 15:44:20 +01:00
e83a9db2ea Merge branch 'feature-domain-decomp' into 'develop'
Feature domain decomp (wp05)

See merge request Development/OpenFOAM-plus!163
2017-11-30 19:58:20 +00:00
dc2177cc68 Merge branch 'feature-trisurface-cleanup' into 'develop'
consolidate surfaceFormats for reading/writing triSurface

See merge request Development/OpenFOAM-plus!174
2017-11-30 08:46:43 +00:00
cdb22d4476 Merge branch 'feature-externalCoupled' into 'develop'
preliminary improvements for externalCoupled

See merge request Development/OpenFOAM-plus!175
2017-11-28 16:54:06 +00:00
57f750cc55 ENH: add simple subLoopTime
- similar idea as subCycleTime but without sub-dividing the time
  interval or incrementing time itself
2017-11-28 09:57:18 +01:00
bb0fa65122 ENH: respond to externalCoupled lock file contents
- waitForSlave now return a Time::stopAtControls enumeration:

    unknown:     when lockfile has no specially recognized content.
    endTime:     when lockfile contains "status=done"
    writeNow:    when lockfile contains "action=writeNow"
    nextWrite:   when lockfile contains "action=nextWrite"
    noWriteNow:  when lockfile contains "action=noWriteNow"

These values can be used by the caller to terminate the master
(OpenFOAM) as desired in response to information placed there by the
slave process.
2017-11-28 12:02:18 +01:00
402e605391 ENH: expose solutionControl::maxResiduals as a static with simpler parameters
- use a Pair<scalar> with first() / last() residuals
2017-11-28 11:46:48 +01:00
ca5b0dcbaa ENH: improvements to Time
- expose the names of write and stopAt controls for reuse elsewhere and
  provide a stopAtControls enum for 'unknown'

- track the requested number of sub-cycles (was previously a bool)
2017-11-28 10:11:06 +01:00
fab9fb4332 STYLE: use readScalar(std::string) and readInt(std::string) wrappers 2017-11-28 10:08:36 +01:00
c0e86940b0 ENH: minor improvements for Enum
- found() method for consistency with other classes

- operator()(name, deflt) for similarity to lookupOrDefault,
  but without a dictionary
2017-11-28 09:15:04 +01:00
b53e5b7404 BUG: fieldMinMax: max cell 2017-11-27 17:41:38 +00:00
966a941a64 ENH: fix foamListTimes to work with -fileHandler collated 2017-11-26 15:23:02 +01:00
2787a8664d STYLE: relegate special purpose readList<T> function to points of use
- the readList<T>(Istream&) function was introduced to handle command
  -options with either a single or a list value, but was also used for
  the #remove dictionary directive. However, the parsing was fragile
  if the list did not start with a '('.
  Now handle command-line arg/option list directly (via ITstream)
  and #remove with special-purpose reading of a string or word list.

  This removes ambiguity and reduces potential future problems.

STYLE: use ITstream instead of IStringStream for command-line lookups

- parses directly to a tokenList without a string copy.
2017-11-26 12:45:49 +01:00
5947f9a337 ENH: more succinct output from command-line errors.
- unknown options or missing option values now emit a shorter message
  without the entire usage. This makes it easier to identify the errors
  and is better aligned with the behaviour of GNU system tools.

  ====
     $ simpleFoam -case
     Using: OpenFOAM-plus (see www.OpenFOAM.com)
     Build: plus-01234

     Error: option '-case' requires an argument

     See 'simpleFoam -help' for usage
  ====

- provide for reduced (-help) and full (-help-full) usage information.
  In many cases the reduced usage provided sufficient and easier
  to find the information.

- make -srcDoc an alias for -doc-source

- no warnings about option aliases for future dates.
2017-11-24 10:27:11 +01:00
9985b93cfc ENH: argList::optionReadList now uses ITstream directly
- stricter and robuster than previous solution using List::readList
  since the option input can be fully tokenized prior to list
  conversion.
2017-11-24 10:39:20 +01:00
d3d82b909e BUG: the -decomposeParDict option inadvertent triggers parallel run (fixes #645) 2017-11-24 10:36:34 +01:00
d49929b210 ENH: improvements to stringOps format and split functions
- split now optionally retains empty substrings.
  Added split on fixed field width.

- Foam::name() now formats directly into string buffer, which a
  removes one layer of copying and also avoids using a non-constexpr
  in the temporary.

STYLE: explicit type narrowing on zero-padded output for ensight
2017-11-23 20:17:33 +01:00
6e8586df5d DEFEATURE: remove ccm26ToFoam (issue #536)
- not maintained and less functionality than ccmToFoam.
2017-11-23 14:16:09 +01:00
63812aa110 Merge branch 'feature-arglist-option-aliases' into 'develop'
Feature arglist option aliases

See merge request Development/OpenFOAM-plus!172
2017-11-23 09:27:34 +00:00
416a3790ea STYLE: prefer autoPtr::reset() to autoPtr::set()
- in most cases already checked valid() so don't need additional check
  for setting an existing pointer
2017-11-22 19:11:11 +01:00
e96cbd9050 STYLE: remove deprecated non-const tmp() operator (deprecated since FEB-2016) 2017-11-22 18:10:25 +01:00
aa112c3f26 ENH: support option aliases with versioning
- can be used for adjusting option names between versions
2017-11-22 14:42:31 +01:00
f2ba618c19 STYLE: consistency in using argList::addArgument, argList::addOption 2017-11-22 12:54:28 +01:00
d8f31f6ded STYLE: use HashTable ternary-like lookup in argList 2017-11-22 12:04:45 +01:00
fd5cd9dc6f ENH: command-line -doc, -srcDoc display online documentation
- browser is spawned as a background process to avoid blocking the
  command-line
2017-11-22 11:50:44 +01:00
4023158497 ENH: provide system() command with CStringList
- allows (for example) splitting a user string on whitespace and
  passing this to system as a list of arguments, thus bypassing any
  implicit use of 'sh'.

- system() with optional background, for spawning processes.
2017-11-22 10:48:55 +01:00
a881204946 ENH: stringOps inplace methods now use a std::string parameter
- this makes them applicable to Foam::string, Foam::word etc

ENH: improvements to CStringList

- add strings() sublist variant which can be useful when handling
  command arguments separately

- add construct from SubStrings.
2017-11-22 08:03:52 +01:00
d65ca495d3 STYLE: minor changes in comments 2017-11-22 10:52:42 +01:00
3ef8906a66 ENH: consolidate surfaceFormats for reading/writing triSurface (issue #294)
- eliminates previous code duplication and improves maintainability
2017-11-20 14:55:36 +01:00
75933928de Merge branch 'feature-multiple-stitch-mesh' into 'develop'
Feature multiple stitch mesh (wp04)

See merge request Development/OpenFOAM-plus!164
2017-11-20 09:32:30 +00:00
d4b7fbe9a1 Merge branch 'style-list-typedefs' into 'develop'
Consistency update for list typedefs

See merge request Development/OpenFOAM-plus!171
2017-11-20 07:48:08 +00:00
7c1d8cb146 STYLE: more consistent use of labelUList and labelUIndList typedefs 2017-11-19 09:27:47 +01:00
a573e0e1aa STYLE: use fully-scoped names in meshTools, sampling 2017-11-19 11:34:41 +01:00
6fd27353e4 STYLE: improve formatting of doxygen filter output 2017-11-10 14:53:18 +01:00
834d46c64a ENH: add argList support for non-mandatory arguments
- in rare cases we may wish to have command-line arguments that are
  non-mandatory. This can now be reflected in the usage output, provided
  that the argList::nonMandatoryArgs() has been used.

- added setRootCaseNonMandatoryArgs.H that applies the
  argList::nonMandatoryArgs() settings and otherwise performs largely
  as per setRootCase.H, except that the check for mandatory arguments
  is deferred to later user code.
2017-11-18 13:36:56 +01:00
a59c87d5ac ENH: improved zone constructors
- constructor for empty cell/face/point Zones, with contents to be
  transferred in later.

- ZoneMesh::operator(const word&) to return existing zone or a new empty one.
2017-11-10 02:09:37 +01:00
ccc07d3234 Merge branch 'style-cellModel-enum' into 'develop'
cellModel enumerations

See merge request Development/OpenFOAM-plus!170
2017-11-18 13:14:39 +00:00
8730a7622a ENH: enumerations for known cell models in cellModel, ptr/ref lookups
- this provides a better typesafe means of locating predefined cell
  models than relying on strings. The lookup is now ptr() or ref()
  directly. The lookup functions behave like on-demand singletons when
  loading "etc/cellModels".

  Functionality is now located entirely in cellModel but a forwarding
  version of cellModeller is provided for API (but not ABI) compatibility
  with older existing user code.

STYLE: use constexpr for cellMatcher constants
2017-11-18 11:05:05 +01:00
810d090e34 ENH: add -case option for foamLog 2017-11-17 19:04:13 +01:00
9c3bef5a99 ENH: improve robustness of MPI start/stop
- warn or fatal if Pstream::init or Pstream::exit are called multiple
  times.

- additional Pstream::initNull method as failsafe to initialize MPI
  when the underlying OpenFOAM process is not running in parallel but
  the application still needs MPI.

- Pstream::exit() can now also be called without having used MPI::init(),
  which means it can be used to cleanup serial process or for
  applications that used the special purpose Pstream::initNull()
  mechanism.
2017-11-17 11:29:26 +01:00
00b1ecad60 ENH: add UPtrList swap() method 2017-11-13 21:39:30 +01:00
5a52dfa4f4 CONFIG: update ADIOS version 2017-11-17 08:46:19 +01:00
67265d2c35 BUG: missing space in ensight (surface format) case file (closes #637)
- now also fixed collated output format
2017-11-16 07:31:39 +01:00
3cafdccb4c ENH: add dictionary-driven multi-pass stitchMesh facility
- the dictionary-driven variant of stitchMesh allows sequential
  application of 'stitch' operation with requiring intermediate
  writing to disk.

- Without arguments:
  * stitchMesh uses a system/stitchMeshDict or -dict dict

- With arguments:
  * master/slave patches specified on the command-line as in previous
    versions.
2017-11-10 01:53:30 +01:00
a9ffcab5af ENH: region-wise decomposition specification for decomposeParDict
Within decomposeParDict, it is now possible to specify a different
  decomposition method, methods coefficients or number of subdomains
  for each region individually.

  The top-level numberOfSubdomains remains mandatory, since this
  specifies the number of domains for the entire simulation.
  The individual regions may use the same number or fewer domains.

  Any optional method coefficients can be specified in a general
  "coeffs" entry or a method-specific one, eg "metisCoeffs".

  For multiLevel, only the method-specific "multiLevelCoeffs" dictionary
  is used, and is also mandatory.

----

ENH: shortcut specification for multiLevel.

  In addition to the longer dictionary form, it is also possible to
  use a shorter notation for multiLevel decomposition when the same
  decomposition method applies to each level.
2017-11-09 12:30:24 +01:00
69ea4976ac ENH: reduced verbosity when decomposing/reconstructing empty meshes
- only warn about missing cells/points if the mesh is also missing
  boundary patches.
- reduce verbosity when decomposing to an empty mesh
- skip face matching when either mesh has no faces
2017-11-06 17:06:15 +01:00
52536b4b14 Merge branch 'bugfix-multiLevelDecomp' into 'master'
Bugfix multi level decomp

Closes #620 and #619

See merge request Development/OpenFOAM-plus!153
2017-10-11 11:18:59 +01:00
8acd80c54c BUG: multiLevelCoeffs entry not mandatory (closes #620) 2017-10-10 19:32:53 +02:00
e816d5cc80 BUG: label overflow in multiLevel decomposition (closes #619)
- previously when more than two levels were used.
  Now calculate the required final target domain segment directly.
2017-10-10 18:06:52 +02:00
412ff422bd Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2017-10-09 10:18:15 +01:00
13346ec5b1 BUG: incorrect xml format tag for VTK surface mesh writer (closes #611) 2017-10-06 11:36:40 +02:00
85f5fb730f TUT: avoid backticks in scripts
- consistent versions in headers
2017-10-05 14:27:48 +02:00
b02623f974 STYLE: remove substring operator() (issue #554)
- duplicate functionality to the substr() method and more difficult to
  notice when it is being used.
2017-10-04 16:49:45 +02:00
c903c39763 BUG: Allrun: run in non-test mode. Handle ./Alltest correctly 2017-10-05 09:52:17 +01:00
8ae5b67a65 Merge branch 'feature-argList-report-host-subscription' into 'develop'
ENH: adjust infoSwitch to report host subscription (related to #531)

See merge request Development/OpenFOAM-plus!150
2017-10-04 10:33:10 +01:00
ff95b8446e BUG: index error when parsing integers from prefix_rayId_lambdaId 2017-10-04 11:16:29 +02:00
a56a70b744 ENH: adjust infoSwitch to report host subscription (related to #531)
- this compact form shows the subscription per host in the unsorted
  mpi order

      nProcs : 18
      Hosts  :
      (
          (node1 6)
          (node2 8)
          (node3 4)
      )

  This provides a succinct overview of which hosts have been
  subscribed or oversubscribed.

- The longer list of "slave.pid" ... remains available on the
  InfoSwitch 'writeHosts'
2017-09-29 19:35:08 +02:00
684aa6751c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-29 10:16:01 -07:00
0cc4ab73b7 ENH: adjust doxygen wrapper to accept multiple input directories
- the -dir option was added in commit c1c6243c3e to allow quick
  testing of documentation for a set of classes.
  This was largely replicated in commit 843d83117, but accepting
  multiple directories.

  Apply some of the same ideas here and avoid creation of a tmp file.
2017-09-29 18:36:48 +02:00
a531168ae4 COMP: reinstate rules for various C++ suffixes (issue #607) 2017-09-29 18:07:42 +02:00
dfe464dd5b BUG: redistributePar: transfer particles correctly. Fixes #605. 2017-09-28 12:36:25 +01:00
ce8695d804 BUG: reachingParcelFoam: requires p_rgh 2017-09-27 17:58:24 +01:00
50d1ac15ef INT: Integration updates in preparation for merge into the develop branch 2017-09-27 09:30:59 +01:00
ffb0409942 TUT: Tutorial updates - see #600 2017-09-26 12:25:50 +01:00
ba331942be BUG: decomposePar - resolved error using -allRegions option 2017-09-26 11:58:38 +01:00
e48f3d6d52 BUG: Added missing #include. See #600 2017-09-26 09:29:45 +01:00
16649b3772 BUG: thermoFoam - corrected to enable restart and post-processing using thermoFoam -postProcess. Fixes #598 2017-09-25 13:25:34 +01:00
823ba60cae ENH: correcting new thermo type for reactingParcelFoam tutorials.
Correcting thermoSingleLayer.C mask field alpha to avoid heat sources where there is no film.
Tunning fvSolution for alpha for twoPhasePachuka tutorial
2017-09-22 16:45:45 -07:00
d86443cfd9 STYLE: Code refactoring 2017-09-22 14:01:25 +01:00
73fcd85460 ENH: class data now protected as opposed to private 2017-09-22 13:59:40 +01:00
99b67ba8db ENH: boundaryMesh - allow not found state in findPatchID 2017-09-22 13:58:47 +01:00
b55ab4b0c3 Merge branch 'integration-foundation' into 'develop'
Integration openfoam.org

See merge request !144
2017-09-22 13:56:38 +01:00
dd3be135de ENH: cuttingPlane: suppress excessive warning message. Fixes #596. 2017-09-21 09:14:58 +01:00
76c68c884f ENH: isoSurface: additional debug message 2017-09-21 09:12:16 +01:00
9aff74aaaf COMP: Updated to compile with Clang 3.7.1 2017-09-20 13:55:42 +01:00
af48c843f8 STYLE: Code clean-up 2017-09-18 13:39:37 +01:00
94cf702f69 BUG: kOmegaSSTLM - corrected writing of coefficients. Fixes #592 2017-09-18 10:48:39 +01:00
79f2466ca5 BUG: DESModelRegions - added missing field write() - see #591 2017-09-18 10:17:24 +01:00
e23999e5da Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-18 08:43:21 +01:00
404aa759ca ENH: mirrorMesh: run parallel. Fixes #587.
Note that now mirrorMesh does not delete empty patches anymore.
2017-09-18 08:42:33 +01:00
0c64622341 Finite area port, Hrvoje Jasak
- with sphereSurfactantFoam and sphereTransport test case
2017-09-15 12:02:25 +01:00
85877cb0f4 ENH: coordSet - added protection for the 'distance' option 2017-09-15 11:17:06 +01:00
4af3d6cb73 COMP: resolve merge conflict 2017-09-15 12:14:22 +02:00
fedf588245 STYLE: Minor code style updates 2017-09-15 10:38:10 +01:00
2efc0a6fb1 CONFIG: update completion_cache (csh) for new command-line options 2017-09-26 09:45:25 +02:00
4c45f6c6a1 MRG: OFstream name not being passed through to OSstream 2017-09-26 09:13:23 +02:00
e0baf040e2 STYLE: include .foam file as well in paraFoam -touch-all 2017-09-26 08:41:01 +02:00
e8ec236cdf Merge branch 'feature-string-parsing' into 'develop'
improve consistency in parsing primitives from strings

See merge request !146
2017-09-25 18:28:47 +01:00
610854af03 STYLE: minor cleanup after merge 2017-09-22 16:25:17 +02:00
66104f2569 ENH: improve input stringency for argList options
Previously:

  - bad command-line input such as -label 1234xyz would parse as a
    label (with value 1234) and the trailing junk would be silently
    ignored. This may or may not be appropriate. If the trailing junk
    looked like this '100E' or '1000E-' (ie, forgot to type the
    exponent), the incorrectly parsed values can be quite bad:

        label  = 32684
        scalar = 6.93556e-310

Now:

  - use the updated readLabel/readScalar routines that trigger a
    FatalIOError on bad input:

        --> FOAM FATAL IO ERROR:
        Trailing content found parsing '1234xyz'

        --> FOAM FATAL IO ERROR:
        Trailing content found parsing '100E'

   This traps erroneous command-line input immediately.
2017-09-21 16:53:46 +02:00
a4e63e2bfb STYLE: avoid IStringStream when parsing primitives 2017-09-21 16:10:33 +02:00
accebc74ee ENH: improve consistency in parsing primitives from strings (issue #590)
- Any trailing whitespace when parsing from strings or character buffers
  is ignored rather than being treated as an error. This is consistent
  with behaviour when reading from an Istream and with leading whitespace
  being ignored in the underlying atof/atod, strtof/strtod... functions.

- Allow parsing directly from a std::string instead of just from a 'char*'.
  This reflects the C++11 addition of std::stod to complement the C
  functions strtod. This also makes it easier to parse string directly
  without using an IStringStream.

- Two-parameter parsing methods return success/failure.
  Eg,

      if (readInt32(str, &int32Val)) ...

- One-parameter parsing methods return the value on success or
  emit a FatalIOError.
  Eg,

      const char* buf;
      int32Val = readInt32(buf, &);

- Improved consistency when parsing unsigned ints.
  Use strtoimax and strtoumax throughout.

- Rename readDoubleScalar -> readDouble, readFloatScalar -> readFloat.
  Using the primitive name directly instead of the Foam typedef for
  better consistency with readInt32 etc.

- Clean/improve parseNasScalar.
  Handle normal numbers directly, reduce some operations.
2017-09-18 10:47:07 +02:00
61c603f174 STYLE: typo in doxygen string 2017-09-15 14:35:51 +02:00
2a586dcbe2 Merge remote-tracking branch 'origin/master' into develop 2017-09-15 11:20:35 +02:00
071dfb36fd BUG: parse issues for nastran long format (closes #589) 2017-09-15 10:40:55 +02:00
953f6fbc75 Merge branch 'feature-paraview-clouds' into 'develop'
Feature paraview clouds

See merge request !145
2017-09-12 14:45:38 +01:00
2cfc88fa03 STYLE: paraview reader attempts to shallow copy nullptr (closes #586)
- Can occur if the selected geometry does not actually exist.
  A non-critical bug since paraview catches this anyhow and
  just emits a warning message.
2017-09-12 15:42:10 +02:00
05aa701c15 ENH: handle all lagrangian fields in pv reader (issue #585)
- previous only checked for clouds at the last instance and only
  detected lagrangian fields from the first cloud.

  Now check for clouds at all instances and detect all of their fields
  as well.
2017-09-12 11:38:05 +02:00
9238c90e6f Merge branch 'feature-surfacefield-value' into 'develop'
Feature surface field value operations

See merge request !141
2017-09-12 08:37:46 +01:00
eaebb8ee75 Merge branch 'feature-surface-scaling' into 'develop'
Feature surface scaling

See merge request !139
2017-09-12 08:36:12 +01:00
6ec186bada ENH: a weighted operation without a weightField is an error (issue #583)
- affects surfaceFieldValue, volFieldValue.

  Use 'none' (if desired) to explicitly suppress the weightField, but
  generally better to use a different operation.
2017-09-11 18:10:41 +02:00
c59c3af146 STYLE: relocate surfaceMeshConvertTesting to test/ (closes #584)
- relocate as Test-surfaceMeshConvert.
2017-09-11 14:50:51 +02:00
f80334415c sixDoFRigidBodyState: New functionObject which writes the rigid-body state
Based on code contributed by SeongMo Yeon
Resolves feature request https://bugs.openfoam.org/view.php?id=2656
2017-09-09 19:00:56 +01:00
0eeffc318b ENH: Adding required interpolation for alpha.water in fvSchemes for overInterDyMFoam floatingBody tutorial 2017-09-08 15:40:22 -07:00
cfeb2c9233 ENH: adding oversetAdjustPhi to overInterFoam plus reconstructing U from phi in pEq. 2017-09-08 15:35:27 -07:00
a129d6a146 ENH: isoCutCell - improved robustness. Patch provided by Johan Roenby - see #582 2017-09-08 17:22:49 +01:00
0430ad474f ENH: modifyMesh: added -dict argument 2017-09-07 15:02:39 +01:00
aad962a0e4 COMP: checkMesh: missing header 2017-09-07 09:42:03 +01:00
775f39960f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-06 12:27:38 +01:00
dbc0bbc903 ENH: extrudeMesh: preserve hexRef8Data. Fixes #471. 2017-09-06 12:24:32 +01:00
92ce092e2b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-31 14:08:26 +01:00
35090ebdc3 Merge branch 'master' into develop 2017-08-31 14:08:17 +01:00
6d8b6516b6 BUG: Corrected Curle analogy implementation. See #574 2017-08-31 14:05:05 +01:00
4684a13f42 Merge branch 'feature-zoneInformation' into 'develop'
ENH: Adds basic information for faceZone and cellZones during checkMesh (fixes #560)

See merge request !142
2017-08-31 13:16:32 +01:00
b5f96306ea ENH: checkMesh: output information about zones 2017-08-31 17:41:50 +05:30
2f2e0cf1a6 BUG: fluxSummary: incorrect handling of flipMap. Fixes #530. 2017-08-30 17:27:07 +01:00
5cfd343904 Merge branch 'bugfix-createZeroDirectory-template' into 'master'
BugFix: corrected keyword for flowRateInletVelocity BC fixes #577

Closes #577

See merge request !143
2017-08-30 09:49:49 +01:00
870a0a1d60 BugFix: keyword for caseDict also syncrhonized 2017-08-30 09:48:45 +05:30
ffed13435a BugFix: corrected keyword for flowRateInletVelocity BC fixes #577 2017-08-30 09:38:36 +05:30
0e7954c22b BUG: sampledTriSurfaceMesh: sampling outside of mesh. Fixes #575.
There are a few issues:
- error would only throw exceptions if not parallel
- if we change this we also need to make sure the functionObjectList
  construction is synchronised
- bounding box overlap was not returning the correct status so the code
  to avoid the issue of 'badly formed bounding box' was not triggered.
2017-08-29 14:41:22 +01:00
82a18e4cd9 ENH: Print info on zones only if present 2017-08-28 10:21:47 +05:30
d016590bbc ENH: AMIInterpolation - updated to perform face triangulation once only; code clean-up 2017-08-18 14:09:34 +01:00
81d4292855 ENH: Adds basic information for faceZone and cellZones during checkMesh
fixes #560
2017-08-18 17:04:51 +05:30
3392965aba ENH: scaling: added scaling to various sampling routines. See #514. 2017-08-17 12:47:45 +01:00
2be17edc1d ENH: AMIInterpolation - added base for caching of triangulation 2017-08-17 11:12:21 +01:00
80ffdfb149 ENH: AMIInterpolation - updated to use Enum class 2017-08-17 11:11:26 +01:00
e3d306d3cf TUT: additional and extra closing braces in dictionaries 2018-06-18 14:05:49 +02:00
bcb2267920 ENH: reduce verbosity of safe warning (fixes #881)
- in places where we use std::cerr instead or Warning or FatalError.
  We only want messages from one process though.
2018-06-18 11:19:37 +02:00
e769daf900 Merge branch 'feature-vtkCloud' into 'develop-pre-release'
ENH: vtkCloud function object (issue #866)

See merge request Development/OpenFOAM-plus!206
2018-06-18 13:22:37 +01:00
9a2d25beb8 Merge branch 'feature-restoreFieldNames' into 'develop-pre-release'
ENH: add foamRestoreFields utility (issue #877)

See merge request Development/OpenFOAM-plus!207
2018-06-18 13:13:40 +01:00
6a13ad2d93 ENH: vtkCloud function object (issue #866)
- writes lagrangian data in VTP format during a simulation.
  In parallel, all data are written from the master.
2018-06-16 01:16:00 +02:00
b30138595c ENH: adjustments to runTimePostProcessing
- support VTP input in functionObjectCloud scene element

- additional fallback lookup of cloud information from state properties
  instead of cloud OutputProperties
2018-06-15 23:01:27 +02:00
c5518dd9ff ENH: additional vtk tools for faceNormals, writing file-series 2018-06-15 22:44:00 +02:00
0ec8e3e780 STY: Formatting log output for stabilityBlendingFactor 2018-06-15 13:43:57 -07:00
c888db2e87 ENH: add foamRestoreFields utility (issue #877)
- "Restore" field names by removing the ending.
  Useful, for example, to change a UMean to U field for further
  calculation.
2018-06-15 11:01:19 +02:00
01f76d7d55 CONFIG: list Clang37 as well for ThirdParty clang
- for Darwin, mention that clang is the only compiler configured

- adjust comments
2018-06-15 09:06:06 +02:00
d77df7aa11 STY: Improving log info in stabilityBlendingFactor 2018-06-14 12:44:43 -07:00
b76d6b5cb5 STYLE: adjust tests for some updates in methods (issue #876) 2018-06-14 17:17:17 +02:00
ba156655aa BUG: incorrect iterator access in ListOps::create (issue #876) 2018-06-14 16:23:10 +02:00
853ec2bf64 STYLE: doxygen fixes for surfaceFieldValue 2018-06-14 16:14:31 +02:00
3b6027d1be ENH: test: make test apps compile. Fixes #876. 2018-06-14 15:14:14 +01:00
3d5d3b84d1 GIT: Adding files missed in commit 8540e6f 2018-06-14 15:11:48 +01:00
357042c801 TUT: Updates for combustionModel = none. See #867 2018-06-14 14:45:32 +01:00
15288516c7 INT: Added wave-mangrove interaction test from IH Cantabria 2018-06-14 14:30:42 +01:00
d1ca1ff51d INT: Removed incompatible case 2018-06-14 14:16:45 +01:00
8540e6fb72 INT: ddtPhiCorr - reinstated v1712 behaviour and provided experimental
version on a switch.  See #867

By default the code will use the same form as previous versions

To use the experimental version integrated from openfoam.org commit
da787200 set the info switch in the controlDict:

    InfoSwitches
    {
        experimentalDdtCorr 1;
    }
2018-06-14 14:00:49 +01:00
46dfc66c08 INT: Refactored waves mangrove interaction fvOptions 2018-06-14 11:35:37 +01:00
337aca5fd5 ENH: reduce some isoSurfaceCell regularise failures (closes #870)
- when the iso-surface (eg, a cut plane, or distanceSurface) passes
  exactly through the cell centre, zero-sized triangles can occur.
  These should be merged away.
2018-06-14 14:31:07 +02:00
e7d81dfe04 COMP: stop some icc warnings
- change "\%" -> "%" in plain string
2018-06-14 13:12:13 +02:00
7a7ecf600f ENH: prescribedRotation: smaller end time so simulation is shorter. 2018-06-14 13:47:07 +01:00
6e6ae853b5 ENH: prescribedRotation: improvements to testcase. See #872. 2018-06-14 13:45:49 +01:00
b50331d543 SUBMODULE: updates for catalyst
- minor change to pruning of lagrangian fields
2018-06-14 12:58:54 +02:00
7ca3da492e COMP: single-precision build 2018-06-14 12:03:19 +02:00
e59d167ed3 ENH: addr2line for Darwin handles relative addresses for executables 2018-06-14 11:28:05 +02:00
e20eaf6af9 CONFIG: update completion cache for csh use 2018-06-14 11:14:51 +02:00
25472673d9 ENH: prescribedRotation: fix testcase. Fixes #872. 2018-06-13 17:43:36 +01:00
78418c875c COMP: corrected field construct 2018-06-13 17:36:34 +01:00
2a29de0ff8 INT: Initial commit of Mangroves source from IH Cantabria 2018-06-13 15:10:44 +01:00
54ebae39de STYLE: mention uniformity index in doxygen 2018-06-13 16:54:28 +02:00
07b573ad5a BUG: missed parameter in dictionary::readCompat call 2018-06-13 16:09:49 +02:00
f0a92b11d1 STYLE: adjust AMI information (issue #860)
- use "min:xxx" for consistency with other outputs

- adjust decompositionInformation as well
2018-06-13 15:26:59 +02:00
a1f5f33091 Merge branch 'feature-isoAdvector-AMR' into 'develop-pre-release'
Feature iso advector AMR

See merge request Development/OpenFOAM-plus!205
2018-06-13 14:44:39 +01:00
c909a5df25 GIT: resolved merge conflict 2018-06-13 14:20:18 +01:00
9258b558f4 ENH: Darwin adjustments
- link CGAL (clang version) without reference to mpfr,gmp libraries

- use offset address in printStack for Darwin as well

- alternative handling of feexcept on Darwin
2018-06-13 13:32:19 +02:00
e3f85039a0 CONFIG: set API version number to 1806 for pre-release branch 2018-06-13 13:10:14 +02:00
53959e7e45 COMP: ambiguous construction from tmp (clang)
STYLE: more consistent use of dimensioned Zero
2018-06-13 12:46:15 +02:00
a784afc87d STYLE: floor/truncate instead of rounding for Random::position (issue #865)
- affects random integer ranges.
  Simpler to extend the range by one and floor (truncate) instead of
  rounding using odd intervals.
2018-06-13 12:38:13 +02:00
e6fd82f173 ENH: interIsoFoam updates
- Reimplemented treatment of alpha1, phi and U in case of
  nOuterCorrectors > 1 based on storePrevIter() to avoid cluttering the
  solver with unnecessary fields in case of nOuterCorrectors = 1.
2018-06-13 11:46:21 +02:00
67310ed4ef ENH: sort cellCentre output according to global cell index (issue #869)
- replace SortableList with sortedOrder, to reduce some overhead
2018-06-13 11:08:58 +02:00
22a7c8bb7f INT: Updated and added Gabi's irregular multi-direction tutorial 2018-06-13 13:32:56 +01:00
a7425273a0 INT: refactored wave model code 2018-06-13 12:45:40 +01:00
bab72d5139 ENH: multiple updates to interIsoFoam related code
- Updated tutorial headers
- Added copyright note to isoAdvector src
- Removed outcommented code lines in interIsoFoam solver
- Removed all LTS from interIsoFoam since this is not currently supported
- Confirmed that discInConstantFlow gives identical results with N subCylces and time step N*dt
- Confirmed that this also holds when nOuterCorrectors > 1.
2018-06-12 23:14:10 +02:00
13d49f60fc INT: Initial commit of the new irregular wave model 2018-06-12 17:21:28 +01:00
83b8032dcc TUT: Modified tutorials and added cyclic test case. 2018-06-12 14:01:25 +02:00
25a7e4da7b INT: Initial update of isoAdvector and interIsoFoam to work with AMR. 2018-06-11 17:51:54 +02:00
8f22683615 STYLE: Renamed source files to reflect solver names 2018-06-11 13:44:25 +01:00
4e8fd19d3d ENH: Refactored creation of simplified meshes for -dry-run operation
TODO: migrate singleCellFvMesh into simplified mesh framework (?)
2018-06-11 12:42:09 +01:00
0643a2a941 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 18:27:04 -07:00
b2bb46c39d ENH: Tutorial modifications for Medium Test - 12.06.2018 2018-06-12 18:26:17 -07:00
b2b77c9c13 ENH: add 'cellCentre' sampledSet (issue #869)
- samples on cell centres, can optionally limit based on a bounding box.
  Can be used, for example, to extract volume fields into CSV format.
2018-06-12 23:22:23 +02:00
7402cd7b5a ENH: make sampleSets setSamples movable - preliminary to issue #869
- add some more documentation
2018-06-12 19:19:10 +02:00
c05dab5e50 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 08:30:23 -07:00
dcfaeef0ad ENH: Droping tangential U on the master for the swirling fan BC. 2018-06-12 08:29:20 -07:00
5561307913 ENH: improve robustness of ensight surface reader (issue #868)
- improve handling of model: ... line

- simplify parsing of xxx element: ... lines
2018-06-12 14:11:23 +02:00
642e5efdea Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-06-12 08:23:01 +02:00
3bcbb1615b ENH: improve uniformity of Random::position<label>() (closes #865)
- start/end values were underrepresented due to rounding.
  Now extend the range to include -0.5 and +0.5 beyond the usual
  range to ensure the same number density.
2018-06-12 08:16:06 +02:00
c8d585b136 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-11 16:16:28 -07:00
bb1fe5fcfc STY: Modifying warning message 2018-06-11 16:15:38 -07:00
5848b0afd5 BUG: Fixing ray dAve and omega for 1D and 2D cases 2018-06-08 16:55:27 -07:00
698a6d59e0 STY: Tide of chockedNozzle tutorial 2018-06-08 12:22:15 -07:00
ee06e8de33 STY: Cleaning Info statement in BC constructor 2018-06-08 12:20:48 -07:00
fdfc5bd0e9 BUG: Changing naming for log to total heat 2018-06-06 13:24:37 -07:00
46e7dab0cb ENH: Adding stabilizationSchemes FO and tutorial 2018-06-06 12:54:34 -07:00
47d7405d62 ENH: Updating interFoam/RAS/motorBike tutorial 2018-06-06 12:53:21 -07:00
c229bc8a05 ENH: Adding Fatal error if rEff is zero 2018-06-06 12:51:40 -07:00
82fed8f877 GIT: interDyMFoam: moved tutorial. See #856. 2018-06-06 13:55:20 +01:00
0a62fb4593 ENH: postProcess: Clear dictionary to avoid merge warning. See #807. 2018-06-06 09:07:32 +01:00
a7f076385c ENH: twistingColumn: change decomposition method 2018-06-06 09:06:41 +01:00
d98c901ca4 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-05 10:45:25 -07:00
9d31ff4436 BUG: Update mixture type in tutorials 2018-06-05 10:44:41 -07:00
ea4c4f1b2f BUG: Correct EP ID 693. Avoid sum flux over proc patches twice 2018-06-05 10:43:46 -07:00
8df0a7022a STYLE: Minor code update 2018-06-05 16:42:03 +01:00
3530711219 ENH: Refactored the dummyFvMesh code 2018-06-05 16:10:04 +01:00
a3228f861a ENH: GAMG agglom - more robust treatment for small meshes 2018-06-05 15:13:13 +01:00
67d4736a16 COMP: fvMesh: add hasDb() member 2018-06-05 10:54:58 +01:00
cf9209e42c GIT: Removed unused files 2018-06-01 15:39:41 +01:00
dc521b95df STYLE: consistent use of '= delete' 2018-05-30 12:03:17 +02:00
5aa955c9d2 GIT: include submodules in develop-pre-release branch 2018-06-11 11:53:29 +02:00
6b15244de3 STYLE: Enum instead of NamedEnum for fileOperation 2018-06-11 11:40:40 +02:00
5162b9b2b3 TUT: Updated residuals FO usage for field output 2018-05-24 15:50:43 +01:00
5b9c4ceae5 ENH: rigidbodyDynamics: prescribed rotation + testcase
See:
src/rigidBodyDynamics/restraints/prescribedRotation
tutorials/multiphase/overInterDyMFoam/boatAndPropeller
2018-04-19 17:54:24 +01:00
9b330a9e68 ENH: updated residuals function object field output
Fields now correspond to the initial residual for the first solver
iteration
2018-01-17 13:19:36 +00:00
6312f80918 ENH: residuals function object - extended to write residual fields
Residual fields can be written using the new 'writeFields' entry, e.g.

    functions
    {
        residual
        {
            type            residuals;
            libs            ("libutilityFunctionObjects.so");
            fields          (".*");
            writeControl    writeTime;
            writeFields     true;
        }
    }

Fields currently correspond to the initial residual for the last solver
iteration.
2018-01-16 12:13:11 +00:00
08193a50fa ENH: Pair collision model - added ramp time to bleed-in force contributions 2018-05-22 10:05:36 +01:00
885c47150e ENH: chemFoam - updated mesh creation 2018-01-11 21:34:27 +00:00
aec949d7cc ENH: Consistency improvement for setting postProcessing directory name 2018-02-27 14:37:05 +00:00
853b9abb79 ENH: Utilities - add -region option when creating meshes 2018-01-16 12:10:20 +00:00
66ba2dd674 ENH: check case tool - updated command line arguments:
-dry-run : perform check only and no writing
-dry-run-write: perform check and write to the next time step.  This
also triggers function objects that fire on the call to write()
2018-02-26 11:46:03 +00:00
b50bbc7ef2 ENH: Added new dry-run options to solvers 2018-01-11 14:23:17 +00:00
1791a3a334 ENH: Added tools to generate simplified meshes used to check case set-ups 2018-01-11 14:21:51 +00:00
a2762d16fa ENH: Field - read error if insufficient values provided, but allow if more are available 2018-01-12 14:19:46 +00:00
eedb266c72 ENH: polyBoundaryMeshEntries - respect IOobject read flags 2018-01-11 14:19:39 +00:00
a1e5e4abcb COMP: move error trap to within debug scope 2018-01-12 10:03:47 +00:00
8dadd181c1 ENH: surfaceInterpolation - improved robustness when dealing with empty patches 2018-01-11 14:20:26 +00:00
27888bf7aa ENH: Updated mechanism to create empty sets and zones 2018-05-22 10:10:48 +01:00
34606f54b9 COMP: Updated createDpDt for moving meshes 2018-06-01 15:39:28 +01:00
f51ee9a0e2 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-31 17:34:16 +01:00
ec5d9cdf01 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-29 12:13:58 +01:00
d703f09d11 BUG: fileOperation: avoid par syn in uncollated. Fixes #846. 2018-05-29 12:13:13 +01:00
9d5cb5751e ENH: additional methods for tmpNrc (as per tmp)
- move constructable
- factory methods: New, NewFrom
- reset methods
2018-05-28 17:01:03 +02:00
369604e935 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-22 14:06:07 -07:00
d8f9029c7f ENH: adding needed dictionary in smallPoolFire2D.
Update QDot dimensions for diffusionMulticomponent
2018-05-22 14:05:03 -07:00
cb74d7b9d4 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 17:03:58 +01:00
f7fa618e8f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 09:53:10 +01:00
db23dd7b57 Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-05-21 08:59:55 +01:00
977a9894b4 ENH: codedMotionSolver: motion solver with user-supplied coding 2018-05-21 08:59:01 +01:00
ad25e18c7f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-18 12:18:13 +01:00
6180e0db8b INT: Additional integration updates/clean-up 2018-05-18 10:49:10 +01:00
b78d37e93c Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-18 01:31:17 -07:00
e0912a058c ENH: Adding pressure work terms for compressibleInterFoam
Removing temporary fix from compressibleInterDyFOAM to re-calculte Uf with morphing mesh
2018-05-18 01:27:13 -07:00
5474d161f2 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-17 17:11:57 +01:00
f700bce878 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-17 12:14:27 +01:00
647e1c892d INT: Additional integration updates/clean-up 2018-05-16 10:32:42 +01:00
7ac5d76773 ENH: fvMeshDistribute: uses topological rather than geometric point merging
Patch contributed by Mattijs Janssens
2018-03-23 17:02:18 +00:00
8959b8e00a ENH: Improvements to the fileHandler and collated IO
Improvements to existing functionality
--------------------------------------
  - MPI is initialised without thread support if it is not needed e.g. uncollated
  - Use native c++11 threading; avoids problem with static destruction order.
  - etc/cellModels now only read if needed.
  - etc/controlDict can now be read from the environment variable FOAM_CONTROLDICT
  - Uniform files (e.g. '0/uniform/time') are now read only once on the master only
    (with the masterUncollated or collated file handlers)
  - collated format writes to 'processorsNNN' instead of 'processors'.  The file
    format is unchanged.
  - Thread buffer and file buffer size are no longer limited to 2Gb.

The global controlDict file contains parameters for file handling.  Under some
circumstances, e.g. running in parallel on a system without NFS, the user may
need to set some parameters, e.g. fileHandler, before the global controlDict
file is read from file.  To support this, OpenFOAM now allows the global
controlDict to be read as a string set to the FOAM_CONTROLDICT environment
variable.

The FOAM_CONTROLDICT environment variable can be set to the content the global
controlDict file, e.g. from a sh/bash shell:

    export FOAM_CONTROLDICT=$(foamDictionary $FOAM_ETC/controlDict)

FOAM_CONTROLDICT can then be passed to mpirun using the -x option, e.g.:

    mpirun -np 2 -x FOAM_CONTROLDICT simpleFoam -parallel

Note that while this avoids the need for NFS to read the OpenFOAM configuration
the executable still needs to load shared libraries which must either be copied
locally or available via NFS or equivalent.

New: Multiple IO ranks
----------------------
The masterUncollated and collated fileHandlers can now use multiple ranks for
writing e.g.:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)'

In this example ranks 0 ('processor0') and 3 ('processor3') now handle all the
I/O.  Rank 0 handles 0,1,2 and rank 3 handles 3,4,5.  The set of IO ranks should always
include 0 as first element and be sorted in increasing order.

The collated fileHandler uses the directory naming processorsNNN_XXX-YYY where
NNN is the total number of processors and XXX and YYY are first and last
processor in the rank, e.g. in above example the directories would be

    processors6_0-2
    processors6_3-5

and each of the collated files in these contains data of the local ranks
only. The same naming also applies when e.g. running decomposePar:

decomposePar -fileHandler collated -ioRanks '(0 3)'

New: Distributed data
---------------------

The individual root directories can be placed on different hosts with different
paths if necessary.  In the current framework it is necessary to specify the
root per slave process but this has been simplified with the option of specifying
the root per host with the -hostRoots command line option:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)' \
        -hostRoots '("machineA" "/tmp/" "machineB" "/tmp")'

The hostRoots option is followed by a list of machine name + root directory, the
machine name can contain regular expressions.

New: hostCollated
-----------------

The new hostCollated fileHandler automatically sets the 'ioRanks' according to
the host name with the lowest rank e.g. to run simpleFoam on 6 processors with
ranks 0-2 on machineA and ranks 3-5 on machineB with the machines specified in
the hostfile:

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler hostCollated

This is equivalent to

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler collated -ioRanks '(0 3)'

This example will write directories:

    processors6_0-2/
    processors6_3-5/

A typical example would use distributed data e.g. no two nodes, machineA and
machineB, each with three processes:

    decomposePar -fileHandler collated -case cavity

    # Copy case (constant/*, system/*, processors6/) to master:
    rsync -a cavity machineA:/tmp/

    # Create root on slave:
    ssh machineB mkdir -p /tmp/cavity

    # Run
    mpirun --hostfile hostfile icoFoam \
        -case /tmp/cavity -parallel -fileHandler hostCollated \
        -hostRoots '("machineA" "/tmp" "machineB" "/tmp")'

Contributed by Mattijs Janssens
2018-03-21 12:42:22 +00:00
d469bbae4b COMP: Allwmake: feed through 'objects' targer for wmakeCollect 2018-05-17 08:39:57 +01:00
c812b4c6f7 ENH: atmosphericModels: Added Lopes da Costa porosity and turbulence models
Specialized variants of the power law porosity and k epsilon turbulence models
developed to simulate atmospheric flow over forested and non-forested complex
terrain.

Class
    Foam::powerLawLopesdaCosta

Description
    Variant of the power law porosity model with spatially varying
    drag coefficient

    given by:

        \f[
            S = -\rho C_d \Sigma |U|^{(C_1 - 1)} U
        \f]

    where
    \vartable
        \Sigma | Porosity surface area per unit volume
        C_d    | Model linear coefficient
        C_1    | Model exponent coefficient
    \endvartable

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

Class
    Foam::RASModels::kEpsilonLopesdaCosta

Description
    Variant of the standard k-epsilon turbulence model with additional source
    terms to handle the changes in turbulence in porous regions represented by
    the powerLawLopesdaCosta porosity model.

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

    The default model coefficients are
    \verbatim
        kEpsilonLopesdaCostaCoeffs
        {
            Cmu         0.09;
            C1          1.44;
            C2          1.92;
            sigmak      1.0;
            sigmaEps    1.3;
        }
    \endverbatim

Tutorial case to follow.
2018-03-20 22:26:07 +00:00
54ddd14168 STYLE: src/atmosphericModels: New library containing models specific to atmospheric flows
Converted the atmBoundaryLayerInlet boundary conditions to inletOutlet to handle
changes in inflow orientation without the need for re-meshing.
2018-03-18 14:08:20 +00:00
a8261a5626 STYLE: fvPatchFields: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2885
2018-03-22 11:09:42 +00:00
f246a81f8a BUG: wideBandAbsorptionEmission: Corrected errors
Resolves bug-reports
https://bugs.openfoam.org/view.php?id=2881
https://bugs.openfoam.org/view.php?id=2882

Patches contributed by Kevin Nordin-Bates
2018-03-21 18:03:29 +00:00
a33b6aa447 ENH: particle: Optimisation by inlining key methods
Resolves bug report https://bugs.openfoam.org/view.php?id=2871
2018-03-13 08:22:33 +00:00
08079c4be9 ENH: cellLimitedGrad gradientLimiters: Added support for run-time selectable gradient limiter function
Minmod is the default limiter function and specified with an explicit name e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited Gauss linear 1;
    }

Venkatakrishnan and cubic limiter functions are also provided and may be
specified explicitly e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<Venkatakrishnan> Gauss linear 1;
    }

or

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<cubic> 1.5 Gauss linear 1;
    }

The standard minmod function is recommended for most applications but if
convergence or stability problems arise it may be beneficial to use one of the
alternatives which smooth the gradient limiting.  The Venkatakrishnan is not
well formulated and allows the limiter to exceed 1 whereas the cubic limiter is
designed to obey all the value and gradient constraints on the limiter function,
see

    Michalak, K., & Ollivier-Gooch, C. (2008).
    Limiters for unstructured higher-order accurate solutions
    of the Euler equations.
    In 46th AIAA Aerospace Sciences Meeting and Exhibit (p. 776).

The cubic limiter function requires the transition point at which the limiter
function reaches 1 is an input parameter which should be set to a value between
1 and 2 although values larger than 2 are physical but likely to significantly
reduce the accuracy of the scheme.

VenkatakrishnanGradientLimiter: Updated documentation

cubicGradientLimiter: Documented private data
2018-02-26 23:14:46 +00:00
c5125c3299 STYLE: greyDiffusiveRadiationMixedFvPatchScalarField: Simplified the lookup of the fvDOM model 2018-02-11 21:02:27 +00:00
7f42f90901 BUG: directFieldMapper: Corrected constructor name
Note this class is not currently used in OpenFOAM

Resolves bug-report https://bugs.openfoam.org/view.php?id=2829
2018-02-07 15:57:50 +00:00
ee06a687eb TUT: Corrected file header 2018-05-16 16:15:50 +01:00
1fc177152a TUT: aerofoilNACA0012 tutorial for rhoSimpleFoam and rhoPimpleFoam
The tutorial demonstrates generation of a C-grid mesh using blockMesh
The geometry is provided by a surface mesh (OBJ file) of the NACA0012 aerofoil
The case is setup with a freestream flow speed of Ma=0.72

Thanks to Kai Bastos at Duke University for the geometry and helpful input.
2018-02-23 17:05:30 +00:00
7d205cc790 ENH: fixedMeanOutletInletFvPatchField: New outlet/inlet boundary condition which fixes the outlet mean
Description
    This boundary condition extrapolates field to the patch using the near-cell
    values and adjusts the distribution to match the specified, optionally
    time-varying, mean value.  This extrapolated field is applied as a
    fixedValue for outflow faces but zeroGradient is applied to inflow faces.

    This boundary condition can be applied to pressure when inletOutlet is
    applied to the velocity so that a zeroGradient condition is applied to the
    pressure at inflow faces where the velocity is specified to avoid an
    unphysical over-specification of the set of boundary conditions.

Usage
    \table
        Property     | Description             | Required    | Default value
        meanValue    | mean value Function1    | yes         |
        phi          | Flux field name         | no          | phi
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            fixedMeanOutletInlet;
        meanValue       1.0;
    }
    \endverbatim

See also
    Foam::fixedMeanFvPatchField
    Foam::outletInletFvPatchField
    Foam::Function1Types
2018-04-04 22:04:25 +01:00
8165c462cd ENH: freestreamPressure, freestreamVelocity: New blended boundary conditions for the freestream
These BCs blend between typical inflow and outflow conditions based on the
velocity orientation.

airFoil2D tutorial updated to demonstrate these new BCs.
2018-02-23 12:23:06 +00:00
83d935d517 ENH: error: exit with the given error number rather than 1
Resolves patch request https://bugs.openfoam.org/view.php?id=2827
2018-02-06 11:48:15 +00:00
ec326f5a4c ENH: chemistryModel: Added new option to specify the initial ODE integration time-step
In constant/chemistryProperties in addition to the specification of the initial
ODE integration time-step used at the start of the run:

    initialChemicalTimeStep 1e-12;

this time step may now also be specified for every chemistry integration by
setting the optional entry maxChemicalTimeStep, e.g.

    maxChemicalTimeStep 1e-12;
2018-02-01 11:27:31 +00:00
05f5a293bc ENH: MRF: Remove ddtCorr from MRF regions
MRFZone: Filter-out excluded patches from ddtCorr
2018-02-10 22:46:17 +00:00
bab508821e BUG: EulerDdtScheme: Corrected fvcDdt dimensions for multiphase moving-mesh cases
Resolves bug-report https://bugs.openfoam.org/view.php?id=2822
2018-01-31 16:44:58 +00:00
fe4752d28a ENH: ddtScheme::fvcDdtPhiCoeff: Improved formulation providing better stability/accuracy balance
Resolves problem with pressure "staggering" when running with a very Courant
number.
2018-01-08 21:35:00 +00:00
4272820fca BUG: writeFile: Increased the number of value characters
The number of characters needed to print a double in scientific format
is 8 plus the number of decimal places; e.g., -6.453452e-231 (6 decimal
places, 14 characters). This has been set in writeFile.C, replacing a
value of 7. Presumably, the case of three digits in the exponent was not
considered when this was first implemented. This change ensures at least
one character of whitespace between tabulated numbers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2801
2018-01-04 08:33:46 +00:00
13d893e4c0 ENH: blockMesh: Always put the mesh in the constant directory 2017-12-19 09:58:51 +00:00
f37ec93404 ENH: chtMultiRegionFoam: Added support for reactions
chtMultiRegionFoam now supports reaction/combustion modelling in fluid
regions in the same way as reactingFoam.

TUT: chtMultiRegionFoam: Added reverseBurner tutorial

This tutorial demonstrates chtMultiRegionFoam's combustion capability
2017-12-13 08:37:25 +00:00
2235ed1f86 STYLE: OSspecific/POSIX: Updated function name in diagnostic messages
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2786
2017-12-10 11:08:29 +00:00
5ea75f8a95 ENH: blockMesh: Added support for automatically reordering cyclic patches
Patch contributed by Mattijs Janssens
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1692
2017-12-01 11:01:30 +00:00
dcad66f7d3 INT: Additional integration updates/clean-up 2018-05-14 13:21:22 +01:00
2d238139b3 STYLE: thermo: Macro renaming
Thermo and reaction thermo macros have been renamed and refactored. If
the name is plural (make???Thermos) then it adds the model to all
selection tables. If not (make???Thermo) then it only adds to the
requested psi or rho table.
2017-12-14 16:37:21 +00:00
8aabbec71e ENH: reactionThermo: Single component mixture
This mixture allows a reacting solver to be used with a single component
fluid without the additional case files usually required for reacting
thermodynamics.

reactionThermo: Instantiated more single component mixtures

ENH: reactionThermo: Select singleComponentMixture as pureMixture

A pureMixture can now be specified in a reacting solver. This further
enhances compatibility between non-reacting and reacting solvers.

To achieve this, mixtures now have a typeName function of the same form
as the lower thermodyanmic models. In addition, to avoid name clashes,
the reacting thermo make macros have been split into those that create
entries on multiple selection tables, and those that just add to the
reaction thermo table.
2017-12-01 11:12:05 +00:00
2193c8e31a ENH: basicSpecieThermo: Updated solver references to mixture class 2017-12-01 11:05:28 +00:00
0c5a87ceba ENH: cylinderToFace, cylinderAnnulusToFace: New face sources
Face equivalents of cylinderToCell and cylinderAnnulusToCell.

Tested-by: Henry Weller <http://openfoam.org>
2017-11-27 11:37:03 +00:00
dde93671ee ENH: forces FO - updated reading of nu 2018-05-17 11:51:31 +01:00
e2c6985ea5 ENH: turbulenceFields FO - added turbulence intensity to list of available fields 2018-05-17 11:08:00 +01:00
1dbed00345 ENH: ParticleFunctionObjects: Added PatchCollisionDensity object
This function object will write a paraview-viewable field showing the
area-density of parcel collisions on every patch face. It also outputs
the rate of collisions hitting each patch face, calculated over an
interval equal to the time elapsed since the last output. It has an
optional entry to specify a minimum incident speed below which a
collision is not counted.

It can be enabled in the cloud properties file as follows:

    cloudFunctions
    {
        patchCollisionDensity1
        {
            type        patchCollisionDensity;
            minSpeed    1e-3; // (optional)
        }
    }

This work was supported by Anton Kidess, at Hilti
2018-01-11 09:13:08 +00:00
22aae2816d ENH: combustionModels: Changed the construction order
The combustion and chemistry models no longer select and own the
thermodynamic model; they hold a reference instead. The construction of
the combustion and chemistry models has been changed to require a
reference to the thermodyanmics, rather than the mesh and a phase name.

At the solver-level the thermo, turbulence and combustion models are now
selected in sequence. The cyclic dependency between the three models has
been resolved, and the raw-pointer based post-construction step for the
combustion model has been removed.

The old solver-level construction sequence (typically in createFields.H)
was as follows:

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(mesh)
    );

    psiReactionThermo& thermo = combustion->thermo();

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, thermo)
    );

    combustion->setTurbulence(*turbulence);

The new sequence is:

    autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh));

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, *thermo)
    );

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(*thermo, *turbulence)
    );

ENH: combustionModel, chemistryModel: Simplified model selection

The combustion and chemistry model selection has been simplified so
that the user does not have to specify the form of the thermodynamics.

Examples of new combustion and chemistry entries are as follows:

    In constant/combustionProperties:

        combustionModel PaSR;

        combustionModel FSD;

    In constant/chemistryProperties:

        chemistryType
        {
            solver          ode;
            method          TDAC;
        }

All the angle bracket parts of the model names (e.g.,
<psiThermoCombustion,gasHThermoPhysics>) have been removed as well as
the chemistryThermo entry.

The changes are mostly backward compatible. Only support for the
angle bracket form of chemistry solver names has been removed. Warnings
will print if some of the old entries are used, as the parts relating to
thermodynamics are now ignored.

ENH: combustionModel, chemistryModel: Simplified model selection

Updated all tutorials to the new format

STYLE: combustionModel: Namespace changes

Wrapped combustion model make macros in the Foam namespace and removed
combustion model namespace from the base classes. This fixes a namespace
specialisation bug in gcc 4.8. It is also somewhat less verbose in the
solvers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2787

ENH: combustionModels: Default to the "none" model

When the constant/combustionProperties dictionary is missing, the solver
will now default to the "none" model. This is consistent with how
radiation models are selected.
2017-11-23 16:57:12 +00:00
255ec7366b ENH: multiphaseInterFoam: Merged dynamic mesh functionality of multiphaseInterDyMFoam into multiphaseInterFoam
and replaced multiphaseInterDyMFoam with a script which reports this change.

The multiphaseInterDyMFoam tutorials have been moved into the multiphaseInterFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.
2017-12-01 15:51:21 +00:00
3666d90f31 ENH: interMixingFoam: Added support for mesh-motion and automatic refinement/unrefinement 2017-12-01 14:19:54 +00:00
ede4759b80 ENH: interFoam: Merged dynamic mesh functionality of interDyMFoam into interFoam
and replaced interDyMFoam with a script which reports this change.

The interDyMFoam tutorials have been moved into the interFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

interMixingFoam, multiphaseInterFoam: Updated for changes to interFoam
2017-11-30 23:56:42 +00:00
e50af751a4 ENH: pimpleFoam, rhoPimpleFoam, interDyMFoam: Rationalized mesh-motion support
Added support for mesh-motion update within PIMPLE loop in pimpleFoam and rhoPimpleFoam.
2017-11-30 13:07:42 +00:00
889791060c INT: Additional integration updates 2018-05-11 12:04:33 +01:00
2f888d1684 ENH: rhePimpleFoam: Merged dynamic mesh functionality of rhoPimpleDyMFoam into rhoPimpleFoam
and replaced rhoPimpleDyMFoam with a script which reports this change.

The rhoPimpleDyMFoam tutorials have been moved into the rhoPimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

rhoReactingFoam: Updated for changes to rhoPimpleFoam files
2017-11-23 12:13:37 +00:00
81cea09983 ENH: pimpleDyMFoam: Improved efficiency and consistency when running on a static mesh
Now pimpleDyMFoam is exactly equivalent to pimpleFoam when running on a
staticFvMesh.  Also when the constant/dynamicMeshDict is not present a
staticFvMesh is automatically constructed so that the pimpleDyMFoam solver can
run any pimpleFoam case without change.

pimpleDyMFoam: Store Uf as an autoPtr for better error handling

pimpleFoam: Set initial deltaT from the Courant number

for improved stability on start-up and compatibility with pimpleDyMFoam

ENH: pimpleFoam: Merged dynamic mesh functionality of pimpleDyMFoam into pimpleFoam

and replaced pimpleDyMFoam with a script which reports this change.

The pimpleDyMFoam tutorials have been moved into the pimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

tutorials/incompressible/pimpleFoam: Updated pimpleDyMFoam tutorials to run pimpleFoam

Renamed tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleDyMFoam

-> tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam
2017-11-18 01:13:48 +00:00
be9d388a68 ENH: MRF: Added support for mesh refinement/unrefinement and other topology changes 2017-08-18 22:22:47 +01:00
c06f716555 ENH: reactingParcelFoam: Made YEqn diffusivity consistent with other solvers 2017-10-10 10:14:48 +01:00
910d1a3021 INT: Additional integration updates 2018-05-10 15:13:51 +01:00
e2c4472ab6 STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
3c58321b4b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d76923d851 ENH: AMI: Consistency between overlap/normalisation areas
The patch magSf calculation has been changed so that it uses the same
triangulation as the overlap algorithm. This improves consistency and
means that for exactly conforming patches (typically before any mesh
motion) the weights do not require normalisation.
2017-10-31 08:59:21 +00:00
293c0c3014 BUG: compressibleInterFoam family: Corrected transonic option
Resolves bug-report https://bugs.openfoam.org/view.php?id=2785

ENH: compressibleInterFoam family: merged two-phase momentum stress modelling from compressibleInterPhaseTransportFoam

The new momentum stress model selector class
compressibleInterPhaseTransportModel is now used to select between the options:

Description
    Transport model selection class for the compressibleInterFoam family of
    solvers.

    By default the standard mixture transport modelling approach is used in
    which a single momentum stress model (laminar, non-Newtonian, LES or RAS) is
    constructed for the mixture.  However if the \c simulationType in
    constant/turbulenceProperties is set to \c twoPhaseTransport the alternative
    Euler-Euler two-phase transport modelling approach is used in which separate
    stress models (laminar, non-Newtonian, LES or RAS) are instantiated for each
    of the two phases allowing for different modeling for the phases.

Mixture and two-phase momentum stress modelling is now supported in
compressibleInterFoam, compressibleInterDyMFoam and compressibleInterFilmFoam.
The prototype compressibleInterPhaseTransportFoam solver is no longer needed and
has been removed.
2017-12-09 21:03:59 +00:00
e061de2c0a BUG: decomposedBlockData: fixed reconstruction problem
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2744
2017-11-10 16:02:12 +00:00
5688340a05 ENH: globalIndexAndTransform: Don't generate transforms from coincident-full-match patches
Another exception has been added to globalIndexAndTransform to prevent
transformations being generated from coupled patch pairs marked with
coincident-full-match transformations. Foamy generates such patches, and
the faces on them at intermediate stages of meshing can be degenerate,
making the calculation of transformations unreliable. This change
enforces the definition that coincident-full-match patch pairs are not
transformed.
2017-11-07 09:12:59 +00:00
3839f7478a ENH: foamyHexMesh: Generate coincident-full-match processor patches 2017-11-07 09:18:41 +00:00
47979d18ff ENH: processorPolyPatch: Use relative match tolerance for coincident-full-match ordering 2017-11-07 09:11:03 +00:00
3e19185f10 ENH: mirrorMesh: Added support for cellLevel and pointLevel to support dynamic mesh refinement
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2712
2017-10-27 14:58:26 +01:00
798ac98aef BUG: simpleFoam: moved createFvOptions.H into createFields.H for -postProcess option
To unsure fvOptions are instantiated for post-processing createFvOptions.H must
be included in createFields.H rather than in the solver directly.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: porousSimpleFoam: moved createFvOptions.H into createFields.H for -postProcess option

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: solvers: Moved fvOption construction into createFields.H for post-processing

This ensures that the fvOptions are constructed for the -postProcessing option
so that functionObjects which process fvOption data operate correctly in this
mode.
2017-10-23 22:20:52 +01:00
85a2ae6eaa ENH: surfaceFilmModels::standardPhaseChange: Add support for treating YInf as zero
by setting the optional switch YInfZero to true.
2017-10-19 17:49:46 +01:00
ee4315375a ENH: fvOptions::PhaseLimitStabilization: New fvOption to stabilize phase transport equations
in the limit of the phase fraction -> 0

Can be used with the Maxwell non-Newtonian laminar stress model when used in
multiphase solvers.
2017-10-18 15:01:21 +01:00
5b5c209785 ENH: chtMultiRegionFoam: Added support for single solid region post-processing
Patch contributed by Bruno Santos

Resolves patch request https://bugs.openfoam.org/view.php?id=2684
2017-09-04 17:13:42 +01:00
8b4fabd0bf STYLE: Updated dictionary entry 2018-04-04 12:02:12 +01:00
bd762c94d0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-17 11:00:51 +01:00
cf0ffa1933 BUG: nearWallFields: point on the face is inside/outside any tet.
Now we directly releate the intersected face triangle to the tet of the
cell the point is on/in. We hope that the tracking handles this ok. Fixes #549.
2017-08-17 10:58:56 +01:00
fc6a8b648f ENH: shortestPath: new line sampling method ('set') that detects the
shortest path between two sets of points. See shortestPathSet.H.
     Fixes #572.
2017-08-17 10:00:14 +01:00
50d7df41e0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-15 11:02:33 +01:00
30941f28be Merge branch 'master' into develop 2017-08-15 11:02:16 +01:00
cf065aade0 BUG: Corrected construction of List from SLList. Fixes #571 2017-08-15 11:00:21 +01:00
fbdd16a293 ENH: add stringOps::splitAny, stringOps::splitSpace
- assists when building simple hand-rolled parsers.
  Also add string::split() taking a sub-string for the delimiter.
2017-08-14 10:36:12 +02:00
139edb2468 ENH: add input surface scaling (issue #514)
- surfaceFeatureExtract
  * dictionary "scale" entry

- triSurface
- triSurfaceLoader
  * optional scaleFactor on reading

- surfaceAdd
- surfaceBooleanFeatures
- surfaceClean
- surfaceCoarsen
  * scale option

- surfaceTransformPoints, transformPoints
  * scale option as scalar or vector quantity
2017-08-14 09:18:15 +02:00
3b16c365ee STYLE: make Switch construct from string explicit (issue #568)
- actually prevent this type of thing:

      Switch sw;
      sw = "none";

  without relinquishing automatic conversion to/from bool.
  Nonetheless, make construct from string explicit.

- Added some minor optimization for the lookup of the switch names.
2017-08-11 16:43:12 +02:00
3093b32702 ENH: support pTotal as a derived field for surfMeshSamplers (issue #567) 2017-08-11 16:40:08 +02:00
4588182352 ENH: add absolute weighting for surfaceFieldValue (issue #567)
- can be useful either for flow-rate weighting where backflow
  is to be ignored in the average, or for flow-rate weighting
  on surfaces with inconsistent orientation.

  Reworked to code to make better use of Enum (the NamedEnum
  replacement). Enum doesn't require contiguous enumeration values,
  which lets us use bitmasking of similar operations to reduce
  duplicate code.
2017-08-11 14:53:24 +02:00
b3128e6ced STYLE: replace file-local functions with the Ostream writeEntry() method
ENH: use std C++ for conversions instead of sscanf()
2017-08-11 08:39:45 +02:00
59b70b04d5 BUG: setSet: use of one-argument constructor. Fixes #566. 2017-08-10 18:41:22 +01:00
d68adc4d31 ENH: Final stage for laserDTRM model and new icoReactingMultiphaseFoam 2017-08-10 09:17:55 -07:00
9887c8f504 ENH: adding thermo changes to handle multiphase T based thermos 2017-08-10 09:17:14 -07:00
6d8a09fd63 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-10 14:43:18 +01:00
f73e5be2b8 ENH: overset: adjust fringe for interFoam 2017-08-10 14:42:39 +01:00
66c836e147 Merge branch 'bug-pstream-tokensending' into 'develop'
Bug pstream token sending

See merge request !140
2017-08-10 13:56:37 +01:00
c782b09322 ENH: Corrections to doxygen help 2017-08-10 11:14:10 +01:00
37e863521a ENH: make token constructors explicit (issue #563)
- access tokenType enum values more consistently.
2017-08-10 11:53:37 +02:00
a09125c3f9 STYLE: extraneous orientedWeightField in documentation (closes #565) 2017-08-10 10:15:55 +02:00
92d1d1f037 CONFIG: verify bash version for completion support
- the (global) associative array requires bash >= 4.2
2017-08-10 10:05:22 +02:00
c847d343af BUG: OPstream send of tokenType may swallow characters (fixes #563)
- the tokenType was being send via write(char), which includes
  isspace filtering. If the tokenType enumeration coincides
  with a whitespace character, it would be suppressed.

  Now add character directly to the buffer.

STYLE: some additional minor private methods to help refactoring

- readStringFromBuffer, writeStringToBuffer for common string
  operation.
2017-08-10 08:17:19 +02:00
4fc4f49cef ENH: Updated fieldAverage FO windowing. See #525
When specifying the averaging data, a new `windowType` option is
available, taking the values:

- none: no windowing
- approximate: past functionality (v1706 and earlier)
- exact: exact moving average - will store and write (for restart) all
  fields in the window
2017-08-09 16:52:03 +01:00
695716d5cc STYLE: use local variables in aliases/functions 2017-08-09 11:58:43 +02:00
18e96325ff Merge branch 'feature-mesh-stitching' into 'develop'
Feature mesh stitching

See merge request Development/OpenFOAM-plus!159
2017-11-04 11:39:11 +00:00
2ee1f73ff2 Merge branch 'feature-hash-table' into 'develop'
Improvements to HashTable internals

See merge request Development/OpenFOAM-plus!158
2017-11-03 17:40:33 +00:00
2ecfb3e986 CONFIG: update clang versions 2017-11-03 14:43:33 +01:00
c5344c3161 COMP: Resolved clang compiler error in transport model updates 2017-11-03 11:10:34 +00:00
f5795afaba STYLE: More use of constexpr for namespace variables 2017-11-03 11:09:17 +00:00
46e8543653 ENH: cell cutting: less verbose. Allow cutting single face. See #631. 2017-11-01 17:46:12 +00:00
053a648ee6 ENH: improvements to HashTable internals
- make single-parameter construct (label) explicit
- consolidate iterators
- slightly reduced overhead for some HashSet types
- improved resizing behaviour
- compact output for empty Ptr hashes
2017-10-31 08:46:47 +01:00
db552fb751 DEFEATURE: remove StaticHashTable
- unused, unmaintained and slower than the regular HashTable
2017-10-30 21:35:05 +01:00
930d6dcaf2 ENH: dummy I/O for nullObject, additional null subclass for zero/one
- the zero::null and one::null sub-classes add an additional null
  output adapter.

  The function of the nil class (special-purpose class only used for
  HashSet) is now taken by zero::null.
2017-10-31 10:54:17 +01:00
6f6029d0a6 COMP: LList: make constructor explicit. Fixes #630. 2017-10-30 16:58:42 +00:00
2851b885a1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-30 11:44:51 +00:00
a79d2835f1 ENH: functionObjectList: format errors from FO reading. Fixes #575. 2017-10-30 11:43:12 +00:00
7e4f3a8237 STYLE: consistent rounding for float/double underflow (issue #625)
- use (value <= VSMALL) instead of (value < VSMALL) for consistency
  with what equal(value, 0) delivers.
2017-10-30 11:38:24 +01:00
ba8fdda5cc ENH: improve wcleanBuild, wcleanPlatform flexibility (issue #627)
- add -compiler=NAME option to remove a build or platforms directory
  corresponding to any specified compiler on the current arch.

- when -compiler or -compiler=NAME is specified, also clean related
  sub-directories as well. This will cleanup mpi-related directory.
2017-10-30 10:31:05 +01:00
cd46cb7041 ENH: consistent reverse iterator definitions for UList and FixedList
- consistent with C++ STL conventions, the reverse iterators should
  use operator++ to transit the list from rbegin() to rend().

  The previous implementation used raw pointers, which meant that they
  had the opposite behaviour: operator-- to transit from rbegin() to
  rend().

  The updated version only has operator++ defined, thus the compiler
  should catch any possible instances where people were using the old
  (incorrect) versions.

- updated forAllReverseIters() and forAllConstReverseIters() macros to
  be consistent with new implementation and with C++ STL conventions.
2017-10-29 20:57:43 +01:00
d6b32094e1 ENH: add reverse iteration macros
- forAllReverseIters and forAllReverseConstIters macros
- stdFoam::rbegin(), stdFoam::rend()
  stdFoam::crbegin(), stdFoam::crend()
2017-10-29 16:02:19 +01:00
15ac4e5c54 Merge branch 'feature-dictionary-scoping-lvalue' into 'develop'
Feature dictionary scoping lvalue

See merge request Development/OpenFOAM-plus!124
2017-10-29 15:36:07 +00:00
743e75b978 STYLE: code cleanup in stringOps 2017-10-29 13:53:34 +01:00
f76431c536 ENH: retain original FoamFile dictionary header when including files.
- previously using a top-level #include would inadvertently remove the
  original header
2017-10-29 12:37:47 +01:00
69786840af STYLE: code cleanup for includeEntry 2017-10-29 11:34:09 +01:00
b4b9303868 Merge branch 'style-list-methods' into 'develop'
Style list methods

See merge request Development/OpenFOAM-plus!157
2017-10-28 16:46:10 +01:00
9729edf293 STYLE: adjusted comments in natstrcmp 2017-10-28 17:38:42 +02:00
5b8b689a37 STYLE: split off HashTableCore into separate header 2017-10-27 16:13:45 +02:00
0a62fd2f87 ENH: allow passing of comparator to sortToc methods
- this increases the flexibility of the interface

- Add stringOps 'natural' string sorting comparison.
  Digits are sorted in their natural order, which means that
      (file10.txt file05.txt file2.txt)
  are sorted as
      (file2.txt file05.txt file10.txt)

STYLE: consistent naming of template parameters for comparators

  - Compare for normal binary predicates
  - ListComparePredicate for list compare binary predicates
2017-10-27 14:28:00 +02:00
8ec64d8128 STYLE: compilation of some unit tests 2017-10-26 23:59:18 +02:00
16e75d8475 ENH: add fileName::validate static method (issue #628)
- similar to word::validate to allow stripping of invalid characters
  without triggering a FatalError.

- use this validated fileName in Foam::readDir to avoid problems when
  a directory contains files with invalid characters in their names

- adjust rmDir to handle filenames with invalid characters

- fileName::equals() static method to compare strings while ignoring
  any differences that are solely due to duplicate slashes
2017-10-26 21:23:24 +02:00
4818b5808e ENH: snappyHexMesh: add different method for cellZone-faceZone consistency. Fixes #629. 2017-10-26 12:08:15 +01:00
2bd2f83f6e ENH: cleanup and rationalize memory-backed streams
- more consistent naming:
  * Versions that hold and manage their own memory:
      IListStream, OListStream

  * Versions that reference a fixed size external memory:
      UIListStream, UOListStream

- use List storage instead of DynamicList within OListStream.
  Avoids duplicate bookkeeping, more direct handling of resizing.
2017-10-26 12:09:47 +02:00
9d334e5601 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-26 09:11:24 +01:00
6fd6610b57 ENH: redistributePar: create dummy sets on non-existing processors 2017-10-26 09:10:21 +01:00
c1c4e91ffb ENH: handle underflow (rounding) of float/double as zero (issue #625)
- The problem occurs when using atof to parse values such as "1e-39"
  since this is out of range for a float and _can_ set errno to
  ERANGE.

  Similar to parsing of integers, now parse with the longest floating
  point representation "long double" via strtold (guaranteed to be
  part of C++11) and verify against the respective VGREAT values for
  overflow. Treat anything smaller than VSMALL to be zero.
2017-10-25 20:55:37 +02:00
9a7c236add Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-25 16:29:33 +01:00
49bcba2da7 ENH: snappyHexMesh: allow restart through suppression of refinement. Fixes #626. 2017-10-25 16:22:59 +01:00
f45832b537 COMP: finiteVolume: single precision build 2017-10-25 15:17:33 +01:00
5c1ec7ecb8 ENH: relocate protected List::size(label) to UList (issue #595)
- makes it accessible for containers that manage their own storage
  and derive directly from UList.

- DynamicList::min_size() method to access the corresponding
  SizeMin template parameter.

- ensure consistency in the reserve size for the constructor

      DynamicList<..> lst(N);

  now has identical sizing as

      DynamicList<..> lst();
      reserve(N);
2017-10-25 08:45:05 +02:00
88f6b8888c Merge branch 'feature-Arrhenius-viscocity-energyFO' into 'develop'
ENH: Arrhenius viscocity model for incompressible viscocity

See merge request Development/OpenFOAM-plus!155
2017-10-28 11:04:46 +01:00
ffabc42dbf ENH: Arrhenius viscocity model and energyTransport function-object
- Arrhenius viscocity model for incompressible viscocity.

- energyTransport FO for incompressible single and multiple phase
  flows and viscousDissipation fvOption source.

- Tutorial to show the use of energyTransport:
     multiphase/multiphaseInterFoam/laminar/mixerVessel2D

- Tutorial to show viscousDissipation:
     compressible/rhoPimpleFoam/RAS/TJunction
2017-10-25 10:17:55 -07:00
11da9bdc36 Merge branch 'feature-config-cray' into 'develop'
CONFIG: add settings for Cray compiler and cray mpich

See merge request Development/OpenFOAM-plus!138
2017-10-24 18:28:54 +01:00
7d7b0bfe84 STYLE: use list methods find/found instead of findIndex function 2017-10-24 19:07:34 +02:00
a6c918d6a3 Merge branch 'feature-io-streams' into 'develop'
low-level binary Ostream output, additional stream classes

See merge request Development/OpenFOAM-plus!156
2017-10-24 15:23:33 +01:00
2ab03f7abe STYLE: simplify stream types
- reduce coding clutter, avoiding allocated pointers when possible.
  IFstream and OFstream continue to use pointers since they handle
  compressed files, other streams can do without them.
2017-10-24 13:18:01 +02:00
88bb403fe0 ENH: new stream output: OListStream
- an output stream to a DynamicList
2017-10-24 11:59:11 +02:00
3cbf399470 BUG: failed swap/transfer for DynamicList with different sizing parameters
- now use public functions instead of direct access of private 'capacity_'
  information
2017-10-24 10:29:09 +02:00
7e8217fd17 ENH: include memory streams
- these provide a similar functionality to string-streams, but operate
  on a externally provided memory buffer which can be used to reduce
  the amount of copying.

- classes were previously staged as part of the ADIOS community
  repository.
2017-10-23 12:06:59 +02:00
2269294d36 ENH: use FixedList for dimensionSet storage
- makes it easier to transmit or stream as a list of scalars
2017-10-23 10:15:50 +02:00
0adf8d0a7e STYLE: use word methods to obtain IOobject member/group 2017-10-23 09:56:34 +02:00
e1167d9592 ENH: provide openmp compile and link flags.
- the USE_OMP preprocessor symbol is also defined with the openmp
  compile flag to allow conditional compilation of openmp-specific
  code.
2017-10-23 09:38:43 +02:00
953bd5bdca COMP: clang warnings 2017-10-23 09:09:59 +02:00
360ccea24e COMP: incorrect specialization for Swap(HashSet..) 2017-10-23 09:05:22 +02:00
af5f857618 ENH: add reset() method to IStringStream
- for convenience and symmetry with OStringStream

STYLE: void return value for stream rewind() methods

- this makes it easier to design bidirectional streams
2017-10-23 07:50:12 +02:00
f603e3e1de STYLE: pass through -test argument 2017-10-20 14:10:12 +02:00
74f667a85b ENH: additional low-level raw binary output for Ostream.
- low-level beginRaw(), writeRaw(), endRaw() methods.
  These can be used to directly add '()' decorators for serial output
  or prepare/cleanup parallel buffers.
  Used, for example, when outputting indirect lists in binary to avoid.
2017-10-20 10:26:55 +02:00
c792a9d7df TUT: script cleanup, provide cleanCase0 for commonly used operation 2017-10-12 19:20:56 +02:00
e16121af68 ENH: emit number of blocks for decomposedBlockData in header
- better documentation of the file contents.
- quicker to obtain number of blocks without reading an entire file.
2017-10-19 18:04:24 +02:00
10c512f9ef STYLE: note correct defaults for profiling 2017-10-19 17:25:53 +02:00
4cc8e9d4be Merge remote-tracking branch 'origin/master' into develop 2017-10-13 14:03:13 +01:00
b29f2a61b6 BUG: missing parallel-aware for metis-like decomposition 2017-10-13 12:45:28 +02:00
9b2a25516e ENH: make creation of streamline seeds demand-driven 2017-10-12 18:43:12 +02:00
f116217466 STYLE: remove FULLDEBUG output on readLabel, readScalar
- used in various places to test if the input can be parsed as a
  label/scalar, so warnings tend to flood the output.

- be more explicit when encountering range errors
2017-10-12 12:15:56 +02:00
9bb8f6aefc COMP: create lnInclude directory for kahip 2017-10-12 09:49:16 +02:00
5f98600b53 COMP: handle kahip .so version, and openmp dependency 2017-10-11 18:41:28 +02:00
c60627686a Merge branch 'feature-kahip-decompose' into 'develop'
add support for KaHIP decomposition

See merge request Development/OpenFOAM-plus!154
2017-10-11 16:36:48 +01:00
528bd95ae8 Merge branch 'feature-list-methods' into 'develop'
Feature list methods

See merge request Development/OpenFOAM-plus!152
2017-10-11 16:34:22 +01:00
27cd94e954 ENH: checkMesh: handle label overflow. Fixes #617. 2017-10-11 09:22:23 +01:00
874452717a ENH: add mergeMeshes -resultTime option (as per subsetMesh) 2017-10-10 12:46:40 +02:00
e9254eee58 ENH: support KaHIP decomposition
- refactor some common metis-like elements into the metisLikeDecomp
  abstract class.
2017-10-09 21:00:34 +02:00
051d1d661f ENH: surfaceFeatures: survive zero length edge. Fixes #616. 2017-10-09 15:34:10 +01:00
b5dc2a5e65 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-09 14:16:19 +01:00
caf4971261 BUG: rhoCentralFoam: correct/clean up oriented handling. Fixes #615. 2017-10-09 14:15:39 +01:00
37c6127338 COMP: Pstream: dummy version misses dependency of pthread (needed in OSspecific). Fixes #614. 2017-10-09 12:47:56 +01:00
e3d28272cf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-09 09:57:19 +01:00
1a3a57f73d STYLE: CodedSource: remove space from description. Fixes #612. 2017-10-09 09:55:35 +01:00
4ba4899660 ENH: minor update of PackedList methods
- additional convenience constructors
2017-10-07 16:10:35 +02:00
f76552f7f9 STYLE: rebase edge on labelPair, additional methods in Pair
- use FixedList first/last in Pair first/second

- consistent first/second access for line
2017-10-06 20:10:49 +02:00
00b94c4a40 ENH: handle partially attached master/slave faces (issue #608)
- addresses problems if faces are already partly attached
  (eg, on a single vertex or along an edge).
2017-10-06 14:18:54 +02:00
24577907a1 ENH: add faceZone::resetAddressing with constant flipMap
- remove unused static variable, use updated hashtable methods
2017-10-04 08:55:00 +02:00
44cfc93b82 STYLE: replace unused indirect{Cell,Face,Point}List typedefs
- provide shorter versions: pointIndList, pointUIndList, etc.
  and indirect versions of commonly used types:
     labelIndList, scalarIndList, vectorIndList
2017-10-04 08:50:30 +02:00
90c8c6d174 STYLE: add setHit/setMiss methods to objectHit
- consistency with PointHit and PointIndexHit
2017-10-04 08:50:00 +02:00
1cfb59fe1a ENH: add read-option for polyTopoChanger (issue #608)
- avoid meshModifier contents from being read immediately upon
  construction, since this recreates an existing modifier instead of
  allowing us to specify our own.
2017-10-04 08:19:39 +02:00
b9d97d96c1 ENH: expose null constructible dictionary searcher 2017-11-03 10:18:22 +01:00
049617d037 ENH: update List and DynamicList methods (issue #595)
- improve functional compatibility with DynList (remove methods)
  * eg, remove an element from any position in a DynamicList
  * reduce the number of template parameters
  * remove/subset regions of DynamicList

- propagate Swap template specializations for lists, hashtables

- move construct/assignment to various containers.

- add find/found methods for FixedList and UList for a more succinct
  (and clearer?) usage than the equivalent global findIndex() function.

- simplify List_FOR_ALL loops
2017-09-20 17:20:54 +02:00
68e7533847 STYLE: include <utility> in stdFoam, formatting of list loop macros 2017-09-20 17:01:56 +02:00
8b63772882 ENH: simplify parsing logic in ISstream 2017-08-09 13:45:30 +02:00
5da321b6e6 TUT: various blockMeshDict with convertToMeters instead of scale 2017-08-07 20:57:05 +02:00
49a5af48d6 Merge branch 'feature-robuster-ioobjectlist-construction' into 'develop'
Feature robuster IOobjectList construction

See merge request !134
2017-08-09 10:58:19 +01:00
dafb232e54 Merge branch 'feature-bash-completion' into 'develop'
Feature bash completion

See merge request !137
2017-08-09 10:57:14 +01:00
ce0868106a ENH: use bash associative array for on-the-fly completion (issue #551)
- this reduces the number of functions and allows lazy loading of
  completion options, which makes it easy to quickly add any other
  OpenFOAM application in completion.

  The generic '_of_complete_' function handles (bash) completion for
  any OpenFOAM application. On the first call for any particular
  application, it retrieves the available options from the application
  help output and adds this information to its environmental cache for
  subsequent use.

- Tcsh completion uses the same function via a bash wrapper.
  But since its wrapper is transient, the on-the-fly generation would
  be less efficient. For this case, a pre-generated completion_cache
  can be used, which is generated with

      bin/tools/foamCreateCompletionCache
2017-08-08 13:17:36 +02:00
5f538909fb Merge branch 'style-noiseDict-syntax' into 'develop'
STYLE: New syntax compatible with v1706 (Fixes #548)

See merge request !131
2017-08-08 09:53:28 +01:00
e0ebc8e973 Merge branch 'master' into develop 2017-08-07 11:54:44 +01:00
20267c68b4 BUG: Corrected false integer divisions. Fixes #557 2017-08-07 11:53:54 +01:00
e03ca4c466 CONFIG: add Cray compiler, cray mpich settings, wmake rules (fixes #558)
- the cray C/C++ compilers appear to be option-compatible with gcc.

- no wmake rules for 32bit builds (deemed to be unnecessary)
2017-08-04 11:09:32 +02:00
8682e04765 ENH: add forwards file for various hash table types 2017-08-03 17:24:32 +02:00
b7317e0916 CONFIG: unset tcsh completions when cleaninp up (issue #551) 2017-08-03 13:49:14 +02:00
78da7dbd7a CONFIG: additional filenames completion for bash_completion
- handles the case where we are currently completing something that
  does not appear to be an option. For example,

      foamDictionary -expanded someD[TAB]

  should complete the filename, not present more options.
2017-08-03 10:47:42 +02:00
41c103b769 STYLE: return const char* in CStringList::data()
- and other code style adjustments
2017-08-03 09:16:09 +02:00
5148e4f860 STYLE: manage dictionary inputMode directly within entry class
- The logic for switching input-mode was previously completely
  encapsulated within the #inputMode directive, but without any
  programming equivalent. Furthermore, the encapsulation in inputMode
  made the logic less clear in other places.

  Exposing the inputMode as an enum with direct access from entry
  simplifies things a fair bit.

- eliminate one level of else/if nesting in entryIO.C for clearer logic

- for dictionary function entries, simply use
  addNamedToMemberFunctionSelectionTable() and avoid defining a type()
  as a static. For most function entries the information is only used
  to get a name for the selection table lookup anyhow.
2017-08-03 07:14:17 +02:00
c2a0663cc7 TUT: use general 'scale' instead of 'convertToMeters' in blockMeshDict
- although this has been supported for many years, the tutorials
  continued to use "convertToMeters" entry, which is specific to blockMesh.
  The "scale" is more consistent with other dictionaries.

ENH:
- ignore "scale 0;" (treat as no scaling) for blockMeshDict,
  consistent with use elsewhere.
2017-08-03 06:38:30 +02:00
8e4f015253 Merge branch 'style-string-methods' into 'develop'
Style string methods

See merge request !136
2017-08-02 16:28:42 +01:00
5ca19c2934 ENH: add tcsh completion functionality (issue #551)
- currently no cleanup of completions when deactivating an OpenFOAM
  tcsh environment

- tab completion with directories adds a space after the slash, which
  makes navigation a bit annoying.
2017-08-02 16:54:47 +02:00
46a2a73611 ENH: static versions of fileName clean(), path(), name()
- useful operations for other string representations of fileName types.

  The return type is in general a std::string with any narrowing
  being done by the caller on the return value.
2017-08-02 13:44:37 +02:00
e70fc61660 ENH: consolidate, cleanup some string methods
- consolidate word::validated() into word::validate() and also allow
  as short form for string::validate<word>(). Also less confusing than
  having similarly named methods that essentially do the same thing.

- more consistent const access when iterating over strings

- add valid(char) for keyType and wordRe
2017-08-02 12:33:35 +02:00
3f6e130c91 STYLE: flatten PVReaders directory structure 2017-08-02 11:19:57 +02:00
cfcfd53b84 Merge remote-tracking branch 'origin/master' into develop 2017-07-31 16:45:32 +02:00
d581b7d7b8 ENH: ignore lone dash on the command-line (issue #553)
- can inadvertently arise from TAB-completion, but an option without a
  name doesn't make sense, we trap this and emit a warning.
2017-07-31 16:34:43 +02:00
c614110d46 ENH: improve bash completion functionality (issue #551)
- use complete -o filenames, dropped -o nospace to make it more responsive.

- restructure completion code to use a unified backend, which makes it easier
  understand, maintain and re-use.

- foamCreateBashCompletions now simply outputs to a stdout, and allows
  quick generation of completion of single applications.

- add -fileHandler completion in anticipation of future changes there.

- relocated as etc/config.s/bash_completion to prevent inadvertently
  having two versions (.com, .org) installed at the same time.
2017-07-31 15:35:40 +02:00
4e48beffd4 ENH: support "one-shot" changes to the dictionary inputMode (issue #429)
- Instead of relying on #inputMode to effect a global change it is now
  possible (and recommended) to a temporary change in the inputMode
  for the following entry.

     #default   : provide default value if entry is not already defined
     #overwrite : silently remove a previously existing entry
     #warn      : warn about duplicate entries
     #error     : error if any duplicate entries occur
     #merge     : merge sub-dictionaries when possible (the default mode)

  This is generally less cumbersome than the switching the global
  inputMode. For example to provide a set of fallback values.

      #includeIfPresent "user-files"
      ...
      #default value uniform 10;

  vs.

      #includeIfPresent "user-files"
      #inputMode protect
      ...
      value uniform 10;
      #inputMode merge    // _Assuming_ we actually had this before

  These directives can also be used to suppress the normal dictionary
  merge semantics:

     #overwrite dict { entry val; ... }
2017-07-29 17:44:22 +02:00
9923ec969b ENH: more graceful handling of invalid IOobject headers (issue #539)
- With special-purpose templating it is possible to have file contents
  that almost look like an OpenFOAM file, but which are not.
  The contents do not need to be deliberately tricky, even the simplest
  README:

      FoamFile is the first word parsed in OpenFOAM files

  will trigger problems.
  We now trap any IOerror on these and reject this type of file as invalid.
2017-07-29 13:22:24 +02:00
797155f862 ENH: additional method for switching error throwing on/off (issue #552)
- error::throwExceptions(bool) returning the previous state makes it
  easier to set and restore states.

- throwing() method to query the current handling (if required).

- the normal error::throwExceptions() and error::dontThrowExceptions()
  also return the previous state, to make it easier to restore later.
2017-07-29 12:25:30 +02:00
41eafeb020 Merge branch 'fix-motorbike-visc' into 'develop'
BUG: Correct viscosity in simpleFoam motorBike tutorial (fixes #550)

See merge request !132
2017-07-28 10:34:17 +01:00
9b05e43626 BUG: Fix viscosity in simpleFoam motorBike tutorial (fixes #550) 2017-07-27 19:55:12 -04:00
8f11aeabaf BUG: Fix viscosity in simpleFoam motorBike tutorial (fixes #550) 2017-07-27 19:55:12 -04:00
96edef9d5e STYLE: New syntax compatible with v1706 2017-07-26 11:28:26 +05:30
efff02bbb7 BUG: incorrect range check in foamHelp (closes #547) 2017-07-22 23:54:08 +02:00
fce9545781 BUG: incorrect range check in foamHelp (closes #547) 2017-07-22 23:54:08 +02:00
41b40c6c2a COMP: typo in entry.H causing regression - fixes #546 2017-07-22 23:25:03 +02:00
a1742e7ad6 Merge branch 'style-string-access' into 'develop'
Consistent use of string methods

See merge request !128
2017-07-21 16:04:35 +01:00
7b4226ac4b Merge branch 'regression-icc' into 'develop'
Regression icc

See merge request !129
2017-07-21 16:04:17 +01:00
b0b4c1aae5 COMP: intel compiler issues with operator ""_deg (fixes #544)
- this represents a partial revert for commit 6a0a8b99b3
2017-07-21 16:40:31 +02:00
c0c7c39031 ENH: provide direct pointer access to dictionaryEntry 2017-07-21 12:05:32 +02:00
2c69b7d7c4 STYLE: adjust some line lengths, doxygen comments 2017-07-20 13:50:35 +02:00
01292a9a76 BUG: failed check for scotch headers on ubuntu (closes #543)
- installed under /usr/include/scotch/scotch.h

ENH: obtain fallback value for SCOTCH_VERSION from the header

COMP: add support for metis, scotch static libraries (eg, EasyBuild)
2017-07-20 12:15:08 +02:00
2fdc6b161a ENH: support full-scoping for keywords as lvalue (issue #429)
- patterns only supported for the final element.

  To create an element as a pattern instead of a word, an embedded
  string quote (single or double) is used for that element.
  Any of the following examples:

      "/top/sub/dict/'(p|U).*"     100;
      "/top/sub/dict/'(p|U).*'"    100;
      "/top/sub/dict/\"(p|U).*"    100;
      "/top/sub/dict/\"(p|U).*\""  100;

  are equivalent to the longer form:

      top
      {
          sub
          {
              dict
              {
                  "(p|U).*"     100;
              }
          }
      }

  It is not currently possible to auto-vivify intermediate
  dictionaries with patterns.

    NOK   "/nonexistent.*/value"   100;
    OK    "/existing.*/value"      100;

- full scoping also works for the #remove directive

        #remove "/dict1/subdict2/entry1"
2017-07-20 10:58:05 +02:00
f304c7e830 ENH: no dictionary variable and function expansion when discarding entry
- the 'protect' inputMode is used to supply defaults.
  If an entry already exists, it should act as a no-op without any
  side-effects whatsoever.
2017-07-20 10:27:35 +02:00
6a62c6bd63 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-19 20:04:31 +01:00
5711061624 COMP: foamList: missing fallback library. Fixes #541. 2017-07-19 20:03:59 +01:00
922ea5667e BUG: IOobject interpretation of ./ in construct-from-fileName (closes #482)
- Resolve ambiguity by using the following rules:

  1) starts with '/'  =>  absolute file-system path
  2) starts with './' or '../'  =>  file-system path relative to CWD
  3) otherwise treat as relative to the case

STYLE: allow write access to headerClassName
2017-07-19 12:09:43 +02:00
cc290b7c02 ENH: improve dictionary parsing behaviour for ill-formed entries (closes #510)
- mostly associated with forgotten quotes around "(abd|def)" ...

- Address different potential problems:

      (key) { key1   entry1; }
      (key) { key1   entry1; };    // <- Note trailing ';'
      (key) entry2;
2017-07-19 11:00:44 +02:00
b85457fc35 STYLE: Updated directory names for interCondensatingEvaporatingFoam solver. Fixes #533 2017-07-19 08:24:17 +01:00
efe9b04adc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-19 08:19:15 +01:00
67e6f54808 Merge branch 'feature-streams-cleanup' into 'develop'
Feature streams cleanup

See merge request !127
2017-07-18 12:48:31 +01:00
263d7efae2 Merge branch 'stylefix-checkMesh' into 'develop'
STYLE: checkMesh: remove duplicate writeSets entry from header (resolves #293)

See merge request !125
2017-07-18 12:17:01 +01:00
b0db30ba2f Merge branch 'feature-externalFileCoupler' into 'develop'
Feature external file coupler

See merge request !126
2017-07-18 11:12:05 +01:00
db376a412d ENH: improved behaviour of input stream rewind (issue #534)
- clear error flags. Special handling for igzstream.
2017-07-18 11:10:51 +02:00
6d2f870f83 STYLE: minor typos in comments 2017-07-18 09:01:43 +02:00
b4b50a3aa8 ENH: added OStringStream reset method (closes #534)
- resets the output buffer completely - implementing what rewind was
  likely meant to have accomplished for many use cases.

STYLE: OSHA1stream reset() for symmetry. Deprecate rewind().
2017-07-17 18:32:42 +02:00
86ef9e86dc ENH: make treatment of stream allocators more uniform (issue #532)
- use allocator class to wrap the stream pointers instead of passing
  them into ISstream, OSstream and using a dynamic cast to delete
  then. This is especially important if we will have a bidirectional
  stream (can't delete twice!).

STYLE:

- file stream constructors with std::string (C++11)

- for rewind, explicit about in|out direction. This is not currently
  important, but avoids surprises with any future bidirectional access.

- combined string streams in StringStream.H header.
  Similar to <sstream> include that has both input and output string
  streams.
2017-07-17 15:14:38 +02:00
8399277d7d STYLE: eliminate duplicate includes (issue #293) 2017-07-17 14:44:05 +02:00
da24358314 ENH: provide direct access to file-stat size 2017-07-17 13:49:08 +02:00
454ad5162c STYLE: Use C++11 and OpenFOAM-1706 methods in externalCoupled 2017-07-17 13:41:14 +02:00
7a408c713b ENH: refactor and combine externalFileCoupler (issue #529) 2017-07-17 12:54:02 +02:00
e082be566b STYLE: use Enum for #inputMode selection 2017-07-17 11:57:53 +02:00
751f11089a Merge remote-tracking branch 'origin/master' into develop 2017-07-20 12:17:26 +02:00
e045d6c03b ENH: limit file checks in the abort function object to the master process
- do not recheck the abort after it has been triggered once.
  This reduces the output clutter and file checks.
2017-07-17 10:47:10 +02:00
dd0c26568a STYLE: checkMesh: remove duplicate writeSets entry from header (resolves #293) 2017-07-16 10:31:33 -04:00
2fe3a62057 STYLE: use nullptr instead of 0 in autoPtr, tmp etc. 2017-07-14 16:50:21 +02:00
b287d1bddd CONFIG: cpu/sys information in profiling now OFF by default (issue #526)
- since the cpu/sys information is invariant, it doesn't make much
  sense to emit by default at every time-step.
2017-07-14 16:41:15 +02:00
7380f53efb ENH: add infoSwitch to control reporting of slaves/roots (closes #531)
- With many processors, the number of entries becomes quite large.

  New controlDict InfoSwitches: "writeSlaves", "writeRoots".
2017-07-14 16:22:23 +02:00
e6717b6e72 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
d7ff97f490 lagrangian: Optimised reduced-dimension constraints
The 4.x tracking enforces reduced dimensionality on the parcels by
moving them to the centre of the mesh at the start of each track,
without considering the topology. This can leave the parcel outside it's
associated tetrahedron.

The barycentric algorithm isn't tolerant to incorrect topology, so
instead of changing position, it was written to track to the mesh
centre. This worked, but effectively doubled the number of tracking
calls. This additional cost has now been removed by absorbing the
constraint displacement into the existing motion track, so that the same
number of tracking steps are performed as before.

Partially resolves bug report https://bugs.openfoam.org/view.php?id=2688
2017-09-12 08:39:58 +01:00
094775ce7f COMP: Added support for gcc 7.2.0 2017-09-14 14:38:53 +01:00
0fdcb12759 Updated to avoid warnings from gcc-7.1.1 2017-07-31 13:46:42 +01:00
d7fd550e61 ENH: Reinstated the wallBoundedStreamline function object
Note: performs its own tracking and does not rely on the base
particle::trackXXX functions, and uses a local particle position.

Look to update to barycentric tracking in the future.
2017-09-14 12:02:03 +01:00
2defba00a9 ENH: Lagrangian - provided backwards compatibility for cases using the
old "positions" file form

The change to barycentric-based tracking changed the contents of the
cloud "positions" file to a new format comprising the barycentric
co-ordinates and other cell position-based info.  This broke
backwards compatibility, providing no option to restart old cases
(v1706 and earlier), and caused difficulties for dependent code, e.g.
for post-processing utilities that could only infer the contents only
after reading.

The barycentric position info is now written to a file called
"coordinates" with provision to restart old cases for which only the
"positions" file is available. Related utilities, e.g. for parallel
running and data conversion have been updated to be able to support both
file types.

To write the "positions" file by default, use set the following option
in the InfoSwitches section of the controlDict:

    writeLagrangianPositions 1;
2017-09-13 13:13:36 +01:00
87e3da80ec viewFactor: Average T^4 rather than T for consistent heat-flux
Resolves bug-report https://bugs.openfoam.org/view.php?id=2649
2017-08-07 10:56:44 +01:00
4b0ff45d40 externalWallHeatFluxTemperature: Allow manipulation of the boundary values
Provides support for the limitTemperature fvOption.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2675
2017-08-29 16:47:21 +01:00
f8a8857cae limitTemperature: added support for multiphase solvers
Based on patch contributed by Juho Peltola, VTT

Resolves feature request https://bugs.openfoam.org/view.php?id=2572
2017-09-04 16:52:03 +01:00
9a1435ed9b Corrected correspondence between #ifdef .*_H and the class name
Resolves bug-report https://bugs.openfoam.org/view.php?id=2686
2017-09-04 17:09:21 +01:00
d5ce6f35e2 Corrected correspondence between #ifdef .*_H and the class name
Resolves bug-report https://bugs.openfoam.org/view.php?id=2686
2017-09-04 16:50:30 +01:00
c7660123ed ThermoSurfaceFilm: Corrected the splash kinetic energy
The splash kinetic energy has been changed to depend upon the velocity
of the parcel normal to the wall, rather than the absolute velocity, in
accordance with the original reference.

This patch was contributed by Stefan Hildenbrand at Pfinder
Resolves bug report https://bugs.openfoam.org/view.php?id=2682
2017-09-05 09:50:46 +01:00
95018c685d ThermoParcel, ReactingParcel: Removed continuous phase data 2017-08-29 15:44:55 +01:00
3e85a5ab4b INT: clean-up 2017-09-08 17:09:15 +01:00
402b86371c KinematicParcel: Removed continuous phase data
Interpolated continuous phase data is only needed during a track and
therefore shouldn't be stored on the parcel. The continuous velocity,
density and viscosity have been moved from the kinematic parcel to the
kinematic parcel tracking data. This reduces the memory usage of the
kinematic layer by about one third. The thermo and reacting layers still
require the same treatment.
2017-08-29 08:42:53 +01:00
30c2f8fa8d lagrangian: Removed unused wall impact distance methods 2017-08-24 16:09:08 +01:00
d0f39f96c4 lagrangian: Removed duplicate hit-processor handling 2017-08-23 16:31:13 +01:00
b8440c4232 lagrangian: Removed unnecessary patch argument from hit methods
The patch can be determined from the particle when it is needed. Most of
the time it is not.
2017-08-23 16:27:36 +01:00
d8782db651 INT: Re-instated escpaed mass 2017-09-08 16:40:14 +01:00
b78d844cf4 lagrangian: Removed duplicate data from method arguments
A lot of methods were taking argument data which could be referenced or
generated from the parcel class at little or no additional cost. This
was confusing and generated the possibility of inconsistent data states.
2017-08-23 15:14:32 +01:00
22bd391903 lagrangian: Simplification of parallel transfer 2017-08-22 17:57:11 +01:00
241879ecf4 INT: minor clean-up after after latest integrations 2017-09-08 16:07:15 +01:00
87c15bf1c6 lagrangian: Un-templated the tracking data
Tracking data classes are no longer templated on the derived cloud type.
The advantage of this is that they can now be passed to sub models. This
should allow continuous phase data to be removed from the parcel
classes. The disadvantage is that every function which once took a
templated TrackData argument now needs an additional TrackCloudType
argument in order to perform the necessary down-casting.
2017-08-22 15:28:04 +01:00
14d2a1efcf tmpNrc: Updated to use clone 2017-07-14 09:32:02 +01:00
68d879b5e4 GAMG: removed warnComm 2017-09-01 16:40:43 +01:00
e3baecec0b PairCollision: Removed unnecessary operations
Resolves bug report https://bugs.openfoam.org/view.php?id=2680
2017-09-01 13:42:33 +01:00
cf0d7a604f BUG: compressibleMultiphaseInterFoam: Corrected update of dgdt for multiple phases
Resolves bug-report https://bugs.openfoam.org/view.php?id=2677
2017-08-29 14:48:32 +01:00
791e1ca2d2 Merged reactingParcelFilmFoam into reactingParcelFoam
The combined solver includes the most advanced and general functionality from
each solver including:

    Continuous phase
    Lagrangian multiphase parcels
    Optional film
    Continuous and Lagrangian phase reactions
    Radiation
    Strong buoyancy force support by solving for p_rgh

The reactingParcelFoam and reactingParcelFilmFoam tutorials have been combined
and updated.
2017-08-29 09:33:45 +01:00
5cb3bb7bc6 reactingParcelFilmFoam: Added LTS support 2017-08-22 14:00:42 +01:00
fe3771f3d5 surfaceFilmModels::function1Viscosity: New viscosity modifier
Description
    The Foam::Function1 temperature-dependent viscosity model multiplies the
    viscosity of a base model by a Function1 temperature function.
2017-07-26 15:01:08 +01:00
151f641fee compressibleInterFilmFoam::VoFSolidificationMeltingSource: New VoF solidification fvOption 2017-07-20 18:15:27 +01:00
577593ea34 INT: Added missing #include statement 2017-09-08 13:19:50 +01:00
ecb2f03973 surfaceFilmModels::transferModelList: Resolve problem with the Intel C++ compiler 2017-07-25 12:19:37 +01:00
f74e065781 STYLE: cylindricalInletVelocityFvPatchVectorField: Rationalized naming convention
for consistency with other rotating BCs.
2017-07-13 16:09:11 +01:00
e7f979c424 TUT: tutorials: blockMesh: Added missing face projections to pipe tutorial 2017-12-14 12:59:15 +00:00
5c69b02dea ENH: ODESolver: maxSteps now an optional input
e.g.

odeCoeffs
{
    solver          seulex;
    absTol          1e-12;
    relTol          0.0001;
    maxSteps        1e+06;
}

maxSteps defaults to 10000 for backward compatibility.
2017-12-15 15:26:47 +00:00
fe595af8c6 ENH: rigidBodyModelState: Added time value member
The absolute value of the the time has been added to the rigid body
model state. This value is not directly necessary for calculating the
evolution of the rigid body system, it just facilitates the
implementation of sub-models which are in some way time-dependent.
2017-12-13 11:59:46 +00:00
f180ab7249 BUG: basicSpecieMixture: Removed duplicated molecular weight mixing
Mixture molecular weight is now evaluated in heThermo like everything
else, relying on the low level specie mixing rules. Units have also been
corrected.

SpecieMixture: Pure virtual definition for W to prevent Clang warning
2017-12-01 14:21:28 +00:00
d9afa508e1 ENH: createBaffles: Create slave baffles on coupled patches 2017-11-29 15:30:35 +00:00
82fd731b82 BUG; chemistryModel: Fixed segfault in selection error message 2017-11-22 17:00:45 +00:00
363474de07 ENH: createBaffles: Corrected warning about internalFacesOnly setting 2017-11-22 14:45:23 +00:00
512252a67e ENH: surfaceFilmModels::waxSolventEvaporation, waxSolventViscosity: new wax/solvent film models
to support the evaporation of the solvent from the wax film and the changes in
viscosity caused by the reduction in solvent content.

BUG: filmViscosityModel::thixotropicViscosity: Corrected sign of impingement rate

to compensate for rhoSp having the wrong sign

BUG: surfaceFilmModels::waxSolventEvaporation: Corrected handling of impingement

ENH: surfaceFilmModels::waxSolventViscosity: Changed mixing to mole-fraction based

ENH: surfaceFilmModels::thermoSingleLayer: Added call to solveContinuity before updateSubmodels

to allow sub-models to solve transport equations for conserved properties
2017-11-16 22:00:57 +00:00
964c7d223c STYLE: solidThermo.H: Removed superfluous include files
Resolves bug-report https://bugs.openfoam.org/view.php?id=2758
2017-11-14 09:58:53 +00:00
5bfd575a44 ENH: TDACChemistryModel: Added support for multiphase
Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2753

STYLE: TDACChemistryModel: Removed unnecessary warning messages

Patch contributed by Francesco Contino
2017-11-09 16:58:17 +00:00
f30e0ab808 ENH: reconstructParMesh: Match face point averages on coupled patches
In the event that matching centroids across a coupled patch pair fails,
we fall back to matching the face point average. The latter can be
obtained more reliably on degenerate faces as the calculation does not
involve division by the face area.

This fallback was already implemented as part of processorPolyPatch.
This change also applies it to the faceCoupleInfo class used by
reconstructParMesh.
2017-11-06 14:34:49 +00:00
4694efa8e2 ENH: basicThermo, heSolidThermo: Added support for specifying the boundary conditions of alpha
Patch contributed by Björn Pfeiffelmann
Resolves patch request https://bugs.openfoam.org/view.php?id=2713
2017-11-07 13:53:46 +00:00
b747cb3519 STYLE: temperatureCoupledBase: Added more user-friendly error messages for inconsistent input
Resolves bug-report https://bugs.openfoam.org/view.php?id=2748
2017-11-02 14:54:11 +00:00
d042f49fc0 BUG: CompactSpatialTensor: Corrected constructor from components 2017-10-31 10:06:19 +00:00
dbc111e6ee ENH: compressibleInterPhaseTransportFoam: New variant of compressibleInterFoam supporting separate phase stress models
In this version of compressibleInterFoam separate stress models (laminar,
non-Newtonian, LES or RAS) are instantiated for each of the two phases allowing
for completely different modeling for the phases.

e.g. in the climbingRod tutorial case provided a Newtonian laminar model is
instantiated for the air and a Maxwell non-Newtonian model is instantiated for
the viscoelastic liquid.  To stabilize the Maxwell model in regions where the
liquid phase-fraction is 0 the new symmTensorPhaseLimitStabilization fvOption is
applied.

Other phase stress modeling combinations are also possible, e.g. the air may be
turbulent but the liquid laminar and an RAS or LES model applied to the air
only.  However, to stabilize this combination a suitable fvOption would need to
be applied to the turbulence properties where the air phase-fraction is 0.

Henry G. Weller, Chris Greenshields
CFD Direct Ltd.
2017-10-30 09:36:43 +00:00
d43c3438fe ENH: coldEngineFoam, engineFoam: Update logSummary to support collated IO
Resolves bug-report https://bugs.openfoam.org/view.php?id=2739
2017-10-27 12:10:45 +01:00
d5f60ea213 BUG: Matrix: Corrected size of field resulting from rectangular matrix multiplication
Resolves bug-report https://bugs.openfoam.org/view.php?id=2740
2017-10-26 15:52:27 +01:00
4dd8b3f247 BUG: RBD: restraints: Corrected restraint force transformations
The restraints generate either joint-local (tau) or global (fx) forces.
At the moment they all generate the latter. This change corrects three
of the four restraints so that the forces are in the gobal coordinate
system and not the local coordinate system of the body.

The problem with this is that the forward dynamics code then transforms
most of the forces back to the body local coordinate system. A better
solution would be to associate restraints which are more sensibly
defined in a local frame with the joints instead of the bodies, and
return the forces as part of the tau variable.
2017-10-20 16:02:43 +01:00
79ad0f0613 ENH: semiPermeableBaffle: Added two new boundary conditions and a tutorial
Two boundary conditions for the modelling of semi-permeable baffles have
been added. These baffles are permeable to a number of species within
the flow, and are impermeable to others. The flux of a given species is
calculated as a constant multipled by the drop in mass fraction across
the baffle.

The species mass-fraction condition requires the transfer constant and
the name of the patch on the other side of the baffle:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membranePipe;
        c               0.1;
        value           uniform 0;
    }
    membraneB
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membraneSleeve;
        c               0.1;
        value           uniform 1;
    }
}

If the value of c is omitted, or set to zero, then the patch is
considered impermeable to the species in question. The samplePatch entry
can also be omitted in this case.

The velocity condition does not require any special input:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
    membraneB
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
}

These two boundary conditions must be used in conjunction, and the
mass-fraction condition must be applied to all species in the
simulation. The calculation will fail with an error message if either is
used in isolation.

A tutorial, combustion/reactingFoam/RAS/membrane, has been added which
demonstrates this transfer process.

This work was done with support from Stefan Lipp, at BASF.
2017-10-19 10:00:36 +01:00
83026d2546 ENH: mergePolyMesh: Added check for zero patches in the master mesh
Patch contributed by Jakub Benda
Resolves bug-report https://bugs.openfoam.org/view.php?id=2727
2017-10-18 16:24:08 +01:00
b08e8e1904 ENH: functionObjects::wallHeatFlux: More efficient evaluation of heat-flux
which avoids the need for field interpolation and snGrad specification and
evaluation.

Resolves patch request https://bugs.openfoam.org/view.php?id=2725

wallHeatFlux: Filter out coupled patches

Resolves bug-report https://bugs.openfoam.org/view.php?id=2776
2017-10-17 12:17:24 +01:00
8bee77c76a BUG: blackBodyEmission: correct non-coupled boundary values
Resolves bug-report https://bugs.openfoam.org/view.php?id=2709
2017-10-13 17:17:45 +01:00
141e219f87 BUG: blockMesh: Corrected diagram printed with "-help" to be consistent with the documentation
Resolves bug report https://bugs.openfoam.org/view.php?id=2710
2017-10-13 11:28:01 +01:00
da03b803ae ENH: fvMeshSubset: Added coupled patch handling for small subsets 2017-10-12 09:20:43 +01:00
a45b422b75 STYLE: DPMFoam, MPPICFoam: Renamed alphaPhic -> alphaPhi.<continuous phase name>
for consistency with multiphase solvers and compatibility with the generalized
TurbulenceModels library.
2017-10-11 23:04:42 +01:00
efe4a9a4b7 ENH: TurbulenceModels: Obtain the group name from alphaRhoPhi rather than U
to support multiphase solvers in which the phases have the same velocity field.
2017-10-11 21:59:32 +01:00
405bb9414d BUG: constantFilmThermo: Added missing data member constructor call 2017-10-11 11:46:51 +01:00
c96ff47d98 ENH: blockMesh: Added switch to disable face correspondence checking
To disable face correspondence checking set

    checkFaceCorrespondence off;

in blockMeshDict.  This is necessary in the rare cases where adjacent block
faces do not need to correspond because they are geometrically collapsed,
e.g. to form a pole/axis.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2711
2017-10-09 21:33:02 +01:00
0f45c29feb ENH: PBiCG, PBiCGStab, PCG: Changed maxIter test to pre-increment counter
Resolves bug-report https://bugs.openfoam.org/view.php?id=2716
2017-10-09 12:23:28 +01:00
c487fe2ff0 ENH: fvOptions: Added support for transport equations involving d2dt2
Added incompressible solver support to the buoyancyForce fvOption
2017-10-06 15:33:33 +01:00
66b3934ab6 ENH: foamyHexMesh: Set no refinement iterations in global dictionary
ENH: foamyHexMesh: Made default region volume type that of it's parent

Foamy surface conformation entries have a "meshableSide" entry which
controls which side of the surface is to be meshed. Typically this is
set "inside" for boundaries and "both" for baffles. A sub-region's
default entry is now taken from it's parent, rather than a specific
value (it was "inside"). This is consistent with how other entries are
handled.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        baffle
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- per-surface setting

            regions
            {
                disk
                {
                    meshableSide    both; // <-- per-region setting*

                    // *in this example, this entry is not needed, as it
                    // is taken from the per-surface setting above
                }
            }
        }

        // ...
    }
}

ENH: foamyHexMesh: Added (reinstated) baffle patches

A patch can now be assigned to a baffle surface. This assignment will
take precedence over any face-zones.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        disk
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- baffle
            patchInfo
            {
                type wall;
                inGroups (walls);
            }
        }

        // ...
    }
}

STYLE: foamyHexMesh: Switched off output of all the secondary meshes
2017-09-15 15:04:16 +01:00
4ee0af6b08 ENH: gitignore: Added temporary vi/vim files to the ignore list 2017-10-05 09:39:48 +01:00
99bda24907 ENH: MultiComponentPhaseModel: Included laminar diffusion in YiEqns
Resolves bug report https://bugs.openfoam.org/view.php?id=2591
2017-10-03 08:36:12 +01:00
581914f597 STYLE: fvMeshSubset: Removed debugging output 2017-09-28 08:44:56 +01:00
a1679efa80 ENH: lagrangian: Rewrite of integration schemes and transfer terms
The integration of force and heat transfer onto the particle is
facilitated by a run-time-selectable integration scheme. These schemes
were written to generate the value at the end of an intregration step
and also an average value over the step from which the total transfer
was computed.

The average value in the Euler scheme was implemented incorrectly, which
resulted in the momentum and heat transfer processes being
non-conservative. Implementing the average correctly, however, would
have inteoduced a number of trancendental functions which would have
negated the purpose of the Euler scheme as the cheap and stable option.

The schemes have been rewritten to generate changes over the step,
rather than the final value. This change is then used to calculate the
transfers. Regardless of the scheme, this formulation is guaranteed to
be conservative, and the Euler scheme remains computationally
inexpensive.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666

ENH: integrationSchemes: Further simplification and optimisation

Removed templating from integration schemes, improved the name
convention, and optimised the utilisation so that the virtual call is
only made once per integration in the KinematicParcel and the
ThermoParcel.

BUG: integrationSchemes: Corrections to coupled/non-coupled force splitting

The integration splitting implemented in commit a5806207 has been shown
to be incorrect in some cases. A new procedure has been implemented
which can correctly split the implicit-explicit integral into a number
of pieces, in order to calculate the contribution of each. This is
intended for integrating coupled and non-coupled particle momentum and
heat transfers.

However, currently there is only ever one implicit coefficient used in
these transfers (there is no implicit non-coupled contribution). The
evaluation has therefore been short-cutted to only do the integration
with respect to the coupled contributions. The splitting functionality
has been retained in case additional separate implicit coefficients are
required in the future.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666
2017-09-20 16:06:48 +01:00
2b47b72fa8 ENH: thermoSingleLayer: Reinstate support for externalWallHeatFluxTemperature 2017-09-22 11:55:18 +01:00
4636f190da STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
436b43b61f ENH: mergePatchPairs: Updated 2017-09-19 09:30:26 +01:00
01efb2c85b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d425421c0a ENH: reactingTwoPhaseEulerFoam: Added continuity fvOption term to U equations
Patch contributed by Juho Peltola, VTT
Resolves bug-report https://bugs.openfoam.org/view.php?id=2699
2017-09-15 11:43:15 +01:00
1ad3c4c2b1 ENH: viscosityModels::powerLaw: Changed VSMALL to SMALL to avoid potential overflow 2017-09-14 21:57:47 +01:00
96bdb82918 ENH: ideasUnvToFoam: Added test for no cells (e.g. 2D mesh)
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2691
2017-09-09 22:33:06 +01:00
ef9c6b5abc ENH: kinematicSingleLayer: Refactored to remove "netMass" 2017-09-06 14:20:58 +01:00
58cc6b8b82 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-13 14:47:54 +01:00
aa969ec157 BUG: IOobject: interpretation of ./ in construct-from-fileName. Fixes #482. 2017-07-13 14:47:20 +01:00
c880d7dc7d ENH: support '/' separators in foamDictionary
- convenience -diffEtc option that behaves like -diff, but invokes
  foamEtcFile searching

STYLE: modernize code.
2017-07-13 09:46:07 +02:00
9e88a8a21e ENH: enable profiling output for postProcess and -postProcess (closes #526)
- added an explicit print, but only report profiling to the log
  file from master process.

  We don't wish to overwrite any profiling that was conducted during
  the simulation. Besides which, we don't have a proper Time object
  for handling the write nicely either.
2017-07-12 15:48:25 +02:00
9161c228c3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-12 10:58:53 +01:00
0a65b142cf BUG: snappyHexMesh: calculate surface normals if face splitting. Fixes #522. 2017-07-12 10:58:21 +01:00
a6ef10506d ENH: respect the I_MPI_ROOT setting for INTELMPI (issue #524)
- add note in BuildIssues about the I_MPI_CC variable, which is needed
  when building with Intel-MPI and gcc/clang.

  This additional setting is needed since the changes needed to solve
  the issue of building scotch with Intel-MPI and icc (issue #434)
  means that mpiicc is now being used as the wrapper when compiling
  scotch.

- have the FOAM_MPI short name for INTELMPI start with 'impi-' instead
  of just the version number.
  Intel-MPI is often installed as /opt/intel/impi/4.1.3.049, which
  results in 'FOAM_MPI=4.1.3.049' and the mpi flavour is lost.
  Prefix these cases with 'impi-'
2017-07-12 11:02:04 +02:00
2183907afe Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-12 09:19:01 +01:00
f932e25556 ENH: mergeOrSplitBaffles: fix header. See #468. 2017-07-12 09:17:48 +01:00
cce74d493b ENH: remove deprecated ensight output order (issue #523)
- Added for transition purposes only in 1612 but can now be removed.
2017-07-11 14:57:05 +02:00
ded09d6461 STYLE: relocate deprecated utilities into separate directory 2017-07-11 14:47:50 +02:00
ac0053b8b2 Merge branch 'feature-post-release-cleaning' into 'develop'
Feature post release cleaning

See merge request !123
2017-07-11 12:45:20 +01:00
c76ae7abb3 COMP: add support for metis, scotch static libraries (eg, EasyBuild) 2017-07-11 11:36:37 +02:00
2b249e1ad3 STYLE: avoid default copyright assignment when generating from code templates 2017-07-11 08:58:52 +02:00
9097801105 STYLE: additional divisions for code templates 2017-07-11 08:48:10 +02:00
971213eb55 ENH: add dictionary searcher methods
- csearch(), search(), csearchScoped(), searchScoped() methods
  can be used to find an entry and also retain the enclosing
  dictionary context.

- To avoid ambiguity between a dot (.) as a scoping character and
  legal part of a keyword, entries can now be accessed directly using
  slash-scoping semantics similar to file-names:

    * cfindScopedDictPtr, findScopedDictPtr

- To get or create a sub-dictionary entry:

    * makeScopedDictPtr, which behaves similarly to mkdirp in that it
      will create any intermediate dictionaries as required.
2017-07-10 14:06:45 +02:00
f26989d52e ENH: allow '/' in ${...} blocks for future entry scoping (issue #429)
- Eg, "${scope/name}" to be supported with this.
2017-07-10 13:25:10 +02:00
910967c070 ENH: add Foam::SubStrings container and stringOps::split
- generic means of holding ranges of substring iterators
2017-07-20 19:53:57 +02:00
8df433860f STYLE: use string substr instead of string::operator()
- makes the purpose clearer.
  In some places, string::resize() is even simpler.

- use C++11 string::back() in preference to str[str.size()-1]
2017-07-21 12:30:42 +02:00
72f242405a STYLE: word::validated without underscore prefix by default (issue #518)
- this now appears to be the more common use case.
2017-07-18 14:09:49 +02:00
0456c5976d STYLE: remove special treatment for 'include' keyword (closes #521)
- a holdover from OpenFOAM 1.4 (prior to the #include dictionary directive)
2017-07-10 10:30:15 +02:00
a107e9b229 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
f304b70177 STYLE: simplify string handling for expansions in primitiveEntry 2017-07-07 19:42:57 +02:00
a09815fae2 Merge branch 'feature-post-release-cleaning' into 'develop'
Feature post release cleaning

See merge request !122
2017-07-07 17:29:06 +01:00
6afa62a6e4 STYLE: use shell 'command' instead of 'which' in tutorials 2017-07-07 16:00:57 +02:00
e7da4f0d07 TUT: adjust surfaceFeatureExtractDict to remove optional sub-dictionary
- as of v1706
  extractFromSurfaceCoeffs { ... } is an optional subdictionary
2017-07-07 15:41:18 +02:00
acb5d54e41 STYLE: initializer_list instead of IStringStream for static list construction 2017-07-07 12:54:54 +02:00
a47e0748c4 STYLE: Code tidying 2017-07-07 11:50:40 +01:00
91b6f37c73 ENH: wallHeatFlux FO - removed hard-coding of qr name 2017-07-07 11:49:14 +01:00
51d46079df ENH: consolidate table bounding (issue #520)
- replace duplicate code with global bounds enums and Enum
2017-07-07 12:37:25 +02:00
45dabbfe2b ENH: provide Enum failsafe lookup
- if the enum name is not found, then warn and return the default.
2017-07-07 12:33:41 +02:00
42bf91f3a5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-06 13:46:15 +01:00
c55dc32501 BUG: triSurfaceMesh: construct-from-triSurface refers to original surface. Fixes #519. 2017-07-06 13:45:25 +01:00
84e47f2d2a ENH: cleanup dictionary code
- use typedefs and new features/methods
- file-scope template to avoid code duplication.
2017-07-06 12:58:04 +02:00
162e9126f3 STYLE: adjust internal coding for handing IOobject filename (related to #482)
- make the purpose of various parts clearer
2017-07-06 11:34:35 +02:00
5d282722c1 ENH: add optional parameter to word::validated (issue #518)
- can now suppress prefixing an underscore to leading digits.
2017-07-06 10:58:48 +02:00
818c9b2da3 STYLE: adjust coding style for C++11 features and OpenFOAM-1706 methods 2017-07-06 09:23:09 +02:00
c50368ecc6 ENH: add trapFpe and setNaN optimisationSwitch (issue #517)
- allows configuration without an environment variable.
  For compatibility still respect FOAM_SIGFPE and FOAM_SETNAN
  env-variables

- The env-variables are now treated as true/false switch values.
  Previously there was just a check for env exists or not, but this
  can be fairly fragile for a user's environment.
2017-07-05 17:49:37 +02:00
e54a930dcc ENH: add mpiBufferSize optimisationSwitch (issue #517)
- allows configuration without an environment variable.
  For compatibility still respect MPI_BUFFER_SIZE env-variable.
2017-07-05 15:52:44 +02:00
a4c81f5962 ENH: make streams name() methods virtual throughout (issue #479) 2017-07-04 17:17:09 +02:00
6a0a8b99b3 STYLE: use ""_deg user-literal for degrees to radians conversion
ENH: add degToRad() multiplier (useful for scalar fields)

- use degToRad() functions throughout instead of scattered local solutions
2017-07-04 15:36:46 +02:00
e62e34f0f0 ENH: add -cellZone option to foamToVTK 2017-07-04 14:16:18 +02:00
6dd5a5f35f BUG: foamToVTK -cellSet produces rubbish or segfault (closes #516)
- erroneous double logic for subset meshes.

  The underlying vtk::vtuCells uses a cellMap to map into a global
  field, which also allows handling of decomposed polyhedral cells.

  If a mesh subset is involved (eg, cellSet, cellZone), then the
  set/zone cellMap can be used to ensure that the original number is
  properly adjusted. For foamToVTK, the meshSubsetHelper already
  does the subsetting and is used when loading fields.

  Does not affect ParaView reader module since there we work on the
  full field and do the subsetting manually (using the cellMap).
2017-07-04 13:19:16 +02:00
c5bd5393df ENH: lazier field loading in foamToVTK
- avoid loading surface fields if there are no faceZones

- avoid pointMesh if there are no appropriate point fields
2017-07-04 11:57:54 +02:00
f55c568f13 ENH: upgrade from NamedEnum to Enum (issue #515) 2017-07-03 21:43:33 +02:00
575073890f STYLE: spacing of multi-level template parameters 2017-07-05 15:06:06 +02:00
1bcb454f6d STYLE: hash constructors with power-of-two
- use 1024 instead of 1000 since it will be changed internally to 1024 anyhow.
2017-07-05 10:46:50 +02:00
efc21270ea STYLE: regExp with explicit constructor
- use separate constructor for ignore-case option (cf. wordRe treatment)

- constructors/destructor now inline.
2017-07-05 09:15:52 +02:00
aefb739584 STYLE: fix permissions on files, remove unused files 2017-07-03 12:15:41 +02:00
1d56e9f136 STYLE: use auto with vtkSmartPointer 2017-07-03 13:33:53 +02:00
7ac55ac74a ENH: consolidate arch and version strings (issue #513)
- make some IOobject writing routines non-templated.

- relocate more IOobject methods into the IOobjectI.H
  (generally cleanup the main header).
2017-07-03 13:24:08 +02:00
bc1f2fa97e STYLE: use auto and cfind to simplify selector usage (issue #512) 2017-07-03 10:36:03 +02:00
2910240040 Merge branch 'develop' into 'master'
Merge develop into master for v1706 release

Closes #505, #509, #497, #502, #500, #498, #493, #492, #490, #485, #486, #484, #481, #480, #467, #473, #470, #466, #464, #463, #460, #462, #458, #418, #420, #391, #452, #454, #453, #439, #427, #415, #422, #414, #411, #400, #398, and #348

See merge request !121
2017-06-29 21:09:51 +01:00
c84bf48873 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 19:49:55 +01:00
4518004df4 TUT: Updated RutlandVortex case - Thanks to Thilo Knacke 2017-06-29 19:49:32 +01:00
31172408ee Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 17:34:23 +01:00
0e465e0f5d BUG: label64: write primitives consistent with label size. Fixes #505. 2017-06-29 17:33:40 +01:00
2f62d94e8b BUG: CollidingParcel: is not contiguous since have collisionRecords_ 2017-06-29 17:16:38 +01:00
07d9d3fc04 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 14:18:41 +01:00
a900153f57 ENH: Added new vortexShed tutorial to show vortex shedding and use of the Curle function object 2017-06-29 14:18:19 +01:00
7dbb3b657d ENH: argList - onlycheck for decomposeParDict when checkProcessorDirectories_ is true 2017-06-29 14:10:12 +01:00
a40798c71e STYLE: Updated copyright year 2017-06-29 14:09:34 +01:00
7ac88c13d9 ENH: Updated oriented flag for backwards compatibility 2017-06-29 13:37:08 +01:00
00a5b61bd2 ENH: making pcEqn.H similar to pEqn.H.
STY: Fixing syntax in rhoPimpleDyMFoam/pEqn.H
2017-06-28 14:36:25 -07:00
29d613dae4 BUG: Changing V0 not to be registered in order to avoid mapping. But writing it down
by fvMesh.writeObject().
2017-06-28 12:11:24 -07:00
e5f6d3166c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 08:58:50 -07:00
cec7eb9518 ENH: add basic arch information to the output (issue #361)
- end user can easily see which arch (endian, label/scalar size) was
  used from the log output, or via -help usage
2017-06-28 17:41:15 +02:00
a2d8e6e4f5 STYLE: remove old references to 'dx' and 'foamFile' 2017-06-28 16:11:24 +02:00
15de34427c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 15:07:04 +01:00
2355f1aa38 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 14:08:02 +01:00
bb2041ef69 BUG: reactionSensitivity - corrected integral calculations 2017-06-28 14:07:57 +01:00
367095f666 BUG: Correction for commit ead256f50 2017-06-28 14:07:26 +01:00
191c8534e7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 12:46:24 +01:00
c5c48205fe BUG: pitzDaily: remove DebugSwitches 2017-06-28 12:46:01 +01:00
b39eece156 CONFIG: revert to openmpi-1.10.4
- this is the same version as OpenFOAM-1612 shipped with and seems to
  have fewer issues than the newer openmpi-2.1.1
2017-06-28 13:37:50 +02:00
0f547660ce TUT: make it easier to perform dry runs for lumpedPointMotion 2017-06-28 12:16:38 +02:00
1c05248249 Merge branch 'feature-rhoPimpleAdiabatic' into 'develop'
Feature rho pimple adiabatic

See merge request !118
2017-06-28 10:25:08 +01:00
e98214b0ad BUG: Updating rho at the end of the pEq for rhoPimpleDyMFoam and limiting is needed 2017-06-27 15:47:53 -07:00
50cc938677 ENH: Setting V0 to NO_WRITE, but registered in the database 2017-06-27 08:56:39 -07:00
ff2a811bdb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 08:13:09 -07:00
708a887077 ENH: change of setting for tutorials 2017-06-27 08:05:15 -07:00
5bab287985 compressibleInterFilmFoam: Experimental VoF solver supporting VoF<->film transfer 2017-06-27 15:55:43 +01:00
aca6870580 TUT: Updated writeCompression flag entries 2017-06-27 15:55:20 +01:00
87680a06fa Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 15:51:47 +01:00
bd803d80c6 TUT: Removed unused nMoles entries 2017-06-27 15:51:34 +01:00
fb4a51cf16 CONFIG: update bashcompletions 2017-06-27 15:59:18 +02:00
e4bfefa396 STYLE: Minor tidying 2017-06-27 11:22:03 +01:00
9e0235cd2a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 11:19:18 +01:00
bf2ed1abcf ENH: Updated pressure-work term creation for moving meshes 2017-06-27 11:18:55 +01:00
df403965ab ENH: suppress wmkdep 'No such file' warnings in wmake -silent mode 2017-06-27 09:29:56 +02:00
2582190820 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 20:13:19 +01:00
e84c788b03 ENH: Updated the maxwellSlipU BC to derive from the partialSlip BC 2017-06-26 20:12:11 +01:00
bd5c0a3036 ENH: Updated partialSlip BC to enable users to specify the value at zero
slip

The old behaviour assumed that the no-slip value was zero.  This has
been extended to enable the user to supply a refValue - the value at
zero slip.

This was similar to the mixedFixedValueSlipFvPatchField behaviour in the
rhoCentralFoam library - now deprecated in favour of the templated
partialSlip version.
2017-06-26 20:07:18 +01:00
36cd20c429 STY: Upadting thermo in sphereDrop tutorial case 2017-06-26 08:49:35 -07:00
e35d2e53c9 BUG: Fixing issue 505 in GL. Initializing switchProcessor and keepParticle in CollidingParcel and MPPICParcel 2017-06-26 08:47:46 -07:00
06b59ad9ce Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 16:25:23 +01:00
5b231ac7c7 BUG: molecularDynamics: reference to temporary. Fixes #509. 2017-06-26 16:24:58 +01:00
cc9ffdffbb 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
7b2d419157 INT: updated overInterDyMFoam and MPPICInterFoam following changes to multiphase solvers. Needs further testing 2017-09-08 11:20:21 +01:00
80d69c27b1 COMP: compilation with WM_SP
- STLpoint.H
- isoAdvection.C
- checkMesh/writeFields.C

STYLE: drop construct STLpoint(Istream&), since it doesn't make much sense

- No use case for reading via an OpenFOAM stream and tokenizer.
  Should always be parsing ASCII or reading binary directly.
2017-06-26 17:11:46 +02:00
d415bf77bf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 13:33:19 +01:00
21716842fd ENH: Added new Curle function object
Calculates the acoustic pressure based on Curle's analogy.

Curle's analogy is implemented as:

    \f[
        p' = 4 \frac{\pi}{c_0}\frac{\vec d}{|\vec d|^2}\frac{d(F)}{d(t)}
    \f]

where
    p'          | Curle's acoustic pressure [Pa] or [Pa (m3/rho)]
    c_0         | Reference speed of sound [m/s]
    \vec d      | Distance vector to observer locations [m]
    F           | Force [N] or [N (m3/rho)]
2017-06-26 13:32:14 +01:00
0881052ce1 ENH: doxygen - re-added css for OpenFOAM tables 2017-06-26 13:27:58 +01:00
89e175958f ENH: function object: added helper function to return a local scope name 2017-06-26 13:23:45 +01:00
e0e457bd7d STYLE: Updated to read from parent instead of skipping to base class 2017-06-26 13:21:34 +01:00
02edc5b206 STYLE: tabs and line length in files, very dubious NULL in ensight reader.
- disable automatically upgrading copyrights in files since changes to
  not automatically imply a change in copyright. Eg, fixing a typo in
  comments, or changing a variable from 'loopI' to 'loopi' etc.
2017-06-26 13:43:05 +02:00
2dc8038092 ENH: timeControl: adds some more #423. 2017-06-26 11:51:14 +01:00
fea9b6c57d DOC: update BuildIssues.txt 2017-06-26 12:19:05 +02:00
4abc7a92ed STYLE: Header updates 2017-06-26 11:03:00 +01:00
4971cedc2a CONFIG: cleanup bash completions in unset 2017-06-26 11:09:05 +02:00
a22d9fe760 BUG: correctPhi: reference cells could become -1. Part fix for #507. 2017-06-26 09:52:26 +01:00
0d3ada09f5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-23 17:39:40 -07:00
2b733dfed1 ENH: Changing BC for nut and omega for interDyMFoam/RAS/motorBike tutorial 2017-06-23 17:38:52 -07:00
5d5cc61bef ENH: Improving schemes for interDyMFoam/RAS/motorBike 2017-06-23 17:36:59 -07:00
a2ee408f0b Merge branch 'feature-lumpedPointMotion' into 'develop'
Feature lumped point motion

See merge request !120
2017-06-23 14:54:56 +01:00
491657047b TUT: simple tutorial demonstrating lumpedPointMotion 2017-06-23 14:52:27 +01:00
c0b38033ea ENH: integration of lumpedPointMotion
- This provides a mechanism for moving mesh patches based on external
  input (eg, from an external structures solver). The patch points are
  influenced by the position and rotation of the lumped points.

  BC:  lumpedPointDisplacementPointPatchVectorField

  Controlling mechanisms:
  - externalCoupler
    for coordinating the master/slave

  - lumpedPointMovement
    manages the patch-points motion, but also for extracting forces/moments

  - lumpedPointState
    represents the positions/rotations of the controlling points

  Utils:
  - lumpedPointZones
    diagnostic for visualizing the correspondence between controlling
    points and patch faces

  - lumpedPointMovement
    Test that the patch motion is as desired without invoking moveMesh.
    With the -slave option, return items from a precalculated table
    for the lumpedPointDisplacementPointPatchVectorField BC.
2017-06-23 14:43:09 +01:00
6779036af6 ENH: paraFoam -touch-proc option for processor directories
- Can be useful when investigating mesh topologies
2017-06-23 13:51:46 +01:00
fef4e493d4 STYLE: Updated messages to use pretty macros 2017-06-23 12:23:04 +01:00
34a1a5dec2 STYLE: Minor corrections to comments/fix typos 2017-06-23 12:13:46 +01:00
e6951da06f ENH: valueAverage FO - update window to use user time 2017-06-23 11:56:22 +01:00
ff9d2c3a9c ENH: Updated frozenFlow option for interFoam and interIsoFoam 2017-06-23 11:43:55 +01:00
3d854a683d ENH: solutionControl - added frozenFlow option 2017-06-23 11:42:51 +01:00
880c98757d ENH: Adding lookupAndCheckout in basic thermo destructor to check out p field.
This was needed for application like postProcess.H in order to force the reading of thermal p on
every time.
2017-06-22 09:23:27 -07:00
8005e2b4a2 ENH: add cloneParallelCase function into bin/tools/RunFunctions 2017-06-22 14:45:53 +01:00
3df71d18d0 compressibleInterFoam: Improved mass conservation
using the continuity error correction formulation developed for
twoPhaseEulerFoam and reactingEulerFoam.
2017-06-22 14:42:36 +01:00
092d4f4f0b 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
1eb3f3b18d 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
e17e8e4e96 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/T
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/zoneID
2017-06-22 09:48:31 +01:00
57346f63e9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-21 12:28:26 -07:00
fd87d0af17 Taking out the low-Re behaviour for epsilon and omega wall functions as they are not
reliable for medium yPlus and needs more verification for Low-Re cases. This option proved
to be overall the most robust for a range of yPlus
2017-06-21 12:26:40 -07:00
6ecddbe4a5 STYLE: use #includeEtc in tutorial cases
#includeEtc "caseDicts/setConstraintTypes"
 vs.
    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
2017-06-21 16:42:57 +01:00
597bad0d86 STYLE: adjust doc for extractEulerianParticles 2017-06-21 16:31:42 +01:00
a995fcccb6 ENH: make "done" the default termination for externalCoupled
- simply removing the lock file on termination provides insufficient
  information for the external application to know if it should take
  over again or if OpenFOAM has terminated. Instead the "status=done"
  content is now used by default.
2017-06-21 15:21:29 +01:00
c73865de87 Merge branch 'integration-isoadvector' into 'develop'
INT: Integration of isoAdvector and supporting material

See merge request !119
2017-06-21 17:22:26 +01:00
00cbae5126 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-21 14:06:16 +01:00
c462d48196 ENH: wallBoundedStreamline: handle patches with zero faces. See #502. 2017-06-21 14:05:26 +01:00
f6cc84e675 Merge branch 'feature-secondOrderRestart' into 'develop'
Feature second order restart

See merge request !114
2017-06-21 14:03:31 +01:00
cbbf08dc0d STYLE: tutorials: fix headers 2017-06-21 12:49:28 +01:00
65071b9598 ENH: Updated dpdt and K field construction 2017-06-21 12:20:58 +01:00
feab8e94a8 ENH: restrict aliases, completions to interactive shells
- minor cleanup of bash completion script
2017-06-21 08:09:15 +01:00
81018090a6 CONFIG: bump openmpi version to latest (2.1.1)
- adjust mesa, vtk versions to the latest
2017-06-21 08:36:52 +01:00
9fa89e67c6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-20 13:42:46 -07:00
4418c192c4 Deleting alphaEqn.H from overInterDyMFoam 2017-06-20 13:42:10 -07:00
f92ee22541 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-20 14:47:17 +01:00
45a8b92450 COMP: mergePoints - corrected erroneous commas 2017-06-20 14:46:31 +01:00
29f4e77299 ENH: wallBoundedStreamline: make sure to track across neg face; more testing 2017-06-20 14:46:12 +01:00
a6ef8b9027 INT: Integration of isoAdvector and supporting material
Community contribution from Johan Roenby, DHI

IsoAdvector is a geometric Volume-of-Fluid method for advection of a
sharp interface between two incompressible fluids. It works on both
structured and unstructured meshes with no requirements on cell shapes.
IsoAdvector is as an alternative choice for the interface compression
treatment with the MULES limiter implemented in the interFoam family
of solvers.

The isoAdvector concept and code was developed at DHI and was funded
by a Sapere Aude postdoc grant to Johan Roenby from The Danish Council
for Independent Research | Technology and Production Sciences (Grant-ID:
DFF - 1337-00118B - FTP).
Co-funding is also provided by the GTS grant to DHI from the Danish
Agency for Science, Technology and Innovation.

The ideas behind and performance of the isoAdvector scheme is
documented in:

    Roenby J, Bredmose H, Jasak H. 2016 A computational method for sharp
    interface  advection. R. Soc. open sci. 3: 160405.
    [http://dx.doi.org/10.1098/rsos.160405](http://dx.doi.org/10.1098/rsos.160405)

Videos showing isoAdvector's performance with a number of standard
test cases can be found in this youtube channel:

    https://www.youtube.com/channel/UCt6Idpv4C8TTgz1iUX0prAA

Project contributors:

* Johan Roenby <jro@dhigroup.com> (Inventor and main developer)
* Hrvoje Jasak <hrvoje.jasak@fsb.hr> (Consistent treatment of
  boundary faces including processor boundaries, parallelisation,
  code clean up
* Henrik Bredmose <hbre@dtu.dk> (Assisted in the conceptual
  development)
* Vuko Vukcevic <vuko.vukcevic@fsb.hr> (Code review, profiling,
  porting to foam-extend, bug fixing, testing)
* Tomislav Maric <tomislav@sourceflux.de> (Source file
  rearrangement)
* Andy Heather <a.heather@opencfd.co.uk> (Integration into OpenFOAM
  for v1706 release)

See the integration repository below to see the full set of changes
implemented for release into OpenFOAM v1706

    https://develop.openfoam.com/Community/Integration-isoAdvector
2017-06-20 14:36:15 +01:00
c194bbf765 STYLE: fieldToCell: added explanation 2017-06-20 11:06:24 +01:00
e0ae2c0b9f ENH: additional constructor and methods for axesRotation
- provide single parameter constructor for which the rotation direction
  is determined based on the size/sign of the axis components.
  The direction is aligned with one of the global axes.

- expose setTransform as a public method to allow the user to reset
  the axesRotation if desired.
2017-06-20 09:50:47 +01:00
614b33f3e1 pRef is not required (default 0.0) when calcTotal flag is true. 2017-06-19 12:42:03 -07:00
6ff341b5f5 Adding alphaEqn.H with interpolation method.
Adding special alphaCourantNo for overlaping
Adding bounded term to UEq.H for overInterDyMFoam
Changing to NO_WRITE for the cellMask field
Changing twoSimpleRotors tutorial to open domain
2017-06-19 11:10:19 -07:00
ad8dfd4ad8 Cleaning up different output messages 2017-06-19 08:00:10 -07:00
560c015821 Merge branch 'master' into develop 2017-06-16 10:38:30 +01:00
d06589b746 STYLE: Updated warning message output 2017-06-16 10:37:52 +01:00
2883311a23 ENH: rhoPimple[DyM]Foam - updated treatment for dpdt 2017-06-15 14:51:27 +01:00
bea9063bd3 COMP: writeVTK: label64 compilation 2017-06-15 12:31:37 +01:00
4a3ead4732 ENH: avoid reduce for MPI barrier in externalCoupled (issue #419)
- rationalized waiting logic

- timeout and wait are unsigned int (not label) since this is what
  the underlying sleep uses anyhow.
2017-06-14 14:40:59 +02:00
b5f091e74f BUG: incorrect indexing for surface baffles (fixes #497) 2017-06-16 09:37:43 +02:00
a17a04122e ENH: wallBoundedStreamline: survive neg-tet cells. Fixes #502. 2017-06-15 16:49:21 +01:00
9c740ffc21 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-15 12:32:03 +01:00
510b579dd6 COMP: writeVTK: label64 compilation 2017-06-15 12:31:37 +01:00
6c3f04d0d4 Merge branch 'integration-ihc-wavemodels' into 'develop'
Integration of ihc wavemodels

See merge request !117
2017-06-15 11:38:25 +01:00
e6572f56ae Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-15 11:19:14 +01:00
acdeb308be ENH: sampledTriSurfaceMeshNormal: variant of sampledTriSurfaceMesh. Fixes #500. 2017-06-15 11:18:38 +01:00
dd19c87f30 updating fvOptions from fileName to file in windshieldCondensation
Correcting header in tabulatedNTUHeatTransfer from fileName to file
2017-06-14 14:33:14 -07:00
45be9bcc44 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 14:00:39 -07:00
b083205d23 Fixing externalWallHeatFluxTemperature mapping scalarFields.
Fixing humidityTemperatureCoupled problem in parallel
Adding Allrun-parallel to externalSolarLoad and windshieldCondensation tutorials
2017-06-14 13:58:52 -07:00
7e6faf049c Squashed commit of the following:
commit 510b9353f8cb932a87f1588b17a4dea230c29d3c
Author: mattijs <mattijs>
Date:   Wed Jun 14 16:36:35 2017 +0100

    ENH: timeControl: propagate time-change logic from Time.C

commit 6dc57a8f1e0e7605ea819deb6f11dd4b7874ff30
Author: mattijs <mattijs>
Date:   Thu Jun 1 11:28:56 2017 +0100

    ENH: timeControl: cleanup; avoid division by zero

commit 5ac4bc2dd8c1f4676eef9d7a03215caba23a2e19
Author: mattijs <mattijs>
Date:   Wed May 31 12:04:52 2017 +0100

    ENH: timeControl: allow ramping down as well as up.

commit a6b2db9e791f29258f04f3a9cbd6354aa468977d
Author: mattijs <mattijs>
Date:   Wed May 17 15:29:22 2017 +0100

    ENH: timeControl: limit any timestep change if deltaTCoeff enabled.

commit 004115ee03a6637ae0d23cce303a30d1b3af046f
Author: mattijs <mattijs>
Date:   Wed May 17 11:40:26 2017 +0100

    ENH: setTimeStep: have timeStart, timeEnd controls on time step adjustment.

    Also added smoothly varying time step change (through optional deltaTCoeff)
2017-06-14 16:40:17 +01:00
8a8e5e8891 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 08:06:26 -07:00
d435b215e2 Updating solarLoad tutorial case for parallel running 2017-06-14 08:05:19 -07:00
7c88c694df STYLE: vtkWrite: added comment 2017-06-14 15:34:05 +01:00
2dfd01ac7b Merge branch 'feature-paraview-vtk' into 'develop'
Feature paraview vtk

See merge request !116
2017-06-14 14:16:18 +01:00
9bb6d896fa Merge remote-tracking branch 'origin/develop' into develop 2017-06-14 14:22:59 +02:00
7eec9f0dd6 STYLE: use standardized 0.orig/ for overset tutorials 2017-06-14 14:15:22 +02:00
518089e722 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 12:29:06 +01:00
e14ad6f1fc BUG: mixerVessel: replace foamInfoExec with foamListTimes 2017-06-14 12:28:33 +01:00
710f23aa35 COMP: hash-table size overflow with 64-bit labels (fixes #498)
- Requires (1L << N) instead of (1 << N), otherwise it overflows
  and the result is zero.
2017-06-14 12:54:38 +02:00
6d649ddf1f STYLE: prefix bash completion functions with '_of_' for easier removal 2017-06-14 11:46:10 +02:00
29fa7a9306 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 10:24:07 +01:00
685d6a0e72 CONFIG: avoid bash completions for non-bash shells (eg, dash, ksh, zsh) 2017-06-14 11:22:51 +02:00
fd665b4a3c ENH: overset: Initial release of overset capability.
Adds overset discretisation to selected physics:
- diffusion : overLaplacianDyMFoam
- incompressible steady : overSimpleFoam
- incompressible transient : overPimpleDyMFoam
- compressible transient: overRhoPimpleDyMFoam
- two-phase VOF: overInterDyMFoam

The overset method chosen is a parallel, fully implicit implementation
whereby the interpolation (from donor to acceptor) is inserted as an
adapted discretisation on the donor cells, such that the resulting matrix
can be solved using the standard linear solvers.

Above solvers come with a set of tutorials, showing how to create and set-up
simple simulations from scratch.
2017-06-14 09:51:02 +01:00
ba5f79a8e5 ENH: suppress unset -f warnings for bash completions 2017-06-14 10:22:39 +02:00
11e7728f8b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 09:06:49 +01:00
2d530401fd ENH: add foamToVTK -name option
- as per foamToEnsight, foamToEnsightParts.
  Allows the user to specify different output directories.
2017-06-14 08:14:24 +02:00
49500b0194 STYLE: more meaningful variable name when using meshSubsetHelper 2017-06-14 07:56:57 +02:00
180788c453 STYLE: remove deprecatedOrder from ensightWrite function object
- this should not have been there in the first place
2017-06-14 07:52:26 +02:00
98cc0fc004 ENH: upgrade writeVTK function object -> vtkWrite function object
- user-selectable format (vtk or vtu, ascii or binary)
- dictionary syntax closer to ensightWrite
- tutorial example in windAroundBuildings
2017-06-14 01:48:32 +02:00
df5b009708 ENH: support direct writing of fields from vtk::patchWriter
- eliminates the PtrList requirement (more flexible)
2017-06-14 00:53:51 +02:00
2a72baf29f ENH: support direct writing of fields from vtk::internalWriter
- eliminates the PtrList requirement (more flexible)

COMP: use tmp intermediate for volPointInterpolation return value

- gcc 4.8.5 had some weird issue of otherwise not binding a const-ref.
  (in foamVtkInternalWriterTemplates.C)
2017-06-14 00:28:58 +02:00
8221111245 STYLE: pass legacy nCmpt as int 2017-06-13 23:59:11 +02:00
7ee1dba43a STYLE: adjust feedback comments in foamToVTK 2017-06-13 22:28:39 +02:00
69deec2e1c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-13 09:41:45 -07:00
d661165759 Init processor_ variable for patchProbes in findElements function 2017-06-13 09:40:57 -07:00
cde12ad9e5 ENH: consolidate vtk classes into 'Foam::vtk' namespace
- elminate the foamVtkFormatter operator() in favour of xmlAttr.
  Improves readability and the purpose is clearer.
2017-06-13 14:10:07 +02:00
d764104730 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
523008e85d STYLE: corrected file vs fileName for CSV files 2017-06-13 07:23:32 +02:00
206914ceae TUT: consistent indentation in controlDict 2017-06-13 07:17:37 +02:00
0ea219adf5 TUT: consistent writeCompression option
- Use on/off vs longer compressed/uncompressed.
  For consistency, replaced yes/no with on/off.

- Avoid the combination of binary/compressed,
  which is disallowed and provokes a warning anyhow
2017-06-13 06:50:16 +02:00
0735836302 Correcting header docu 2017-06-12 13:56:39 -07:00
852616ba88 interpolationTable: Correcting header documentation
fanPressureFvPatchScalarField.H:  Correcting header documentation
RAS/TJunctionFan/0.orig: Creating tutorial for fanPressure
Adding pRef and pValue for tutorial createZeroDirectory/snappyMultiRegionHeater
2017-06-12 13:53:52 -07:00
b6b61a4cf4 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-12 11:29:53 -07:00
e3701a47ae ENH: Adding non-dimensional table input to fanPressure BC
Adding intertial term switch to solarLoad chtMultiRegionFoam case
2017-06-12 11:28:57 -07:00
6e154d84b4 STYLE: use Enum instead of NamedEnum in fileFormats 2017-06-12 16:17:04 +02:00
0af1e0b722 BUG: minor regression. STL reading in double, not float (issue #491)
- By definition, binary STL uses float (not double) when reading.
  The ascii STL should be the same. This reduces memory overhead when
  loading files. The older triSurface reader had float, the surfMesh
  reader had double, but now has float.

- Inconsistency in the STL merge-tolerances between triSurface reader,
  surfMesh reader and WM_SP vs WM_DP. Now use consistent tolerances
  conrresponding to 10,100 * doubleSMALL.

- Similar float/double code adjustments for TRI format since this is
  very similar to the STL reader and had a similar inconsistency between
  the triSurface and surfMesh version. The AC3D reader still uses
  double when reading, but this can be revisited in the future (and can
  then remove the stichTriangles method too).
2017-06-12 15:47:01 +02:00
bf88d4ec99 ENH: reduce chance of false positives when generating bash completions
- only treat text as an option if it is preceded by 0-4 spaces.
  This prevents the description of an option from being accidentally
  detected as an option.
2017-06-12 14:58:13 +02:00
edc1bd2230 CONFIG: bump paraview version 2017-06-12 14:57:56 +02:00
951fbb6575 ENH: add construct from floatVector for STLpoint (issue #491) 2017-06-12 14:41:03 +02:00
4094e2c58f ENH: reduce memory overhead in mergePoints (issue #495)
- can avoid the intermediate point distance field in exchange for
  calculating a point subtraction twice.
2017-06-12 14:36:45 +02:00
39f0c4cf1a BUG: flex symbol conflict (issue #494) 2017-06-12 12:56:16 +02:00
ead256f506 INT: Integration of rhoPimpleAdiabaticFoam
Solver for low Mach no. flows with adiabatic thermodynamics and updated
pressure-velocity coupling given by the RCM interpolation procedure
described in

    \verbatim
        Knacke, T. (2013).
        Potential effects of Rhie & Chow type interpolations in airframe
        noise simulations. In: Schram, C., Dénos, R., Lecomte E. (ed):
        Accurate and efficient aeroacoustic prediction approaches for
        airframe noise, VKI LS 2013-03.
    \endverbatim

Original code supplied by Thilo Knacke, CFD E+F GmbH
contact: info@cfd-berlin.com

Integrated into OpenFOAM by OpenCFD Ltd.
2017-06-09 10:23:47 +01:00
3deccbedd7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-08 16:59:09 +01:00
ca7dbabdcf ENH: probes: filter out points that cannot be found. Fixes #492. 2017-06-08 16:55:52 +01:00
257d2f04a4 Update rho = thermo.rho(), in the pEq for reactingFoam.
Updating fvSolution's for closed domains for chtMultiRegionFoam cases
2017-06-08 10:41:57 +01:00
4691ee4951 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-08 09:24:08 +01:00
d9b2de8f74 Adding rhoMin and rhoMax to rhoReactingFoam 2017-06-08 09:23:47 +01:00
6186f91fea Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-07 16:33:27 +01:00
74cfb1906f ENH: probes: filter out points that cannot be found. Fixes #492. 2017-06-07 16:33:06 +01:00
486a82fad6 Updating rho with thermo rho at the end of the pEq.H, independently of
simpleRho or limiting p.
2017-06-07 16:26:43 +01:00
f31d5cf217 STYLE: sampledSurface: added comment for interpolation 2017-06-07 15:19:51 +01:00
bac2c8cc30 GIT: Resolved conflict 2017-06-07 15:00:31 +01:00
68df61bebe BUG: set oriented flag when calculating the correction for rank > vector types 2017-06-07 13:16:51 +01:00
c44322ebb8 Adding correctRho plus rhoMin and rhoMax limiters to thermos.
Update pEq for close domains.
2017-06-07 12:11:01 +01:00
1a4bca3a59 BUG: Pair: non-commutative comparison operator. Fixes #490. 2017-06-05 10:13:32 +01:00
a83ee15462 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-05 08:34:09 +01:00
53d6eeacff Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-02 13:36:09 -07:00
40b0cbd8d1 1)Adding alphaEqn.H and alphaEqnSubCycle.H specialized version for MPPICInterFoam
2)Adapting divU in TEqn.H for compressibleInterDyMFoam and compressibleInterFoam
3)Re-instated sixDoFRigidBodyDisplacement as patch for pointFields. It allows to use a different fvDynamincMesh type
independently of the BC's
2017-06-02 13:33:33 -07:00
4cbbe3fd59 ENH: add VTP output support for surfMesh
- use proxy writer for triSurface writing
2017-06-02 12:07:43 +02:00
b538a9128c ENH: New wave model integration updates for McCowan and Grimshaw models 2017-06-02 10:23:32 +01:00
0f230ba35b ENH: Added new Grimshaw and McCowan wave models - initial commit for
integration
2017-06-02 09:47:31 +01:00
361398a64a COMP: make mathematical constants constexpr
- these are compile-time constants and can be marked as such in C++11.
2017-06-02 07:55:04 +02:00
d1b651533f Modification on rhoPimpleFoam pEq's for handling rho thermo and incompressible EoS. Adding rho limiters if p is limited.
This is important when LTS stepping or large Co number is used.

Updating rhoBuoyantPimpleFoam to handle closed domain for rho thermo and incompressible Eos.
Consolidating chtMultiRegionSimpleFoam and chtMultiRegionFoam pEqs to use the same formulation as rhoBuoyantPimpleFoam and
rhoBuoyantSimpleFoam
2017-06-01 12:39:28 -07:00
309a5d92f5 BUG: patchFields: set patchType() by hand if construct-from-parts. Related to #315. 2017-06-01 17:59:10 +01:00
9f04dc9151 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-01 17:53:10 +01:00
a2e978d43e ENH: add VTP, VTU output for most vtk writers (insitu only)
- with the xml append format it is possible to write raw binary
  (instead of base64), but the writer becomes more complicated.
  Either needs two passes to create, or need to allocate a block
  of space for the header information (like VTK itself does) and
  write later.

    * internalWriter
    * patchWriter
    * surfaceMeshWriter
    * lagrangianWriter

 Also these special purpose ones:
    * foamVtkWriteSurfFields
2017-06-01 18:28:40 +02:00
b80f24948d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-01 17:28:21 +01:00
6a0b35bdc8 ENH: noiseModels - updated parallel usage (no longer needs proc dirs) and apply input data validation 2017-06-01 17:27:30 +01:00
f431a328d2 ENH: volRegion and volFieldValue - updated output name if operating on all cells 2017-06-01 17:26:12 +01:00
8aab4f1593 Revert "sixDoFRigidBodyDisplacementPointPatchVectorField, uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField: removed"
This reverts commit 942338b06c.
2017-06-01 17:17:50 +01:00
a4b826aa1e STYLE: fix comments 2017-06-01 16:38:48 +02:00
4faee1b3bf COMP: unitConversion - using M_PI instead of pi to avoid compiltion error due to pi not evaluating to a constexpr 2017-06-01 20:17:09 +01:00
b312f0ba40 ENH: documentation and input simplification for surfaceFeatureExtract 2017-06-01 15:46:42 +02:00
0a49f3efc7 ENH: writeOBJ faces - use face instead of lines 2017-06-01 12:55:23 +01:00
c4f1349496 ENH: construct VTK writers with the outputOptions and adjust internally
- this shifts responsibility away from caller to the individual writers
  for knowing which file formats are supported and which file ending is
  appropriate. When the writer receives the output format request,
  it can elect to downgrade or otherwise adjust it to what it can
  actually manage (eg, legacy vs xml vs xml-append).

  But currently still just with legacy format backends.
2017-05-31 22:08:54 +02:00
a335ba6b6b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-31 17:45:07 +01:00
4bbc62bbb8 ENH: stringOps - getVariable function - make use of the allowEmpty flag 2017-05-31 17:44:44 +01:00
f89b770f21 Merge branch 'feature-surfaceFeatureExtract' into 'develop'
Feature surface feature extract

See merge request !110
2017-05-31 16:33:45 +01:00
79ea782301 Merge branch 'ccm-bugfixes' into 'develop'
ccm conversion bugfixes

See merge request !115
2017-05-31 11:51:09 +01:00
8da6e8eb74 DEFEATURE: remove CCM combine boundary code
- was generally somewhat fragile. The main problem stems from the fact
  that several interfaces may be attached to a boundary. No trivial
  means of solving this without too much work for a feature that is only
  "nice-to-have".
2017-05-31 12:34:07 +02:00
da5c5d15f7 GIT: Resolved conflict on cherry-pick 2017-05-31 10:35:05 +01:00
ca2811d50a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-06 17:31:19 +01:00
854f607f93 STYLE: Updated heat power and flux names 2017-06-06 11:53:00 +01:00
c0763bf8d2 Merge branch 'master' into develop 2017-06-06 09:52:21 +01:00
62e7ddccdc ENH: add (C++11) user-literal for degrees to radians conversion
- Programming convenience.
  Eg, cos(45_deg) vs cos(degToRad(45))

STYLE: conversions marked as constexpr and noexcept
2017-05-31 10:16:19 +02:00
0be69605fd STYLE: incorrect namespace for doxygen 2017-05-31 10:02:55 +02:00
3fd1c47324 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-31 09:00:16 +01:00
8a52553b63 BUG: snappyHexMesh: extraneous debug printing. Fixes #485. 2017-05-31 08:59:36 +01:00
408b6c7e6b ENH: mergePoints now with template for list types
- makes it possible to use list types other than UList.
  For example, UIndirectList<point>
2017-05-30 18:21:01 +02:00
104f43583f CONFIG: bump baseline version to 1706
- not yet release, but some of the API and file locations are closer
  to 1706 than to 1612. Needed, for example, for swak4foam.
2017-05-30 15:09:06 +02:00
d9072f527c COMP: provide NamedEnum::found() method for third-party code
- eg, swak4Foam uses it for NumericAccumulationNamedEnum
2017-05-30 14:47:08 +02:00
49129ba88b COMP: using private data in HashPtrTableIO 2017-05-30 14:44:37 +02:00
111ec17cb5 GIT: Updated after cherry-picks from third party code 2017-05-30 12:53:59 +01:00
98ccc6ed50 ENH: add prune option for ListOps reorder, inplaceReorder
- allows simultaneously reordering and truncation of lists

STYLE: add const ref for UnaryPredicate parameter
2017-05-30 13:18:06 +02:00
6d26b40e8b STYLE: use newer forAll macros 2017-05-30 12:44:13 +02:00
03944c2a26 ENH: support enumerations for vtk xml file tags and some legacy text elements 2017-05-30 10:34:01 +02:00
5d60d7e15c BUG: incorrectly dimensioned edge directions in extendedEdgeMesh:add() 2017-05-29 22:26:14 +02:00
dfafe6075a ENH: region-wise self intersection for surfaceFeatureExtract (issue #450) 2017-05-29 18:57:25 +02:00
6563c98d6c ENH: support different triSurface loading options
- "single" = One region for all files
 - "file"   = One region for each file
 - "offset" = Offset regions per file
 - "merge"  = Merge regions by name

These specifications provide finer control when loading multiple
surfaces.
2017-05-29 18:25:23 +02:00
67237e9385 CONFIG: adjust boost,CGAL versions 2017-05-29 17:18:26 +02:00
0f83b3f04b BUG: incorrect fall-through in directionalPressureGradientExplicitSource (fixed #486) 2017-05-29 15:34:14 +02:00
33e0c95d2d BUG: incorrect fall-through in directionalPressureGradientExplicitSource (fixes #486) 2017-05-29 15:33:38 +02:00
76c39302dd CONFIG: add compiler config for Gcc 7.1.0 2017-05-29 15:20:56 +02:00
90a07ff4cc BUG: enum constant in boolean context 2017-05-29 15:18:35 +02:00
d7a4088caa COMP: explicit handling of fallthrough cases 2017-05-29 15:10:54 +02:00
8afc6cbd86 ENH: Enum class as drop-in alternative for NamedEnum
- the NamedEnum wrapper is somewhate too rigid.
  * All enumerated values are contiguous, starting as zero.
  * The implicit one-to-one mapping precludes using it for aliases.
  * For example, perhaps we want to support alternative lookup names for an
    enumeration, or manage an enumeration lookup for a sub-range.
2017-05-29 13:13:53 +02:00
77a5b99e92 COMP: Hash.H was not included with HashTable/HashSet
- was only included indirectly via FixedList.H
2017-05-29 11:20:49 +02:00
c6c79ab313 STYLE: use std::pair (not Tuple2) in conjunction with std::initializer_list
- no penalty compared to Tuple2, potential future benefits with C++
  constructor forwarding.
2017-05-29 11:07:39 +02:00
fb4971644f ENH: cleanup of NamedEnum
- Remove the unused enums() method since it delivers wholly unreliable
  results. It is not guaranteed to cover the full enumeration range,
  but only the listed names.

- Remove the unused strings() method.
  Duplicated functionality of the words(), but was never used.

- Change access of words() method from static to object.
  Better code isolation. Permits the constructor to take over
  as the single point of failure for bad input.

- Add values() method

- do not expose internal (HashTable) lookup since it makes it more
  difficult to enforce constness and the implementation detail should
  not be exposed. However leave toc() and sortedToc() for the interface.

STYLE: relocated NamedEnum under primitives (was containers)

- internal typedef as 'value_type' for some consistency with STL conventions
2017-05-29 10:30:55 +02:00
dd54aa3018 BUG: non-lazy PackedList (fixes #484)
- The unset() method never auto-vivifies, whereas the set() method
  always auto-vivifies. In the case where set() is called with a zero
  for its argument - eg, set(index, 0) - this should behave
  identically to an unset() and not auto-vivify out-of-range entries.
2017-05-26 21:02:28 +02:00
9bc87005ad Adding optional build of the thermo tpe per reaction. This thermo is not necessary for solid reactions.
NOTE: in Reaction.C constructors bool initReactionThermo is used by solidReaction where there is no
need of setting a lhs - rhs thermo type for each reaction. This is needed for mechanism with reversible reactions
2017-05-26 10:18:01 -07:00
4bc3c5f2ba Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-26 08:29:09 -07:00
8f1a4f792d ENH: include region counting in triSurface writeStats 2017-05-26 15:00:48 +02:00
26fef427ed ENH: provide lookupOrDefault for NamedEnum - makes for easier use. 2017-05-26 16:59:20 +02:00
b83007594a ENH: HashTable cfind() method returning a const_iterator
- This follows the same idea as cbegin/cend and is helpful when using
  C++11 auto to ensure we have unambiguous const-safe access.

  Previously:
  ====
    typename someLongClass::const_iterator iter = someTable.find(key);

    ... later on:
    *iter = value; // Oops, but caught by compiler.

  We can save some typing with auto, but it is uncertain what we get:
  ====
    auto iter = someTable.find(key);
        // iterator or const_iterator?
        // depends on someTable having const or non-const access.

    ... later on:
    *iter = value;  // Oops, but not caught by compiler.

  Using cfind instead, auto will deduce const_iterator as the type:
  ====
    auto iter = someTable.cfind(key);  // definitely const_iterator

    ... later on:
    *iter = value; // Oops, but caught by compiler.
2017-05-26 12:42:30 +02:00
2af602c2f4 STYLE: for Istream/Ostream check() use FUNCTION_NAME in messages 2017-05-26 10:59:16 +02:00
0564efb9e1 ENH: add basic support for file extensions to word
- when a plain word is used as a directory-local name for file.
  We don't have a full blown fileName, but still want to check/remove
  extensions etc.
2017-05-26 10:48:01 +02:00
ccc1ce4a25 ENH: avoid calling fileName::components twice in Foam::cp 2017-05-26 10:39:56 +02:00
5efe22c2f0 ENH: align constructors of geometricSurfacePatch with surfZoneIdentifier
- both classes are nearly identical and should be merged in the future.
2017-05-26 09:10:48 +02:00
8d3e106166 STYLE: remove redundant size check 2017-05-26 08:15:49 +02:00
15d5fca144 BUG: argList: -decomposeParDict handling in combination with -case.
Related to #482 but this one is the handling inside argList.
2017-05-25 12:12:43 +01:00
757cc7a15d BUG: cshrc: account for lsof printing mount point after files
Some versions of lsof print the mount point (if remote) after the
script path:
    /hosts/mymachine/OpenFOAM/OpenFOAM-plus.develop/etc/cshrc (mymachine:/home)
This now gets filtered out.
2017-05-25 10:43:57 +01:00
4b20991841 ENH: argEdge: order of member initialisation. Fixes #481. 2017-05-25 09:16:49 +01:00
a42c35f64b ENH: paraview reader module with internal caching of the vtk geometries
- The reader module allows two levels of caching.
  The OpenFOAM fvMesh can be cached in memory, for faster loading of
  fields. Additionally, the translated VTK geometries are held in a
  local cache. The cached VTK geometries should incur no additional
  overhead since they use the VTK reference counting for their storage
  management.
2017-05-24 17:12:49 +02:00
391a9c5fe2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-24 16:11:33 +01:00
ce88aca9f7 Merge branch 'feature-oriented-fields' into 'develop'
Initial attempt to track oriented surface fields

See merge request !104
2017-05-24 14:30:51 +01:00
0215e330d5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-24 14:30:46 +01:00
2838c4554c BUG: pointConstraints: resize all constraints arrays. Fixes #480. 2017-05-24 14:28:28 +01:00
e0a5537d3f Merge branch 'feature-oriented-fields' of develop.openfoam.com:Development/OpenFOAM-plus into feature-oriented-fields 2017-05-24 14:22:54 +01:00
9a864bdd85 GIT: Resolved merge conflict when merging develop branch 2017-05-24 12:30:09 +01:00
b5ed93a40a ENH: orientedFields - refectored and simplified usage 2017-05-24 12:26:12 +01:00
51b4c38987 STYLE: explicitly use iterator object() in ListOps
STYLE: adjust parameter names and template types in invertManyToMany

- more explicit about the acceptable list types
2017-05-24 07:51:38 +02:00
c4caef3a1b ENH: nicer indentation of inGroups patch entry (issue #474)
- The inGroups is a wordList.
  It can be flattened on output to make files more readable.
2017-05-24 07:40:48 +02:00
96d98cd2de ENH: paraFoam --help => immediate pass-through to paraview --help
ENH: Paraview modules.

- Update props with int, not bool (for more versatility)
- Set properties and tool-tips directly on widgets instead of buttons
2017-05-23 08:02:25 +02:00
9d7b0838ca Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-22 14:11:30 -07:00
f0fcfce6a3 ENH: avoid weird cast workarounds for edgeFaceCirculator
- holding a pointer instead of a reference for edgeFaceCirculator
  simplifies overall handling.
2017-05-22 18:12:25 +02:00
2495fcb42e ENH: replace foamToVTK routines with library-level equivalents 2017-05-22 16:13:53 +02:00
31d0f2c51c Merge branch 'integration-foundation' into 'develop'
Integration foundation

See merge request !99
2017-05-22 14:06:34 +01:00
5a528a7330 STYLE: additional cleanup of hashtable item found checks 2017-05-22 15:06:21 +02:00
9fef27cb7d ENH: relocate inplaceUniq (wordReList) into wordRes 2017-05-22 14:59:05 +02:00
6e72ceddd0 Merge branch 'enh-iter-cleanup' into 'develop'
Further hash table iter clean-up

See merge request !113
2017-05-19 12:44:05 +01:00
bb67ccd37d ENH: Cleaned up hash table item found checks 2017-05-19 11:15:35 +01:00
bd73ca26f2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-18 12:45:12 -07:00
1f42c2a5ec Changing writing of thermal inerial flag 2017-05-18 12:44:25 -07:00
8255005e19 ENH: mapDistributePolyMesh: new test app 2017-05-18 16:57:22 +01:00
70bed0e8fe externalWallHeatFluxTemperatureFvPatchScalarField: Corrected decomposition mapping 2017-05-18 15:07:19 +01:00
f549e28fb8 INT: Updated code related to change in pos(x) function 2017-09-07 14:57:10 +01:00
56bfc75949 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
639305e960 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
328769b25d STYLE: Code clean-up 2017-09-07 14:30:28 +01:00
41e4d68ff8 MULES: Improve handling of very small geometries 2017-07-24 10:35:54 +01:00
d27457d41d 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
e0f3963875 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
415d000db6 INT: Compatibility updates for Function1 related code 2017-09-07 10:47:54 +01:00
3b6eb380d0 Function1: Optimized field evaluations 2017-08-08 10:16:08 +01:00
2f431ffd3d 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
5157be4bb3 Function1::ramp function: Added clone function 2017-07-13 17:04:33 +01:00
0ada640f84 Time::purgeWrite: Corrected handling of collated processors directory
Resolves bug-report https://bugs.openfoam.org/view.php?id=2667
2017-08-17 14:53:55 +01:00
bed8dd4bc7 fileOperation: Corrected processor counting for moving mesh cases 2017-08-11 00:07:48 +01:00
fdf08c401f INT: Removed deprecated utility 2017-09-07 09:00:41 +01:00
36b32d242b argList: addition of fileHandler option moved to argList.C
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2645
2017-08-03 10:42:24 +01:00
7cad29f7c8 BUG: argList: disable checking for exact path; rely on fileHandler instead 2017-09-06 21:58:08 +01:00
fb20bc107e INT: Updated dependent code following latest set of integrations 2017-09-06 16:05:12 +01:00
d8d6030ab6 INT: Integration of Mattijs' collocated parallel IO additions
Original commit message:
------------------------

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
03c114010f 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
8cd8f79329 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
07a1240eba TDACChemistryModel::DRG: Corrected comments
Patch contributed by Francesco Contino
2017-06-23 08:17:45 +01:00
1f967d5cd8 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
7e408dd242 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
1f59360e55 fvOptions: limitVelocity: Fixed the correction factor
Resolves bug report https://bugs.openfoam.org/view.php?id=2634
2017-07-27 15:10:30 +01:00
3b8528440d foamDebugSwitches: Removed, no longer needed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2590
2017-06-23 09:00:44 +01:00
5403e977f1 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
02e33f4997 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
5cc03052ff 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
69c727bd53 pimpleControl: Corrected handling of finalInnerIter() 2017-06-06 10:18:02 +01:00
a1e0fe9582 compressibleInflowOutflow template case: added missing wallDist in fvSchemes 2017-06-04 12:33:22 +01:00
3c1982e205 surfaceFind: output region/zone number of found face 2017-06-02 21:02:01 +01:00
0bc9a459c8 CourantNo: Removed check for nInternalFaces which is not correct in general in parallel 2017-05-31 10:37:11 +01:00
ec6c0d7e0f 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
ad789e23bf BUG: 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
e4d15d874c Merge branch 'HashTable-method-enhancements' into 'develop'
Hash table method enhancements

See merge request !112
2017-05-18 12:54:36 +01:00
c1cbfe7a46 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-18 12:41:07 +01:00
99f31a75f0 COMP: Removed override directives to remove compiler warnings 2017-05-18 12:40:48 +01:00
15d0a918c5 COMP: use VTK_OVERRIDE on paraview methods
COMP: avoid undefined-var-template warning in runTimePostProcessing
2017-05-18 13:21:48 +02:00
20fd33e37c TUT: Moved laminar case from RAS->laminar directories 2017-05-18 11:44:52 +01:00
b6dec5860b ENH: histogram: output raw count, auto-range. Fixes #467 2017-05-18 10:54:45 +01:00
667b885116 STYLE: remove ununsed foamToVTK template functions 2017-05-17 18:59:51 +02:00
009f1ec85c ENH: only update meshSubset on topo change 2017-05-19 15:17:29 +02:00
69efba7348 STYLE: typos in comments 2017-05-19 15:16:54 +02:00
8a3915eb67 STYLE: Corrected header text 2017-05-17 17:35:27 +01:00
d6e721a9bd ENH: simplify subsetMesh using new IOobjectList methods 2017-05-17 18:35:08 +02:00
39476bde1c GIT: Resolve conflict associated with cherry-pick of Foundation commit 79ff91350
79ff91350 - rhoPimpleFoam: Improved support for compressible liquids
(2017-05-17 17:05:43 +0100) <Henry Weller>
2017-05-17 17:05:43 +01:00
aeae8e70de ENH: simplify sampling grouping using new IOobjectList methods 2017-05-17 16:25:20 +02:00
b2edd73881 ENH: simplify foamToEnsight using new IOobjectList methods
BUG: foamToEnsight fails with missing field at time 0 (fixes #473)
2017-05-17 14:41:21 +02:00
568570d2be Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-17 12:53:10 +01:00
77865d22dd ENH: histogram: 1) if max is not provided use field max. 2) output count. Fixes #467. 2017-05-17 12:52:13 +01:00
9761e9d81e ENH: added classes() method to objectRegistry/IOobjectList
- provides a summary hash of classes used and their associated object names.

  The HashTable representation allows us to leverage various HashTable
  methods. This hashed summary view can be useful when querying
  particular aspects, but is most useful when reducing the objects in
  consideration to a particular subset. For example,

      const wordHashSet interestingTypes
      {
          volScalarField::typeName,
          volVectorField::typeName
      };

      IOobjectList objects(runTime, runTime.timeName());
      HashTable<wordHashSet> classes = objects.classes();

      classes.retain(interestingTypes);

      // Or do just the opposite:
      classes.erase(unsupportedTypes);

  Can also use the underlying HashTable filter methods

STYLE: use templated internals to avoid findString() when matching subsets
2017-05-17 10:43:24 +02:00
cf889306d0 ENH: added HashTable count, filter and generalized toc methods
- Generalized means over filtering table entries based on their keys,
  values, or both.  Either filter (retain), or optionally prune elements
  that satisfy the specified predicate.

  filterKeys and filterValues:
  - Take a unary predicate with the signature

        bool operator()(const Key& k);

  - filterEntries:
    Takes a binary predicate with the signature

        bool operator()(const Key& k, const T& v);

==

  The predicates can be normal class methods, or provide on-the-fly
  using a C++ lambda. For example,

      wordRes goodFields = ...;
      allFieldNames.filterKeys
      (
          [&goodFields](const word& k){ return goodFields.match(k); }
      );

  Note that all classes that can match a string (eg, regExp, keyType,
  wordRe, wordRes) or that are derived from a Foam::string (eg, fileName,
  word) are provided with a corresponding

      bool operator()(const std::string&)

  that either performs a regular expression or a literal match.
  This allows such objects to be used directly as a unary predicate
  when filtering any string hash keys.

  Note that HashSet and hashedWordList both have the proper
  operator() methods that also allow them to be used as a unary
  predicate.

- Similar predicate selection with the following:
    * tocKeys, tocValues, tocEntries
    * countKeys, countValues, countEntries

  except that instead of pruning, there is a simple logic inversion.
2017-05-17 10:18:14 +02:00
8d018e7950 ENH: added constant predicates
- predicates::always and predicates::never returning true and false,
  respectively. These simple classes make it easier when writing
  templated code.

  As well as unary and binary predicate forms, they also contain a
  match(std::string) method for compatibility with regex-based classes.

STYLE: write bool and direction as primitive 'int' not as 'label'.
2017-05-17 10:18:14 +02:00
a8d2ebf298 ENH: cleanup wordRe interfaces etc.
- ensure that the string-related classes have consistently similar
  matching methods. Use operator()(const std::string) as an entry
  point for the match() method, which makes it easier to use for
  filters and predicates. In some cases this will also permit using
  a HashSet as a match predicate.

regExp
====
- the set method now returns a bool to signal that the requested
  pattern was compiled.

wordRe
====
- have separate constructors with the compilation option (was previously
  a default parameter). This leaves the single parameter constructor
  explicit, but the two parameter version is now non-explicit, which
  makes it easier to use when building lists.

- renamed compile-option from REGEX (to REGEXP) for consistency with
  with the <regex.h>, <regex> header names etc.

wordRes
====
- renamed from wordReListMatcher -> wordRes. For reduced typing and
  since it behaves as an entity only slightly related to its underlying
  list nature.

- Provide old name as typedef and include for code transition.

- pass through some list methods into wordRes

hashedWordList
====
- hashedWordList[const word& name] now returns a -1 if the name is is
  not found in the list of indices. That has been a pending change
  ever since hashedWordList was generalized out of speciesTable
  (Oct-2010).

- add operator()(const word& name) for easy use as a predicate

STYLE: adjust parameter names in stringListOps

- reflect if the parameter is being used as a primary matcher, or the
  matcher will be derived from the parameter.
  For example,
      (const char* re), which first creates a regExp
      versus (const regExp& matcher) which is used directly.
2017-05-16 23:54:43 +02:00
cb4bf9e6b7 BUG: foamToEnsight fails with missing field at time 0 (fixes #473) 2017-05-16 17:28:09 +02:00
c1c6243c3e ENH: pass through doc/Allwmake arguments, add -config, -dir options
- can run doxygen with an alternative Doxyfile, which is useful
  when verifying generated content for particular classes.
  Eg,
      PATH/doc/Allwmake -dir $PWD
2017-05-16 10:53:07 +02:00
acc048a2ce Merge branch 'consistency-updates' into 'develop'
Consistency updates

See merge request !111
2017-05-15 12:34:02 +01:00
8a66ec9975 ENH: replace paraview vtk conversion with library utilities
- this allows filling in the VTK structures without intermediate data
  and without sequencial insertion. Should be faster and smaller
  than the previous cell-wise insertion methods.
  Most importantly, it improves code reuse.
2017-05-15 13:01:38 +02:00
1f18a0f97f ENH: replace internal meshmaps with foamVtkMeshMaps 2017-05-15 12:57:36 +02:00
1889ea83e3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-15 10:17:57 +01:00
3cf7820160 ENH: surfaceMeshTriangulate: handle time selection; handle moving meshes. Fixes #470. 2017-05-15 10:17:24 +01:00
d4041e7d36 ENH: consistent access to IOobjectList names.
- Previously matched name against the object->name() method
  but saved with iter.key().  Now use iter.key() more consistently.

STYLE: consistent parameter names (doxygen)
2017-05-15 08:47:35 +02:00
6933bc3021 ENH: HashPtrTable remove/erase now include safeguard against end-iterator
- This makes the following safe:

      auto iter = ptrTable.find(unknownKey);
      ptrTable.erase(iter);

- Unmask HashPtrTable::erase(const Key& key) method
2017-05-15 09:57:25 +02:00
2f288cfbef ENH: first pv reader version with delayed assembly of output blocks
- this greatly simplifies data management and opens the possibility of
  reusing converted vtk meshes instead of converting each time.
2017-05-15 02:06:53 +02:00
cf5ebd82db ENH: improve internal bookkeeping in paraview readers
- has the selected values directly and use these lookup names to store
  directly into a hash. This replaces several parallel lists of
  decomp information etc and makes it easier.
2017-05-14 21:42:59 +02:00
09f0cfd5c7 STYLE: reduce number of small methods in paraview reader
- improves the overview of the code
2017-05-14 21:38:15 +02:00
48bf71dd26 STYLE: avoid VTK InsertNextPoint if we already know the sizes
- avoids potentially issues if we reusing a vtkPoints array,
  and should be marginally faster without the additional
  range checking.
2017-05-14 21:24:06 +02:00
2e0337d024 ENH: use smart pointers for paraview readers
- adds flexiblity and reduces risk of memory leaks as we add/change
  features

STYLE: adjust naming for paraview internal polyDecomp
2017-05-14 21:04:11 +02:00
4b0d1632b6 BUG: hashtable key_iterator ++ operator returning incorrect type
ENH: ensure std::distance works with hashtable iterators
2017-05-14 16:58:47 +02:00
0c53a815ed ENH: avoid std::distance for std::initializer_list
- std::initializer_list has its own size() method, so no need to use
  std::distance.

STYLE/BUG: use separate iterator de-reference and increment in List

- avoids unnecessary copying of iterators, and avoids any potentially
  odd behaviour with the combination with incrementing.

ENH: support construct from iterator pair for DynamicList, SortableList
2017-05-14 16:28:21 +02:00
83669e284f ENH: improvements to labelRange const_iterator
- inherit from std::iterator to obtain the full STL typedefs, meaning
  that std::distance works and the following is now possible:

      labelRange range(100, 1500);
      scalarList list(range.begin(), range.end());

  --
  Note that this does not work (mismatched data-types):

      scalarList list = identity(12345);

  But this does, since the *iter promotes label to scalar:

      labelList ident = identity(12345);
      scalarList list(ident.begin(), ident.end());

  It is however more than slightly wasteful to create a labelList
  just for initializing a scalarList. An alternative could be a
  a labelRange for the same purpose.

      labelRange ident = labelRange::identity(12345);
      scalarList list(ident.begin(), ident.end());

  Or this
      scalarList list
      (
          labelRange::null.begin(),
          labelRange::identity(12345).end()
      );
2017-05-14 14:39:17 +02:00
b83af3b085 rhoPimpleDyMFoam: Updated transonic formulation for consistency with sonicFoam 2017-05-12 18:34:00 +01:00
71710e0798 ENH: use prefix when displaying group,patch names for paraview selection
- easier to detect the implicit grouping
2017-05-12 15:37:04 +02:00
e5cdee5dd9 STYLE: use labelRange and range-based-for in paraview readers
- also use updated forAll* macros
2017-05-12 15:36:44 +02:00
418ebe4a87 ENH: replace writeFuncs in setSet with foamVtk library utilities 2017-05-19 12:28:13 +02:00
c685f70c82 ENH: rationalize VTK output classes and structures
- relocated to dedicated foamVtkOutput namespace. Make it easier to
  obtain a formatter directly without a foamVtkOutput::outputOptions.
  Make the logic clear within outputOptions (avoid previous, cryptic
  bit masking). foamVtkOutput::legacy also becomes a namespace instead
  of a class. Relocate commonly used things into src/fileFormats, leave
  volField-related parts in src/conversion.
2017-05-19 12:11:49 +02:00
12353e71e7 ENH: provide OpenFOAM/VTK low-level transcription routines
- Zero-copy does not work for several reasons, but this uses the
  OpenFOAM structures to write VTK-compatible formats into external
  arrays.
2017-05-12 15:35:08 +02:00
0e7b135181 STYLE: adjust const access for linked-list iterators 'operator*'
- provides const/non-const access to the underlying list, but the
  iterator access itself is const.

- provide linked-list iterator 'found()' method for symmetry with
  hash-table iterators. Use nullptr for more clarity.
2017-05-12 12:26:28 +02:00
644779725d functionObjects::wallHeatFlux: Added support for solid regions
Patch contributed by Stephan Goeke
2017-05-12 11:05:45 +01:00
7b825d0817 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
f73b5b629f ENH: added HashTable 'lookup' and 'retain' methods
- lookup(): with a default value (const access)
  For example,
      Map<label> something;
      value = something.lookup(key, -1);

    being equivalent to the following:

      Map<label> something;
      value = -1;  // bad value
      if (something.found(key))
      {
          value = something[key];
      }

    except that lookup also makes it convenient to handle const references.
    Eg,

      const labelList& ids = someHash.lookup(key, labelList());

- For consistency, provide a two parameter HashTable '()' operator.
  The lookup() method is, however, normally preferable when
  const-only access is to be ensured.

- retain(): the counterpart to erase(), it only retains entries
  corresponding to the listed keys.

  For example,
      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      largeCache.retain(preserve);

    being roughly equivalent to the following two-stage process,
    but with reduced overhead and typing, and fewer potential mistakes.

      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      {
          wordHashSet cull(largeCache.toc()); // all keys
          cull.erase(preserve);               // except those to preserve
          largeCache.erase(cull);             //
      }

  The HashSet &= operator and retain() are functionally equivalent,
  but retain() also works with dissimilar value types.
2017-05-11 12:25:35 +02:00
034ddfa78f ENH: make coeffs dictionaries optional for surfaceFeatureExtract 2017-05-10 14:11:28 +02:00
8728e8353f STYLE: avoid explicit use of 'word' as HashTable template parameter
- less clutter and typing to use the default template parameter when
  the key is 'word' anyhow.

- use EdgeMap instead of the longhand HashTable version where
  appropriate
2017-05-10 13:44:27 +02:00
4d126bfe2d ENH: add dictionary optionalSubDict() method as per .org change (20-Apr) 2017-05-10 12:51:21 +02:00
d27d69e3f7 reconstructParMesh: Use tree method to improve speed and scaling
Based on development contributed by Paul Edwards, Intel.

Conflicts:
	applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C
2017-05-09 09:32:25 +01:00
24d1e50f45 BUG: LimitedScheme - corrected oriented flag. Fixes #493 2017-06-12 09:18:22 +01:00
132c0e719a TUT: Added min/max(p) function object 2017-06-09 10:53:37 +01:00
2af8d38827 ENH: Added new Joule Heating fvOption and test case
Evolves an electrical potential equation

    \f[
        \grad \left( \sigma \grad V \right)
    \f]

    where \f$ V \f$ is electrical potential and \f$\sigma\f$ is the
    electrical current

    To provide a Joule heating contribution according to:

    Differential form of Joule heating - power per unit volume:

    \f[
        \frac{d(P)}{d(V)} = J \cdot E
    \f]

    where \f$ J \f$ is the current density and \f$ E \f$ the electric
field.
    If no magnetic field is present:

    \f[
        J = \sigma E
    \f]

    The electric field given by

    \f[
        E = \grad V
    \f]

    Therefore:

    \f[
        \frac{d(P)}{d(V)} = J \cdot E
                          = (sigma E) \cdot E
                          = (sigma \grad V) \cdot \grad V
    \f]

Usage
    Isotropic (scalar) electrical conductivity
    \verbatim
    jouleHeatingSourceCoeffs
    {
        anisotropicElectricalConductivity no;

        // Optionally specify the conductivity as a function of
        // temperature
        // Note: if not supplied, this will be read from the time
        // directory
        sigma           table
        (
            (273        1e5)
            (1000       1e5)
        );
    }
    \endverbatim

    Anisotropic (vectorial) electrical conductivity
    jouleHeatingSourceCoeffs
    {
        anisotropicElectricalConductivity yes;

        coordinateSystem
        {
            type        cartesian;
            origin      (0 0 0);

            coordinateRotation
            {
                type        axesRotation;
                e1          (1 0 0);
                e3          (0 0 1);
            }
        }

        // Optionally specify sigma as a function of temperature
        //sigma           (31900 63800 127600);
        //
        //sigma           table
        //(
        //    (0      (0 0 0))
        //    (1000   (127600 127600 127600))
        //);
    }

    Where:
    \table
        Property     | Description               | Required  | Default
value
        T            | Name of temperature field | no        | T
        sigma        | Electrical conductivity as a function of
temperature |no|
        anisotropicElectricalConductivity | Anisotropic flag | yes |
    \endtable

    The electrical conductivity can be specified using either:
    - If the \c sigma entry is present the electrical conductivity is
      specified
      as a function of temperature using a Function1 type
    - If not present the sigma field will be read from file
    - If the anisotropicElectricalConductivity flag is set to 'true',
      sigma
      should be specified as a vector quantity
2017-06-09 10:29:21 +01:00
caf9a0870d ENH: Added bash completion for OpenFOAM applications 2017-06-08 16:24:06 +01:00
b36491576d COMP: foamList - removed corruption error on exit 2017-06-08 16:14:51 +01:00
c187e9b523 ENH: foamHelp - minro refactoring to enable use of foamHelp -help option 2017-06-08 16:07:58 +01:00
40ddfb4277 COMP: renamed runtime selection table to avoid duplicate entry clashes 2017-06-08 16:06:16 +01:00
2b060155c3 ENH: Added script to create bash tab-completions 2017-06-08 16:05:31 +01:00
a1a6f25429 tutorials/multiphase/interDyMFoam/RAS/DTCHull: Resolve stability issue caused by improvements to MULES 2017-05-08 22:44:14 +01:00
7da065481a tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict: removed 2017-05-08 17:03:30 +01:00
9d07299117 fvOptions/radiation: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2545
2017-05-08 17:02:28 +01:00
0e7630feca ENH: improved handling of 'unresolved' surface intersections (issue #450)
- the heuristic for matching unresolved intersections is a relatively
  simple matching scheme that seems to be more robust than attempting to walk
  the geometry or the cuts.

- avoid false positives for self intersection
2017-05-08 14:57:47 +02:00
ede3a844e1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-08 11:55:12 +01:00
91585fd32e STYLE: checkMesh: formatting help 2017-05-08 11:54:48 +01:00
cd8083eb95 Merge branch 'feature-consistency-face-access' into 'develop'
Feature consistency face access

See merge request !109
2017-05-08 10:58:42 +01:00
46a1fed97b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-08 10:51:24 +01:00
134f7abd57 ENH: checkMesh: output vol fields of mesh quality. Fixes #466. 2017-05-08 10:50:59 +01:00
708c1b5c41 ENH: simplify ensightCells/ensightFaces with labelRange
- can avoid allocating/reallocating SubList

STYLE: don't need NamedEnum for ensightCells, ensightFaces lookup
2017-05-08 11:21:44 +02:00
b4f6484ddf ENH: use faceTraits for managing differences between face representations 2017-05-07 16:58:44 +02:00
0c4d2bcd76 ENH: improve consistency in access for face, triFace, edge.
- ensure that each have found() and which() methods

- add faceTraits for handling compile-time differences between
  'normal' and tri-faces

- provide line::unitVec method (complimentary to edge::unitVec)
2017-05-07 15:49:52 +02:00
50306c0bda flowRateFaceZone: faceZone configuration for the surfaceFieldValue functionObject 2017-05-05 18:29:14 +01:00
c872b0f13f Merge remote-tracking branch '1612/master' into develop 2017-05-05 10:20:02 +02:00
f895c934e7 COMP: skip compilation of plugins if include files are missing (fixes #464) 2017-05-05 10:14:48 +02:00
8006d64d74 COMP: skip compilation of plugins if include files are missing (fixes #464) 2017-05-05 10:02:34 +02:00
4059dbd6ce snappyHexMesh: Feature line tracking should end on AMI patches 2017-05-04 18:25:03 +01:00
f96db2d600 BUG: codedFvOptionTemplate: updated 'setValue' to 'constrain'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2579
2017-06-13 16:52:16 +01:00
c38a0b1a4b codedFunctionObject.H: Removed spurious '"'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2554
2017-05-18 12:39:34 +01:00
d27dbbf096 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:48:38 +01:00
cd6221664f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-04 17:50:33 +01:00
4b7c74f8eb BUG: sampledPlane: fix parallel running on subset. Fixes #463. 2017-05-04 17:50:07 +01:00
97b6475877 Merge branch 'feature-improved-container-classes' into 'develop'
improved container classes

See merge request !108
2017-05-04 16:48:57 +01:00
ff132ff5f6 ENH: orientedFields - updated mapping and parallel utils 2017-05-04 15:32:51 +01:00
6747d14dfa BUG: odd table size after shrink (issue #460)
- remove this unused method
2017-05-04 13:11:46 +02:00
7edd801c72 BUG: wall/patch distance and inverseDistanceDiffusivity - updated dimensions and use meshWave as a default method for backwards compatibility. Fixes #462 2017-05-04 11:33:00 +01:00
8dae01913c ENH: regex matching on std::string, not Foam::string
- avoids unneeded promotion of types.
  Easier to switch regex engines in the future.
2017-05-04 12:31:49 +02:00
3b2cd0b107 DPMDyMFoam, DPMDyMFoam: Corrected support for closed-domain simulations
Also added support for extrapolated pressure boundary conditions.
2017-05-04 09:39:23 +01:00
b39b90a9b5 CrankNicolsonDdtScheme: Corrected input of off-centering coefficient of 1 2017-05-11 19:33:01 +01:00
03d180724b ENH: improve HashTable iterator access and management
- provide key_iterator/const_key_iterator for all hashes,
  reuse directly for HashSet as iterator/const_iterator, respectively.

- additional keys() method for HashTable that returns a wrapped to
  a pair of begin/end const_iterators with additional size/empty
  information that allows these to be used directly by anything else
  expecting things with begin/end/size. Unfortunately does not yet
  work with std::distance().

  Example,
     for (auto& k : labelHashTable.keys())
     {
        ...
     }
2017-05-04 10:17:18 +02:00
759306a3e2 STYLE: more consistent typedefs in Map, PtrMap, HashPtrTable 2017-05-04 02:47:32 +02:00
e105e30bfb STYLE: add edge(labelPair) constructor, debug info etc. 2017-05-04 02:42:50 +02:00
f7e502d459 STYLE: relocate some friend operations to be global ones 2017-05-04 02:39:57 +02:00
5d541defe6 ENH: simplify and extend labelRange
- add increment/decrement, repositioning. Simplify const_iterator.

- this makes is much easier to use labelRange for constructing ranges of
  sub-lists. For symmetry with setSize() it has a setStart() instead of
  simply assigning to start() directly. This would also provide the
  future possibility to imbue the labelRange with a particular policy
  (eg, no negative starts, max size etc) and ensure that they are
  enforced.

  A simple use case:

    // initialize each to zero...
    List<labelRange> subListRanges = ...;

    // scan and categorize
    if (condition)
       subListRanges[categoryI]++;  // increment size for that category

    // finally, set the starting points
    start = 0;
    for (labelRange& range : subListRanges)
    {
        range.setStart(start);
        start += range.size();
    }
2017-05-04 02:19:01 +02:00
f2e4aac14c BUG: 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
bdc48f6f54 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
5db1694633 surfaceTensionModels: Resolved warning from Clang concerning virtual function overload 2017-05-03 19:17:43 +01:00
009f8df176 TUT: minor update 2017-05-22 13:37:51 +01:00
db5348880e MRG: resolved merge conflicts from merge from develop branch 2017-05-19 16:29:54 +01:00
79bfd7d7d9 TUT: Corrected execute permissions on run scripts 2017-05-19 11:46:58 +01:00
62ff00f860 COMP: specie - ensure if block is evaluated 2017-05-18 22:12:48 +01:00
0a4733acab ENH: Tutorial updates 2017-05-18 14:47:00 +01:00
28868f8d4d ENH: Updated reading of dimensioned types from transportProperties dictionary to avoid the need to provide the dimension set 2017-05-18 14:44:52 +01:00
9a6f0fdd37 COMP: Updated kOmegaSSTSato model to suppress compiler warning 2017-05-18 14:43:05 +01:00
9efd9ce061 BUG: TDACChemistryModel - corrected construction of tabulationResults_ field 2017-05-18 14:42:37 +01:00
776d87836b STYLE: corrected header comment 2017-05-18 12:49:09 +01:00
d71a7857bf Merge remote-tracking branch 'origin/develop' into integration-foundation 2017-05-18 12:43:15 +01:00
3814762785 ENH: relocate triSurface classes into surfMesh library (issue #294)
- simplifies organization, includes, linkage etc.
2017-05-18 10:42:05 +02:00
abe6121311 GIT: remove remnant edgeMesh Make/{files,options}
- missed by commit c085c5df25
2017-05-18 11:01:27 +02:00
2e9bead519 MRG: merged develop line back into integration branch 2017-05-18 11:11:12 +01:00
8ff163713d BUG: Lagrangian - corrected particle LocalInteraction behaviour on coupled patches. See reactingParcelFoam/filter tutorial example 2017-05-17 20:48:00 +01:00
f68896605e ENH: Clean-up after latest Foundation integrations 2017-05-17 17:33:47 +01:00
91b90da4f3 Integrated Foundation code to commit 104aac5 2017-05-17 16:35:18 +01:00
c9df5f9249 Merge branch 'dict-lookup' into 'develop'
Dict lookup

See merge request !105
2017-05-02 16:37:57 +01:00
a8e3482591 Merge branch 'edge-labelPair-containers' into 'develop'
Use updated edge and labelPair containers

See merge request !106
2017-05-02 16:35:54 +01:00
45c29be341 COMP: avoid clang compiler warnings 2017-05-02 13:33:40 +02:00
1dc3236825 BUG: fixed odd sizing for hash tables (fixes #460) 2017-05-02 12:31:52 +02:00
f8c58bdd5c ENH: HashSet iterators operator* now return Key.
- much more useful than returning nil. Can now use with a for range:

    for (auto i : myLabelHashSet)
    {
        ...
    }
2017-05-02 01:58:38 +02:00
8f75bfbed5 ENH: add HashTable::writeKeys and HashSet::writeList
- can use the hash-set writeList in combination with FlatOutput:

  Eg, flatOutput(myHashSet);
2017-05-02 00:51:04 +02:00
c0a50dc621 ENH: improve overall consistency of the HashTable and its iterators
- previously had a mismash of const/non-const attributes on iterators
  that were confused with the attributes of the object being accessed.

- use the iterator keys() and object() methods consistently for all
  internal access of the HashTable iterators. This makes the intention
  clearer, the code easier to maintain, and protects against any
  possible changes in the definition of the operators.

- 'operator*': The standard form expected by STL libraries.
  However, for the std::map, this dereferences to a <key,value> pair,
  whereas OpenFOAM dereferences simply to <value>.

- 'operator()': OpenFOAM treats this like the 'operator*'

- adjusted the values of end() and cend() to reinterpret from nullObject
  instead of returning a static iteratorEnd() object.
  This means that C++ templates can now correctly deduce and match
  the return types from begin() and end() consistently.
  So that range-based now works.

  Eg,
      HashTable<label> table1 = ...;
      for (auto i : table1)
      {
          Info<< i << endl;
      }

  Since the 'operator*' returns hash table values, this prints all the
  values in the table.
2017-05-02 00:15:12 +02:00
0298c02b2d ENH: ensure nullObject is large enough for reinterpret
- previously occupied 1 byte. Now occupies enough to hold a pointer,
  which helps if using reinterpret_cast to something that has some
  member content.
2017-05-01 22:39:36 +02:00
7cceda620d BUG: comparison to static end() for hashtable lookup.
- just use the iterator method found() as an alternative and
  convenient way to avoid the issue with less typing.
2017-05-01 21:28:41 +02:00
dc57c016ae BUG: comparison with incorrect construction tables
- previously hidden when hashtable used a static method and a
  different class for end()
2017-05-01 21:27:42 +02:00
805b76d4b9 ENH: support UList[labelRange] and SubList construction with labelRange
This uses a concept similar to what std::valarray and std::slice do.
A labelRange provides a convenient container for holding start/size
and lends itself to addressing 'sliced' views of lists.
For safety, the operations and constructors restricts the given input range
to a valid addressible region of the underlying list, while the labelRange
itself precludes negative sizes.

The SubList version is useful for patches or other things that have a
SubList as its parameter. Otherwise the UList [] operator will be the
more natural solution. The slices can be done with a labelRange, or
a {start,size} pair.

Examples,
     labelList list1 = identity(20);

     list1[labelRange(18,10)]  = -1;
     list1[{-20,25}] = -2;
     list1[{1000,5}] = -3;

     const labelList list2 = identity(20);
     list2[{5,10}] = -3;  // ERROR: cannot assign to const!
2017-05-01 14:01:09 +02:00
75ef6f4e50 ENH: add labelRange comparison operators and subset methods
- improve interface consistency.
2017-04-30 21:29:24 +02:00
9d1eb05bdc 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
542151b1fa swirlFlowRateInletVelocityFvPatchVectorField: Avoid calculating origin and axis for patches with no faces
Resolves problem with reconstructPar
2017-08-16 14:14:24 +01:00
ef48fa1829 flowRateInletVelocity extrapolated: Removed reverse flow and correct only the normal component
Improved stability and convergence.
2017-07-17 12:18:47 +01:00
823d83b37b flowRateInletVelocity, flowRateOutletVelocity BCs: Updated docs 2017-07-16 22:59:30 +01:00
6d414f118b 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
b3b124703d surfaceInterpolation::outletStabilised: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2574
2017-06-13 16:50:02 +01:00
cfec338956 fixedShearStressFvPatchVectorField: Removed duplicate "value" entry
Resolves bug-report https://bugs.openfoam.org/view.php?id=2556
2017-05-18 19:56:16 +01:00
7f18c263bf 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
77b7beb6af swirlFlowRateInletVelocity: Added support for specifying the origin and axis of rotation 2017-07-13 16:08:30 +01:00
065bfa264e INT: Compatibility updates followinglatest integrations 2017-09-05 10:19:09 +01:00
9976caa1c9 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
1ae664e379 ENH: Reinstated local tet-based intersection 2017-09-05 09:32:21 +01:00
994b303ad7 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-06-06 12:01:02 +01:00
7b427c382e ENH: add Tuple2 comparison operators, typedefs 2017-04-30 13:05:49 +02:00
5d6bf3e43d ENH: HashTable improvements
- optimize erasure using different HashTable based on its size.
  Eg, hashtable.erase(other);

  If 'other' is smaller than the hashtable, it is more efficient to
  use the keys from other to remove from the hashtable.

  Otherwise simply iterate over the hashtable and remove it if
  that key was found in other.
2017-04-30 10:21:10 +02:00
c65e2e580d ENH: add some standard templates and macros into stdFoam.H
- some functionality similar to what the standary library <iterator>
  provides.

  * stdFoam::begin() and stdFoam::end() do type deduction,
    which means that many cases it is possible to manage these types
    of changes.

    For example, when managing a number of indices:
       Map<labelHashSet> lookup;

    1) Longhand:

        for
        (
            Map<labelHashSet>::const_iterator iter = lookup.begin();
            iter != lookup.end();
            ++iter
        )
        { .... }

    1b) The same, but wrapped via a macro:

        forAllConstIter(Map<labelHashSet>, lookup, iter)
        { .... }

    2) Using stdFoam begin/end templates directly

        for
        (
            auto iter = stdFoam::begin(lookup);
            iter != stdFoam::end(lookup);
            ++iter
        )
        { .... }

    2b) The same, but wrapped via a macro:

        forAllConstIters(lookup, iter)
        { .... }

Note that in many cases it is possible to simply use a range-based for.
Eg,
     labelList myList;

     for (auto val : myList)
     { ... }

     for (const auto& val : myList)
     { ... }

These however will not work with any of the OpenFOAM hash-tables,
since the standard C++ concept of an iterator would return a key,value
pair when deferencing the *iter.

The deduction methods also exhibits some slightly odd behaviour with
some PtrLists (needs some more investigation).
2017-04-29 22:28:16 +02:00
6a5ea9a2bf ENH: improve HashSet construction and assignment
- make construct from UList explicit and provide corresponding
  assignment operator.

- add construct,insert,set,assignment from FixedList.
  This is convenient when dealing with things like edges or triFaces.
2017-04-29 15:19:47 +02:00
a2ddf7dd48 ENH: support HashTable erasure via a FixedList
- propagate common erasure methods as HashSet::unset() method,
  for symmetry with HashSet::set()
2017-04-29 14:50:46 +02:00
ded105c539 STYLE: HashTable documentation
- explicitly mention the value-initialized status for the operator().
  This means that the following code will properly use an initialized
  zero.

      HashTable<label> regionCount;

      if (...)
         regionCount("region1")++;

      ... and also this;

      if (regionCount("something") > 0)
      {
          ...
      }

  Note that the OpenFOAM HashTable uses operator[] to provide read and
  write access to *existing* entries and will provoke a FatalError if
  the entry does not exist.

  The operator() provides write access to *existing* entries or will
  create the new entry as required.
  The STL hashes use operator[] for this purpose.
2017-04-29 12:27:11 +02:00
1d9b311b82 ENH: further refinement to edge methods
- more hash-like methods.
  Eg, insert/erase via lists, clear(), empty(),...

- minVertex(), maxVertex() to return the smallest/largest label used

- improved documentation, more clarification about where/how negative
  point labels are treated.
2017-04-29 12:14:46 +02:00
643ef3318a 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
076cf421f3 cloudSolution: Check consistency between the transient option
and the continuous-phase simulation type

For LTS and steady-state simulations the transient option does not need to be
provided as only steady-state tracking is appropriate.  For transient running
the Lagrangian tracking may be steady or transient.
2017-08-22 13:58:25 +01:00
3f5103235e KinematicParcel: Apply in-cell updates before hitting the face
The evolution of a KinematicParcel happens in three stages; (1) tracking
across the cell, (2) interaction with the face or patch that has been
hit, and (3) clculation and and update of parcel and cell properties.
The KinematicParcel used to evolve in this order, as steps 1 and 2 were
part of the same lower level method. This meant that the update stage
was done after interacting with the face, meaning the parcel was not in
the cell that had just been tracked through, or, by means of a patch
interaction, had been modified such that it was no longer representative
of the track through the cell.

With the separation of stages 1 and 2 in the base class, it is now
possible to do the update stage before interacting with the face (i.e.,
proceeding in the order 1, 3, 2). This makes the state consistent for
the updates, and avoids the issues described.

Patch contributed by Timo Niemi, VTT.
This resolves bug report https://bugs.openfoam.org/view.php?id=2282
2017-08-16 09:56:04 +01:00
f021409db3 lagrangian: Made ACMI interactions insensitive to cell-face order 2017-08-11 10:22:03 +01:00
66349c60a1 lagrangian: Removed debugging message from particle::trackToFace 2017-08-11 08:34:42 +01:00
9b57ef06cf Lagrangian: Enabled tracking through ACMI patches and minor code improvements
Particle collisions with ACMI patches are now handled. The hit detects
whether the location is within the overlap or the coupled region and
recurses, calling the hit routine appropriate for the region.

The low level tracking methods are now more consistently named. There is
now a distinction between tracking to a face and hitting it. Function
object side effects have been moved out of the base layer and into the
parcels on which they are meaningful.
2017-08-09 15:52:33 +01:00
c0bc17ea50 ThermoParcel: Improved numerical stability of heat transfer term
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2655
2017-08-07 17:58:07 +01:00
0a97c3fc95 lagrangian: Always set switchProcessor flag
The TrackData::switchProcessor flag was not being set for some of the
tracking steps made by the more complicated parcels. In the case that a
parcel starts the step already on a processor boundary, this sometimes
lead to the particle being transferred back and forth indefinitely. The
flag is now explicitly set in all cases.
2017-08-02 10:17:38 +01:00
2a6b16f522 lagrangian: Fixed argument passing from Colliding to Kinematic parcel component constructor
Resolves bug report https://bugs.openfoam.org/view.php?id=2643
2017-07-31 16:55:24 +01:00
a4762ea6ea 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-18 09:19:32 +01:00
e274e08b1a 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-13 09:11:03 +01:00
c9b3744637 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-05 09:26:56 +01:00
6b316ba3a9 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-06-06 16:07:56 +01:00
7a02a507d5 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-06-01 14:49:38 +01:00
e9fb8b8572 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-06-01 09:59:38 +01:00
a28f84c3a2 lagrangian::InjectionModels: Corrected documentation 2017-06-27 08:24:18 +01:00
3620876a40 CollidingCloud: Allow instantiation of the NoCollision model for steady-state operation 2017-06-19 15:38:46 +01:00
62e3d37324 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 11:40:37 +01:00
04c11064b3 particle: Corrected the direction of tracking when passing through an
AMI. Applied the transformation.
2017-05-04 18:25:41 +01:00
655741b804 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
d75eb94404 particle: Avoid warning about uninitialized edge 2017-04-28 12:08:21 +01:00
1a24be6e54 Merge branch 'feature-random-numbers' into 'develop'
Updated random numbers

See merge request !107
2017-04-28 10:11:18 +01:00
0b42024c98 ENH: turbulentDFSEMInlet - ensure different procs initialise the random number generator with a different seed 2017-04-28 10:01:43 +01:00
7f0cc0045d ENH: Random numbers - updated dependent code from change cachedRandom->Random class 2017-04-28 09:15:52 +01:00
b07bc1f0b8 ENH: Random numbers - consolidated Random classes
- old Random class deprecated
- cachedRandom renamed Random
2017-04-28 09:07:42 +01:00
da8ea0f21a ENH: refactor code from surfaceFeatureExtract to triSurfaceTools (issue #450) 2017-04-28 09:12:33 +02:00
743dea87d2 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 08:03:44 +01:00
11c5456628 ENH: improvements for surfaceIntersection (issue #450)
- adjust for updates in 'develop'

- change surfaceIntersection constructor to take a dictionary of
  options.

        tolerance      | Edge-length tolerance          | scalar | 1e-3
        allowEdgeHits  | Edge-end cuts another edge     | bool   | true
        avoidDuplicates | Reduce the number of duplicate points    | bool | true
        warnDegenerate | Number of warnings about degenerate edges | label | 0
2017-04-28 08:49:45 +02:00
88a03de238 ENH: Random numbers - updated dependent code from change to cachedRandom class 2017-04-27 15:24:52 +01:00
02205ef167 ENH: Random numbers - cachedRandom - updated to use the re-entrant random interface 2017-04-27 15:24:20 +01:00
9df578f412 ENH: Random numbers - added re-entrant random interface 2017-04-27 15:23:45 +01:00
72d39f1707 STYLE: Minor code formatting 2017-04-27 14:50:20 +01:00
b9379426c9 ENH: Oriented fields - updated dependent code 2017-04-27 14:47:48 +01:00
799490a3cf ENH: add edgeHashes.H with some useful hash types for edges. 2017-04-27 14:43:16 +02:00
357c2c3470 ENH: relocate labelPairLookup into OpenFOAM library (as labelPairHashes.H)
- simplifies organization, allows reuse.
  provide some other useful hash types.
2017-04-27 14:40:37 +02:00
29635ee0f4 ENH: provide triSurfaceLoader convenience class
- for loading single or multiple surface files from constant/triSurface
  (or other) directory.

- select based on word, wordRe, wordReList.
2017-04-27 14:15:36 +02:00
00800764f3 STYLE: provide forwarder for triadField 2017-04-27 14:08:38 +02:00
cda089569c ENH: add short-circuit (break) on various List operator==()
- performance improvement. Noticed while examining issue #458
2017-04-27 13:00:34 +02:00
633e4c9c7f ENH: Use edgeHashes.H and labelPairHashes.H
- avoids some duplicate code.
2017-04-27 10:15:56 +02:00
5514471c15 BUG: FixedList '<' operator using a template parameter (fixes #458)
- cannot use comparison of list sizes. Okay for UList, but not here.

STYLE:
- don't need two iterators for the '<' comparison, can just access
  internal storage directly
2017-04-27 01:30:50 +02:00
104aac5fca 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
4ce77f6843 Merge branch 'master' into develop 2017-04-25 12:31:22 +01:00
d26ed93389 BUG: writeFile - corrected write of output file at start time 2017-04-25 12:30:35 +01:00
ffe3e0e425 ENH: allow '^' as anchor for dictionary scoping (issue #429)
- The existing ':' anchor works for rvalue substitutions
  (Eg, ${:subdict.name}), but fails for lvalues, since it is
  a punctuation token and parse stops there.
2017-04-25 11:57:21 +02:00
f1ca89463f ENH: support DimensionedField construction with Xfer
- can be used to reduce copying
2017-04-25 09:28:34 +02:00
32a6c1d988 ENH: relocate randomPointInPlane as plane::somePointInPlane
- makes more sense to bundle it with plane.
2017-04-24 20:23:31 +02:00
b1be223a82 ENH: meshTools output for treeBoundBox, points.
ENH: OBJstream output for treeBoundBox
2017-04-24 16:04:05 +02:00
cc16d9dabe BUG: runTimePostProcessing - corrected clipBox behaviour (see #456) 2017-04-24 14:33:37 +01:00
8886e90870 ENH: Progagted oriented() flag through field mapping 2017-04-24 13:05:19 +01:00
f71e4ff5cb ENH: surfaceFieldValue - simplified by making use of new field.oriented() functionality 2017-04-24 11:43:13 +01:00
976ad36776 ENH: Initial attempt to track oriented surface fields 2017-04-24 10:34:05 +01:00
430d8e1c4b ENH: UList<point> instead of pointField for meshShapes methods
- improves flexibility.

STYLE: make longestEdge a face method and deprecate the global function
2017-04-23 19:53:05 +02:00
f2304f7c0b ENH: various enhancements for edge.
- support edge-ordering on construction, and additional methods:
  - sort(), sorted(), unitVec(), collapse()

- null constructor initializes with -1, for consistency with face,
  triFace and since it is generally much more useful that way.

- add some methods that allow edges to used somewhat more like hashes.
  - count(), found(), insert(), erase()

  Here is possible way to use that:

      edge someEdge;  // initializes with '-1' for both entries

      if (someEdge.insert(pt1))
      {
         // added a new point label
      }

      ... later

      // unmark point on edge
      someEdge.erase(pt2);

--

STYLE:

- use UList<point> instead of pointField for edge methods for flexibility.

  The pointField include is retained, however, since many other routines
  may be relying on it being included via edge.H
2017-04-23 19:25:35 +02:00
7ee39746ff turbulenceModels: The "<type>Coeffs" sub-dictionary is now optional 2017-04-21 18:22:46 +01:00
d548903826 surfaceLambdaMuSmooth: Added meshTools to link 2017-04-21 16:50:20 +01:00
c085c5df25 Merged the edgeMesh library into the meshTools library 2017-04-21 10:38:53 +01:00
32a2a23466 ENH: enhancements for edgeMesh mergeEdges(), mergePoints()
- filter out degenerate edges
- remove unused points

STYLE: remove unused mergePoints() parameter

STYLE: doxygen for edgeMesh
2017-04-21 02:34:37 +02:00
ccc1a89c8b 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
89f2eff565 STYLE: improve usage notes for transformPoints, surfaceTransformPoints 2017-04-20 16:27:44 +02:00
3b2ab88ffc tutorials/mesh/blockMesh/pipe: Corrected constant/triSurface -> constant/geometry 2017-04-20 12:51:23 +01:00
e520cb9ccc 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
65eb43fcb1 BUG: foamCleanPath not removing duplicate non-existent directories 2017-04-20 13:04:46 +02:00
53cfa782b3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-04-20 11:34:55 +01:00
e4ac3fba77 SVD: Improved overflow/division protection.
Resolves bug report https://bugs.openfoam.org/view.php?id=2486
2017-04-20 10:54:08 +01:00
7f01a4beda CONFIG: address differences between shells
- suppress error messages that appear with zsh.
  According to unset(1p), 'unset -f' unsets a function.
  If the function was not previously defined, this is a no-op.
  This is similar for zsh, but there it emits a warning if the
  function was not previously defined.

- avoid 'local' in functions sources from etc/bashrc.
  ksh does not support this.

- use 'command' shell builtin instead of 'type'.
  Seems to be more consistent between shell flavours.
2017-04-20 11:02:54 +02:00
5c51836501 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
765c430748 STYLE: only count processors if required
- POSIX specifies '-c' for counting the number of matching lines,
  so we can just use that instead of 'wc' in wmake
2017-04-19 19:13:23 +02:00
4d29c32e9b ENH: improve handling of wmakeLnIncludeAll default search directories
- if called from the top-level project directory ($WM_PROJECT_DIR)
  default to using {applications,src} directories. This avoids
  erroneous linking of etc/codeTemplates and avoids the lengthy
  scanning of the tutorials directory
2017-04-19 18:31:21 +02:00
d4c7d8c6e5 ENH: add possibility to enable/disable profiling globally (issue #441)
- use InfoSwitch to disable, or via static method.

- respect the state of the argList banner when deciding to emit
  initialization information. Can otherwise end up with unwanted
  output rubbish on things like foamDictionary and foamListTimes.
2017-04-19 17:04:37 +02:00
c072f911c9 BUG: Corrected compilation errors 2017-04-19 13:44:54 +01:00
5844d337a0 STYLE: remove unneeded includes from iso-surface 2017-04-19 11:29:43 +02:00
e55339d1e1 BUG: name collision on profiling (issue #440) 2017-04-19 11:04:32 +02:00
6a583851bc ENH: support profiling on Time loop (issue #441)
- patch from Bernhard Gschaider
2017-04-19 09:52:17 +02:00
1b5a56476c Merge branch 'BUG_GL_449' into 'master'
BUG: adding case path to support parallel execution (Fixes #449)

Closes #449

See merge request !101
2017-04-19 08:40:53 +01:00
fa10d97b76 COMP: avoid nested classes for profiling (related to issue #441)
- nested classes can't be forward declared and thus less flexible
  than desired
2017-04-19 01:08:39 +02:00
27776b09b0 ENH: support default profiling settings from etc/controlDict (issue #441)
- patch from Bernhard Gschaider
2017-04-19 01:20:51 +02:00
befb49af10 STYLE: add parameter names for Time.H (doxygen)
- consistent use of watchIndex vs watchFd
2017-04-19 09:34:27 +02:00
da6e90de63 Merge branch 'feature-readNow' into 'develop'
Feature read now

See merge request !102
2017-04-19 17:22:28 +01:00
1170eda7b4 COMP: snappyHexMesh: adding missing functions in .H file 2017-04-19 16:31:40 +01:00
6285afdade BUG: timeActivatedFileUpdate: fix setting of distributed from decomposeParDict.
Fixes #420.
2017-04-19 09:28:12 +01:00
969083fd55 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-04-19 09:07:57 +01:00
4fea83d198 BUG: snappyHexMesh: trying to extrude non-manifold patches fails.
The typical topology is the one where boundary faces share non-consecutive
points (checkMesh reports this as 'Number of faces with non-consecutive shared points')
This is handled by no-extruding any of the vertices of both faces. Fixes #391.
2017-04-19 09:03:10 +01:00
73460a2993 Test on second order restart using backward time scheme 2017-04-18 14:04:27 -07:00
bfd376a8fa COMP: cleanup linking of MGridGen
- use similar semantics as used for dealing with metis, scotch
2017-04-18 18:46:11 +02:00
0c8ea34b44 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-04-18 11:37:45 +01:00
5f17b01998 TUT: Updated gamma value in sonicFoam tutorial - see #455 2017-04-18 11:37:34 +01:00
ea257737df codeTemplates: The copyright year is now set automatically 2017-04-18 11:01:41 +01:00
aec35ee51a BUG: paraFoam inside processor directory always looks for parent (fixes #452) 2017-04-18 09:40:17 +02:00
23d9e2e912 Admin: fixed file permissions from wall boiling model refinements 2017-04-16 18:27:19 +01:00
f95dbc2049 ENH: refineWallLayer: enable parallel operation. Fixes #454. 2017-04-13 16:30:46 +01:00
448561718c 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
af2810149e 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
1805b3c98f radiationModel: Added "he" argument to the "Sh" function
for consistency with the other energy sources.
2017-04-13 13:57:33 +01:00
8b55ea4fb1 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
dbc1e37a62 BUG: shm: layerSets gets removed. Fixes #453. 2017-04-13 11:26:35 +01:00
e9ba8242ca FieldFieldFunctionsM: Corrected macro names and order for binary functions 2017-04-12 14:33:45 +01:00
5fd814896a 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
aef09b8daf 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
88b65189d8 BUG: adding case path to support parallel execution (Fixes #449) 2017-04-11 17:47:35 +05:30
cd5ca147a7 ENH: multiple surfaces, self-intersection in surfaceFeatureExtract (issue #450)
- If the dictionary is named 'surfaces', a 'surfaces' entry is mandatory.
  This is a list of wordRe, which is used to load multiple surfaces from
  constant/triSurface directory.

- Other dictionaries may contain a 'surfaces' entry.
  In which case the behaviour is as above (loading multiple surfaces).
  The dictionary name will *NOT* be taken as a surface name itself.

- Regardless of how the surfaces are loaded or features extracted,
  an additional selfIntersection test may be used.

  Eg,

    surfaces
    {
        extractionMethod    extractFromSurface;

        surfaces            (surface1.stl surface2.nas);

        // Generate features from self-intersect
        selfIntersection    true;

        // Base output name (optiona)
        output              surfaces;

        // Tolerance for self-intersect
        planarTolerance     1e-3;

        extractFromSurfaceCoeffs
        {
            includedAngle   120;

            // Do not mark region edges
            geometricTestOnly       yes;
        }
    }
2017-04-11 11:46:00 +02:00
707abb910e 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
837cbafcf3 ENH: improve handling of surface self-intersection (issue #450)
- provide a dedicated constructor to handle this special case.

  Tolerancing when cutting between two surfaces likely needs some
  more attention.
2017-04-11 10:31:23 +02:00
f2e3c1c422 ENH: provide HashTable::iterator::found() method
- This can be used as a convenient alternative to comparing against end().
  Eg,

    dictionaryConstructorTable::iterator cstrIter =
        dictionaryConstructorTablePtr_->find(methodType);

    if (cstrIter.found())
    {
        ...
    }
  vs.
    if (cstrIter != dictionaryConstructorTablePtr_->end())
    {
        ...
    }
2017-04-11 09:55:54 +02:00
b56227ee2b ENH: simplify HashSet equality test
- reduce the amount of checking.
  Equivalent logic to what HashTable has.
2017-04-11 09:34:51 +02:00
31da01d1ea STYLE: cleanup doxygen for HashTable/HashSet
- remove stray canonicalSize declaration
2017-04-11 09:32:53 +02:00
ef88dd3e44 Merge remote-tracking branch 'origin/master' into develop 2017-04-11 10:18:41 +02:00
9f3e27e0aa BUG: indexing in extendedEdgeMesh::add fails (fixes #448)
- 1st problem arises when there are edges, but edgeNormals is empty.
  The UIndirectList fails (zero elements, non-zero addressing)

- further problem occurs if there is a mismatch in the number of edges
  and edges normals (incorrect indexing on loop).
2017-04-11 00:53:03 +02:00
96bc1191b7 ENH: make maxTreeDepth optional in triSurfaceSearch constructor
- makes it easier to construct with a tolerance only
2017-04-10 21:13:50 +02:00
140c5110fe STYLE: remove tabs from files and shorten line-length. 2017-04-10 16:11:33 +02:00
5c62d81880 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
861b273e56 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
b257e80d9a Merge remote-tracking branch 'origin/master' into develop 2017-04-07 09:28:26 +02:00
d794f599d8 ENH: added bin/tools/ change-sitedir.sh, change-userdir.sh
- can be useful with compiling additional OpenFOAM programs
  that use FOAM_USER_APPBIN, FOAM_USER_LIBBIN for their build,
  to avoid conflicts with the normal user bin/lib files.

- or to force relocation of FOAM_SITE_APPBIN, FOAM_SITE_LIBBIN
  during packaging of OpenFOAM
2017-04-07 09:10:06 +02:00
30a49678d1 STYLE: add help to some thermophysical utilities and remove useless options 2017-04-07 08:32:36 +02:00
e1f64efdb1 STYLE: remove stray log files 2017-04-07 08:32:13 +02:00
5d15a13247 STYLE: use FOAM_UTILITIES in Make/options
- consistent with use of FOAM_SOLVERS, and reduces reliance on the FOAM_APP
  env variable
2017-04-07 08:17:43 +02:00
90eeafb43e BUG: typo in addProfiling0 macro (fixes #446) 2017-04-07 07:46:17 +02:00
96fd3c9367 STYLE: consistent use of LIB_SRC in Make/options
- had occasional remnant use of FOAM_SRC
2017-04-06 23:56:23 +02:00
498fa94cb3 ENH: timeActivatedFileUpdate: avoid copying on master; simplified logic; Fixes #420. 2017-04-06 14:45:16 +01:00
2da2970c7c BUG: timeActivatedFileUpdate: was potentially rereading itself!
Fixed by setting flag which then gets queried by Time. Fixes #420.
2017-04-06 10:26:16 +01:00
aecf9b9112 Test on re-start backward time scheme. 2017-04-05 18:17:30 -07:00
982c28d545 BUG: Gitlab issue 442. Resetting allLambda for phases in the alphaEqns.H for interMixingFoam 2017-04-05 13:58:45 -07:00
97d12d8b43 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
eb6fb7f7e3 ENH: make FOAM_EXT_LIBBIN optional in the configuration files
- useful for builds that don't use the ThirdParty directory at all
2017-04-04 17:11:36 +02:00
1bdb57985f COMP: drop FOAM_EXT_LIBBIN dependency for VTK-related items
- they don't use scotch/metis anyhow, which are the only things
  placed in FOAM_EXT_LIBBIN
2017-04-04 16:22:12 +02:00
dd78e042fe ENH: reduce reliance on FOAM_EXT_LIBBIN during builds
- just check WM_PROJECT_DIR instead.

- provide a fallback value when FOAM_EXT_LIBBIN might actually be needed.

Only strictly need FOAM_EXT_LIBBIN for scotch/metis decomposition, and
when these are actually supplied by ThirdParty.
All other ThirdParty dependencies are referenced by BOOST_ARCH_PATH etc.

Can therefore drop the FOAM_EXT_LIBBIN dependency for VTK-related
things, which do not use scotch/metis anyhow.
2017-04-04 15:28:42 +02:00
7d048c71be Merge remote-tracking branch 'origin/master' into develop 2017-04-04 16:15:10 +02:00
638aded7cc BUG: bad shell construct for building optional component 2017-04-04 14:13:55 +02:00
111c1d2d12 ENH: Added include file to calculate the mechanical energy 2017-04-04 12:51:35 +01:00
37b0d85dc4 ENH: Updated for setting of old time values 2017-04-04 12:50:42 +01:00
c13d59fa51 STYLE: updated debug message 2017-04-04 12:42:39 +01:00
95c37c0cbb ENH: Updated second-order restart for thermo fields 2017-04-04 12:41:35 +01:00
0a20a8177f template cases: added minor comment to blockMeshDict files 2017-04-04 12:36:50 +01:00
8bfaa34e24 template cases: added nCellsBetweenLevels to snappyHexMeshDict files 2017-04-04 12:33:17 +01:00
97e84f5880 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:24:01 +01:00
5617219185 template cases: minor edit to README files 2017-04-04 11:48:29 +01:00
ede46c3cae 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
c164e91b0a surfaceFilmModels::perturbedTemperatureDependentContactAngleForce: New contact angle model
Combining a Function1 temperature dependency with a distributionModel stochastic
perturbation.
2017-04-04 00:09:38 +01:00
91b0a9379b STYLE: mention clang-4.0 in the bashrc, cshrc files 2017-04-03 08:31:04 +02:00
ae0718a0f5 BUG: avoid absolute path for 'lsof'
- has different locations on different systems
  (eg, /usr/bin/lsof or /sbin/lsof)
2017-04-03 08:31:04 +02:00
af49eaf625 ENH: default jobControl now under the '~/.OpenFOAM/jobControl' directory
- this implies that jobControl is a user-resource for OpenFOAM.
  It was previously located under $WM_PROJECT_INST_DIR/jobControl,
  but few users will have write access there.

- an unset FOAM_JOB_DIR variable is treated as "~/.OpenFOAM/jobControl",
  which can partially reduce environment clutter.

- provide argList::noJobInfo() to conveniently suppress job-info on an
  individual basis for short-running utilities (eg, foamListTimes) to
  avoid unneeded clutter.
2017-04-03 08:28:15 +02:00
08f6f78471 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
dd1ca3302e surfaceFilmModels::contactAngleForces: Provide empty list default value for zeroForcePatches 2017-03-31 22:33:41 +01:00
a067151810 surfaceFilmModels::contactAngleForce: Use of boundary values of surface tension and contact angle 2017-03-31 20:46:52 +01:00
2b31d91a78 functionObjects:functionObjects:: Corrected documentation 2017-03-31 20:46:03 +01:00
1f5b9dbbcf tutorials/multiphase: Removed unnecessary specification of name and dimensions for transport properties 2017-03-31 17:11:30 +01:00
332c8acdcd ENH: Clean-up after latest Foundation integrations 2017-03-31 15:36:28 +01:00
fb724ce113 MRG: Integrated Foundation code to commit 9f37c3c 2017-03-31 15:34:28 +01:00
dfd611aeac 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
c341b22f9d STYLE: use hard-coded user resource directory name for foamEtcFile
- previously used the value of $WM_PROJECT, but this is potentially
  inconsistent with what Foam::etcFiles uses.
2017-03-31 09:54:20 +02:00
970da5aa75 BUG: waveModels - corrected reference water levels - thanks to Gabi Barajas 2017-03-30 14:57:36 +01:00
836d04ffc1 ENH: various general improvments to the POSIX functions
- ensure proper and sensible handling of empty names.
  Eg, isDir(""), isFile("") are no-ops, and avoid file-stat

- rmDir:
  * optional 'silent' option to suppress messages.
  * removes all possible sub-entries, instead of just giving up on
    the first problem encountered.

- reduced code duplication in etcFiles

ENH: provide WM_USER_RESOURCE_DIRNAME define (in foamVersion.H)

- this is still a hard-coded value, but at least centrally available
2017-03-30 11:45:25 +02:00
982300f0d8 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
446b8e7188 STYLE: respect WM_DIR value when building wmake tools
- minor bug: 'wclean empty' may have had issues with logical vs physical path
2017-03-29 13:49:15 +02:00
3ece6e521a ENH: improve MPI configuration possibilities
- permit SYSTEMMPI user adjustments via
      etc/config.{csh,sh}/mpi-system
  This can be a convenient place for setting up SYSTEMMPI for OpenFOAM
  without adjusting bashrc, prefs.sh ...

- add a USERMPI type. This represents any generic mpi implementation.
  The user is responsible for supplying an appropriate
  wmake/rules/General/mplibUSERMPI file and managing all settings.

  This type of setup can be useful in combination with specific build
  systems (SPACK, EASYBUILD, etc) or module systems for which the MPI
  variant is part of the installed configuration.
2017-03-29 13:48:54 +02:00
e6b67f6790 ENH: Clean-up after latest Foundation integrations 2017-03-28 14:21:07 +01:00
45381b1085 MRG: Integrated Foundation code to commit 19e602b 2017-03-28 11:30:10 +01:00
07ce0a547a COMP: try harder to find/use zoltan library 2017-03-28 10:57:37 +02:00
c88e95436c Merge branch 'master' into develop 2017-03-30 14:58:05 +01:00
09620ce0ed 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
1dd74551da Updated header 2017-03-28 08:30:06 +01:00
9f37c3c537 transportModels::interfaceProperties: simplified interface 2017-03-28 08:29:28 +01:00
ddc694e632 reactingParcelFilmFoam tutorials: Updated contact-angle specification 2017-03-28 08:27:48 +01:00
cbed107ce1 surfaceFilmModels::contactAngleForces: Corrected headers 2017-03-27 20:07:47 +01:00
054eec50ea 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
b708c23cfc ENH: Clean-up after latest Foundation integrations 2017-03-27 14:34:01 +01:00
b3d4b836c8 ENH: readFields function object - added flag to read fields on construction 2017-03-27 09:10:01 +01:00
5efae4cadf reactingTwoPhaseEulerFoam: Small change to avoid warning from wmkdep 2017-03-24 17:27:43 +00:00
65a4a357b5 COMP: Corrected ambiguous construction from tmp errors 2017-03-24 15:50:27 +00:00
39977c64c3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-24 14:59:06 +00:00
e14769f224 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
4c52f8ff1d 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:43:53 +00:00
f3feb1aa0a tutorials: moved laminar interDyMFoam examples into "laminar" directory 2017-03-24 12:33:37 +00:00
3b983739d2 postProcessing: changed isosurface to use isoSurfaceCell algorithm 2017-03-24 11:40:36 +00:00
dcb1a95e35 MRG: Integrated Foundation code to commit 7d6845d 2017-03-23 14:33:33 +00:00
436ec1cf1f MRG: Integrated Foundation code to commit ba4dbed 2017-03-23 12:11:49 +00:00
1fc82434ba CrankNicolsonDdtScheme: Reorganized the code to simplify maintenance 2017-03-23 12:11:24 +00:00
04c3d535b0 MRG: Integrated Foundation code to commit 47bd8e1 2017-03-23 10:12:38 +00:00
bad27c45fc ENH: several improvements to foamEtcFile
- lazier evaluation of project name and version based on the directory
  name. Avoids heuristics based on directory names unless really needed.

- cope with alternative directory locations.
  For example, OpenFOAM+VERSION etc.

The combination of the two above appears to be sufficient to open up
the directory naming possibilities.

- additional -list-test option (tests for existence of directory).
2017-03-23 10:31:05 +01:00
e6e617ed47 STYLE: suppress unalias warnings/errors
- cleanup variables last in etc/bashrc for a clean exit code
2017-03-23 10:16:05 +01:00
68851ce4f0 Merge branch 'foundation-github-tmp' into develop 2017-03-23 09:07:39 +00:00
92b6f3dcfa 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
aae3705bdc 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
ad65ac255a 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
0be6269add 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
1be180b99f ENH: source 'other' prefs before user/group
- this allows the sys-admin to provide base values independent of any
  WM_PROJECT_SITE value.
2017-03-22 15:33:51 +01:00
406a2c5d20 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
3d05295abd STYLE: Corrected typo 2017-03-22 09:11:47 +00:00
ace5565f96 ENH: improve foamEtcFile support for alternative naming conventions
- support names like openfoam-<VERSION> (eg, what spack uses).
- robustness improvements
2017-03-22 09:08:52 +01:00
399df1a20d ENH: also accept 'lib' for metis and scotch libraries
- this corresponds to what various module or build systems provide.
  ThirdParty builds are unaffected since they install into FOAM_EXT_LIBBIN
2017-03-21 16:55:27 +01:00
eaf1e6263f applyBoundaryLayer: Provide non-const access to nut, k and epsilon 2017-03-21 15:07:13 +00:00
6b3742c3f1 BUG: Missed change during fix for #437 2017-03-21 13:57:55 +00:00
bbe490506e STYLE: Minor documentation update 2017-03-21 13:35:22 +00:00
e6d9402e5a BUG: nacaAirfoil tutorial - updated patches used by forceCoeffs function object. Fixes #438 2017-03-21 13:34:57 +00:00
69bc13f300 BUG: Function objects - updated to enable user time emtries, e.g. if using engineTime. Fixes #437 2017-03-21 13:32:55 +00:00
6ebaa63d1c BUG: forceCoeffs - corrected handling of pDyn for compressible cases. Fixes #436 2017-03-21 13:27:47 +00:00
cf1df0542f BUG: wallHeatFlux FO - corrected output of header info tofile. Fixes #435 2017-03-21 13:23:52 +00:00
489ff68e6b Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-20 17:57:57 +00:00
bf43e16dca setTimeStepFunctionObject: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2507
2017-03-20 17:57:06 +00:00
c9831529b3 Case templates: updated dynamicMeshDict for syntax change to solid body motion 2017-03-20 12:27:07 +00:00
e66e402976 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-18 17:19:35 +00:00
864fc239c8 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS: Reduced the endTime 2017-03-18 17:15:58 +00:00
14601aa8c2 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
98de229365 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
44ac4449f9 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-03-17 17:37:31 +00:00
dc5a8671bd 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
6f5caf28d5 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:13 +00:00
29137345bf Merge branch 'master' of https://github.com/OpenFOAM/OpenFOAM-dev 2017-03-17 11:30:27 +00:00
d401f1cfb4 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:26:24 +00:00
dd15478158 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
b68043256c Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-17 09:04:09 +00:00
a384d76745 functionObjects::systemCall: Removed redundant Make directory 2017-03-17 09:02:59 +00:00
15aec3649e BUG: incorrect patch lookup in ensight conversion (fixes #430) 2017-03-17 09:09:31 +01:00
ab65533e8e 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
1e592a128a 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
32052dce23 postProcessing/noise: Updated for changes to Function1 2017-03-16 20:56:09 +00:00
2e2bfd237a 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
b1199f6559 Updated header 2017-03-16 20:51:14 +00:00
19e602b065 dictionary: Added lookupType function for convenient lookup and setting of value
of the specified type
2017-03-16 20:50:11 +00:00
2c31e665ba autoPtr: Added assignment to pointer 2017-03-16 20:49:21 +00:00
9d2ba29710 Function1: Added zero and one constant functions for convenience 2017-03-16 20:48:26 +00:00
78eba84ee3 BernardCells: tutorial demonstrating Bernard cells
2D buoyancy-driven flow between flat plates with small temperature difference
2017-03-15 19:18:37 +00:00
7276dbd38d foamCreateVideo: avoid dropping frames for some color depths 2017-03-15 19:10:10 +00:00
1fea6fee98 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
dc328945b1 reactingEulerFoam: Added fvOption support for incompressible phases 2017-03-14 11:56:01 +00:00
502c9ceb71 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
47d7240412 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
d40363079c laplacianFoam: added fvOptions library
Resolves bug-report https://bugs.openfoam.org/view.php?id=2492
2017-03-13 08:50:17 +00:00
96ad725a0b Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
812a9a53ed Upgraded to OpenMPI-2.0.2 2017-03-10 17:08:16 +00:00
215349aa69 BUG: in wordRe::operator=(const keyType&)
- the regex was not being unset on assignment.
- drop unused recompile() method as being dubious
2017-03-10 13:05:35 +01:00
11a2ea7c61 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
af088a5c78 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
942338b06c 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
7f5c135020 wingMotion tutorial: Corrected fvSolution file 2017-03-09 23:11:30 +00:00
c4e63c4c24 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
f5e88d6eb3 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
14da5d4ee2 Updated header 2017-03-08 11:51:36 +00:00
1be5f699e5 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
7a99465d2a verticalChannel tutorial: removed 'bounded' from the 'div(phid,p)' scheme. 2017-03-08 11:34:08 +00:00
7aed8c2904 tutorials: Updated pcorr settings in fvSolution to provide pcorrFinal if required 2017-03-07 11:48:20 +00:00
55e7a77ac6 tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun: Remove previous 0 directories
Patch contributed by Mattijs Janssens
2017-03-06 23:18:13 +00:00
b535c05fa6 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure V00 is available for moving meshes 2017-03-06 23:15:54 +00:00
86dc955605 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
c6bcd65dfd STYLE: minor simplification of coding in dictionary 2017-03-06 18:32:48 +01:00
093ede5d32 CorrectPhi: only use the "Final" tolerance for the last non-orthogonal iteration 2017-03-03 22:05:24 +00:00
9b7a4accda GAMGSolverScale: minor update 2017-03-03 22:04:41 +00:00
94c209c6d6 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the V00 field is cached 2017-03-03 22:03:29 +00:00
f05be160e2 BUG: dictionary entries not being properly merged/overwritten (closes #418)
STYLE: update dictionary documentation
2017-03-03 11:36:24 +01:00
2853678a60 ENH: support operations on surfFields in surfaceFieldValue
- this makes it possible to perform additional operations
  on surface values that have been previously sampled.

- support vectorField for weighting operations.

- reduce overhead by avoiding creation of weight fields, Sf fields
  and combined surface geometries unless they are actually required.

- extend some similar concepts and operations to volFieldValue
2017-03-02 14:50:36 +01:00
b3bfdd0bb8 Merge branch 'Fix_GL_416' into 'master'
Fixes #416

Closes #416

See merge request !96
2017-03-02 08:57:49 +00:00
6253452dcf Fixes #416 2017-03-02 10:22:24 +05:30
0723800d75 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
05de53d086 ENH: Minor modification to the description 2017-02-28 10:37:43 -08:00
62197e9ccd ENH: Correcting coefficient description in solarCalculator.H header 2017-02-28 10:35:55 -08:00
fe548839c5 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
50516486a4 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 a1c8cde310
2017-02-28 11:14:59 +00:00
09c9e1a89a ENH: Adding skyCloudCoverFraction to SunLoadFairWeatherConditions mode in the solarCalculator.
This scalar allows to introduce a factor for cloudy sky between 0 (clear) and 1 (fully cloudy)
2017-02-27 16:46:12 -08:00
7515ea7550 reactingTwoPhaseEulerFoam::Lavieville: Corrected fLiquid function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2477
2017-02-27 09:39:46 +00:00
5fc6c3ca34 ENH: provide FOAM_EXECUTABLE as environment variable in argList
- can be used directly from within an application or function-object.
  Makes it available for dictionaries.
2017-02-24 17:48:13 +01:00
7d6845defa 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
3f1c72356f STYLE: clear names of selected fields when re-reading 2017-02-24 14:51:26 +01:00
a203d0a344 STYLE: relocate deprecated utilities into separate directory
- makes it easier to identify at a later stage
2017-03-20 15:16:06 +01:00
b970ba0901 ENH: minor improvements to environment
- handle sourcing bashrc with a relative path (issue #383)
- handle sourcing from bash and zsh.
  Still need manual intervention when sourcing dash, sh, or ksh.
- replace grep in etc/cshrc with sed only
- logical instead of physical path for WM_PROJECT_DIR (issue #431).
  Doesn't seem to be possible for csh/tcsh.

  * Continue using physical locations when comparing directories,
    but not for the top-level FOAM_INST_DIR, WM_PROJECT_DIR.

- relocate WM_CC, WM_CXX overrides from etc/config.*/compiler
  to etc/config.*/settings to ensure that they are left untouched
  when etc/config.sh/compiler is sourced while making third-party
  packages (eg, gcc, llvm, CGAL).

- provide fallback FOAM_TUTORIALS setting in RunFunctions

STYLE: remove "~OpenFOAM" fallback as being too rare, non-obvious
2017-03-20 08:57:12 +01:00
5d62a7430d GIT: adjust gitignore
- ignore top-level /build and /platforms directories
2017-03-15 15:10:05 +01:00
249f334f83 ENH: respect '-silent' option for cmake builds
- minor cleanup of wmake sources
2017-03-15 13:06:45 +01:00
4339d93c8e STYLE: drop _foamSource definition (unneeded). 2017-03-14 17:24:23 +01:00
f1112fc357 CONFIG: update paraview 5.3.0, openmpi 2.0.2, mpich 3.2, fftw 3.3.6-pl1 2017-03-14 10:38:54 +01:00
7848953b21 ENH: equationInitialResidualCondition - updated to support user-time, e.g. engineTime 2017-03-21 16:56:21 +00:00
eed3b77060 ENH: Function objects - updated logic to determine whether or not to instantiate a time-based function object. Fixes #439 2017-03-21 16:55:24 +00:00
694a03dfeb Merge branch 'master' into develop 2017-03-21 13:58:06 +00:00
2f41df18e3 Merge branch 'master' into develop 2017-03-21 13:36:26 +00:00
2b03d9615e ENH: perfectGasI - added #include "thermodynamicConstants.H" to enable builds for derived classes 2017-03-21 13:00:05 +00:00
cbf793fca2 ENH: Updated header file documentation 2017-03-21 09:40:35 +00:00
e9355df198 ENH: [surface|vol]FieldValue - added name of weight field to output file header if used 2017-03-21 09:38:36 +00:00
2271bd4ca4 ENH: timeActivatedFileUpdate: early reading of changed files. Fixes #420. 2017-03-15 13:15:36 +00:00
1abcdcc58a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-15 12:01:55 +00:00
986e4656ae BUG: topoSet: nearestToCell/Point return nearest on all processors. Fixes #427. 2017-03-15 12:01:23 +00:00
de3f38da3d Merge branch 'feature-noise-additions' into 'develop'
ENH: Feature noise additions

See merge request !98
2017-03-15 11:08:56 +00:00
a7a3126a76 ENH: noiseModels - re-worked output directories to avoid clashes. Fixes
Both point- and surfaceNoise utilities can operate on multiple input
files.  However, if the files had the same name, the output would be
overwritten.  To avoid this, the output files are now written to a
sub-directory including the path '/input<input-file-index>/', e.g.

  postProcessing/noise/surfaceNoise/input0/nearWall/[fft|oneThirdOctave]

An optional 'outputPrefix' can be included (defaults to empty), e.g.
when set to 'test1':

  postProcessing/noise/test1/surfaceNoise/input0/nearWall/[fft|oneThirdOctave]
2017-03-14 13:15:39 +00:00
a886410d16 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-13 12:02:22 +00:00
f6cc25f5eb ENH: cellSetOption: suppress printing of excess messages. Fixes #415. 2017-03-13 12:01:05 +00:00
8db517bfbb CONFIG: provide Clang38, Clang39 compiler settings
- easier to test or use different versions

- change WM_CXXFLAGS to -std=c++11 instead of -std=c++0x
2017-03-10 18:13:49 +01:00
f760352c8f COMP: avoid null reference in FieldMapper.H (issue #405) 2017-03-10 17:58:45 +01:00
39e81ce5ec BUG: subsequent command options are ignored (issue #424)
- adjust so that the final -option is taken. This is consistent with
  other Unix tools.

ENH: short-circuit to avoid directory check on non-master node
2017-03-10 14:52:39 +01:00
b21242c14c Merge branch 'feature-noise-additions' of develop.openfoam.com:Development/OpenFOAM-plus into feature-noise-additions 2017-03-10 13:08:17 +00:00
f8e0231672 STYLE: removed mutable variable/methods from regExp
- tends to obscure what is going on and isn't needed either.

STYLE: adjust documentation. Accept std::string as parameter in more places.
2017-03-10 12:42:59 +01:00
aa6b835104 ENH: use fileName::nameLessExt() instead of fileName::name(bool)
- the purpose is more explicit, without needing to check documentation
  about what the bool parameter means.

STYLE: improve formatting of fileName documentation
2017-03-10 11:49:56 +01:00
9077098935 ENH: provide string removeStart, removeEnd convenience methods 2017-03-10 11:39:40 +01:00
4bc957cc3e ENH: surfaceNoise - updated surface output 2017-03-10 09:08:46 +00:00
518bb6e8fc ENH: surfaceNoise - updated surface output 2017-03-10 09:08:46 +00:00
a2f54aef3c ENH: surfaceNoise - warn if no data available to process 2017-03-06 12:09:05 +00:00
f3abf405a8 ENH: noiseModels - updated frequency bounds handling 2017-03-03 14:24:56 +00:00
9741ce6e0d ENH: noise models - expand input file name before check for isAbsolute 2017-03-02 12:39:03 +00:00
34bc14a53d ENH: noiseModel updates
- Limit output to frequency range given by fLower and fUpper (if supplied)
- Enable noise models to be run outside of $FOAM_CASE directory
  - if relative paths are used, $FOAM_CASE is prepended to the noise
    dict and input file names
- Enable output to be customised, e.g.

    // Optional write options dictionary (all default to 'yes')
    writeOptions
    {
        writePrmsf  no;
        writeSPL    yes;
        writePSD    yes;
        writePSDf   no;
        writeOctaves yes;
    }
2017-03-01 13:55:05 +00:00
2ce0aaddd4 ENH: splitMeshRegions: correct header. 2017-03-01 11:48:00 +00:00
4401c0ee87 BUG: Time: time step adjustment not robust. Fixes #414. 2017-03-01 11:43:00 +00:00
bcde59e646 STYLE: Minor typo corrections 2017-03-01 10:53:18 +00:00
cf4ff7b381 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-27 11:50:20 +00:00
b71c4676ce ENH: cyclicACMI: report number of blended faces. Fixes #411. 2017-02-27 11:49:19 +00:00
f9599010ca Merge branch 'build' into 'develop'
Improvements, adjustments for build scripts and infrastructure

See merge request !94
2017-02-24 18:31:57 +00:00
9810c68e76 ENH: support default/alternate values for env-vars in dictionary lookup
- was previously only within string expansions, but cover dictionaries
  as well for consistency

ENH: replace the never-used fileName::caseName() functionality

- stringOps::inplaceReplaceVar() is more general

     stringOps::inplaceReplaceVar(myfile, "FOAM_CASE");

STYLE: relax parameter passing when calling some POSIX 'query' functions.

- A std::string is sufficient since the functions use a plain C-string.
  Eg, getEnv("SOMETHING").
  Retain more stringent Foam::word for things like setEnv, since this
  could be useful.
2017-02-24 17:37:48 +01:00
49d0b7552e STYLE: use initializer_list syntax when building system command 2017-03-10 10:34:37 +01:00
383fdb04ae COMP: suppress warnings about MPI old-style cast (GCC only) 2017-03-10 10:27:17 +01:00
31555346cc Merge remote-tracking branch 'origin/master' into develop 2017-03-10 13:30:39 +01:00
9faf186b9f ENH: provide xferFaces mechanism for triSurface for symmetry with MeshedSurface 2017-03-09 13:56:54 +01:00
10fc0646fb BUG: 'make clean' failed for wmake/src
- caused by the typo '@E' instead of '$E' (commit 997f1713cb)

ENH: minor improvements for wmake/src makefile

- 'make clean' now also tries to remove the parent platforms/
  directory if possible.

- the flex intermediate build target is placed into the platforms/
  directory to avoid touching the src/ directory at all.

- suppress warnings about unused functions (GCC only)
2017-03-09 11:48:52 +01:00
2bfd17cf8d ENH: add 'wmkdep' to warnings and error messages from wmkdep
- makes it possible to filter out or highlight messages originating
  from wmkdep in the build process.
2017-03-09 10:20:14 +01:00
89ac2e551a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-08 08:47:04 -08:00
42ebb30c0c ENH: Re-formatting the inertia trem in turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
And correcting bool entry from dictionary in fanFvPatchField BC
2017-03-08 08:45:50 -08:00
37e7fca9dc BUG: STL ASCII being incorrectly detected as BINARY (fixes #422)
- now explicitly check for "SOLID" or "solid" in the header

- does not affect triSurface in the master branch, since that used a
  different parser.
2017-03-08 13:30:43 +01:00
8060792b92 ENH: provide canRead, canWrite tests for triSurface
- for symmetry with MeshedSurface etc.
2017-03-08 13:15:28 +01:00
7d3eb76f75 Merge branch 'subset-list' into 'develop'
Subset list

See merge request !97
2017-03-08 12:31:26 +00:00
3d3c14cbff ENH: add inplaceUniqueSort function
- determines a unique sort order (as per uniqueOrder) and uses that to
  reorder the list and possibly truncate it.
2017-03-08 11:10:16 +01:00
b7dc6d0441 ENH: add subsetList/inplaceSubsetList functions with unary predicate
- these are suitable for use with lambda functions.

- Deprecate the unused 3-parameter version of subset/inplaceSubset.

- Deprecate initList and initListList in favour of initializer_list

STYLE: adjust some comments, remove dead code in regionSizeDistribution.C
2017-03-07 17:00:30 +01:00
865f09e623 STYLE: comments in codedFvOptionTemplate 2017-03-07 18:48:57 +01:00
4b93333292 ENH: improve handling of noFunctionObjects / withFunctionObjects (issue #352)
- do not enable function objects by default if there is no means of
  disabling them.
2017-03-07 10:53:40 +01:00
cb38533096 ENH: Adding thermal inertia to coupled BC.
This helps on bounding Twall on cases where large inertia is found in the first cell
next to the fluid (i.e large cell, rho or Cp)
2017-03-06 09:43:10 -08:00
6057479926 ENH: provide wcleanBuild and improve wcleanPlatform
- new behaviour is to do nothing if no platform was specified.
  This helps avoid inadvertently removing files.

- support special platforms for compatibility with wmake/wclean targets.
  Eg, "wcleanPlatform all"

- allow use from ThirdParty top-level as well, since the directory
  structure is similar.

BUG: fix regression in wcleanLnIncludeAll introduced by 9e2e111518
2017-02-24 12:20:45 +01:00
a1c8cde310 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
a748ce1eaf STYLE: resolve COMP_FLAGS, COMPILE_FLAGS mismash in favour of COMP_FLAGS 2017-02-23 16:25:38 +01:00
c84b9aaac6 ENH: use new foamEtcFile options to simplify syntax when sourcing files
Can now use this:
    _foamSourceEtc config.sh/scotch
    _foamSourceEtc config.csh/scotch

instead of this:
    _foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
    _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/scotch`

In the bash/sh version, leave the _foamSource function for now, since
ThirdParty is still relying on it.

STYLE: elminate while-loop for _foamAddPath etc since this type of
construct isn't readily possible for csh and isn't being used anywhere.
2017-02-23 15:55:38 +01:00
c393b268a5 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
c9e4fd77fd ENH: add options for foamEtcFile and shell evaluation
- Eg, instead

      if file=$(foamEtcFile filename)
      then
          . $file
      fi

  can write

      eval "$(foamEtcFile -sh filename)"

  Also supports -verbose reporting, which is especially useful for csh,
  since it allows simplification of aliases and allows the message to
  land on stderr instead of stdout.

      eval `foamEtcFile -csh -verbose filename`
2017-02-23 12:48:43 +01:00
e9bce5c331 Merge branch 'Fix_GL_409' into 'master'
Use subDict for changeDictionary, Fixes #409

Closes #409

See merge request !95
2017-02-23 11:02:21 +00:00
07ec2b3abd STYLE: eliminate most use of _foamSource outside of the etc/ hierarchy 2017-02-23 10:58:55 +01:00
cc51def1fd STYLE: minor cleanup of foamEtcFile 2017-02-23 09:17:46 +01:00
a3ff45d50a Use subDict for changeDictionary, Fixes #409 2017-02-23 11:33:29 +05:30
c1ca2f4a38 BUG: missing chdir in Allwclean for wallFunctionTable
STYLE: improve consistency in Allwclean scripts
2017-02-23 01:07:10 +01:00
e5cc374d8e 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
12dd3c9c6b GeometricField: corrected assignment to tmp which wraps a non-tmp 2017-02-22 13:20:49 +00:00
5991e30fc1 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
32a78d12e2 ENH: wclean all now finds Allwclean files too (issue #408)
- this may still need more testing, but the basic idea is to find
  directories with 'Allwclean' or 'Make' and process them (once!)
2017-02-21 19:40:35 +01:00
9e2e111518 STYLE: adjust ordering of 'find' command arguments
- use -name test before -type test to avoid calling stat(2) on every file.
- use -delete instead of -exec rm to avoid forking
2017-02-21 19:19:04 +01:00
bec7091e21 chemkinToFoam: Increase the precision of the thermophysical coefficient written 2017-02-21 11:59:49 +00:00
a6d37e5728 COMP: silence some compiler warnings
- remove some spurious regExp includes
2017-02-21 12:56:27 +01:00
c1795a30b8 Merge branch 'listoutput' into 'develop'
Flat list output

See merge request !93
2017-02-20 18:47:24 +00:00
3deb5f4d19 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-20 10:37:28 -08:00
a37dffad4f ENH:Delete 'not Implemented' function updateCoeffs() in slicedFvPatchField. ACMI patch is used with mesh.C() in isoSurface
which uses slicedFvPatch.
2017-02-20 10:34:01 -08:00
a06cd912d8 solidMixtureProperties: Updated documentation, removed unused functions and corrected remaining 2017-02-20 15:30:25 +00:00
e5ecc28891 liquidMixtureProperties: Updated documentation 2017-02-20 15:30:07 +00:00
403520cee5 ENH: add tags marking user configuration sections
- as per bashrc,cshrc delimit with
      "# USER EDITABLE PART"
      "# END OF (NORMAL) USER EDITABLE PART"

  this can help simplify any patching for system-building scripts etc.
2017-02-20 10:57:30 +01:00
1ed5b35049 CONFIG: pass-through icc compiler choice for KNL, add gcc 6.3.0
- bump ADIOS version to 1.11.1
2017-02-20 10:47:45 +01:00
28a8e5a61b STYLE: use flatOutput when reporting known file-extensions 2017-02-20 10:32:40 +01:00
a843d84f80 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-20 09:31:38 +00:00
a7eaf8199b BUG: shm: fast bounding box - triangle intersection disabled. Works around #404.
For certain combinations of rays and triangles the fast bb-triangle intersection
routine is not correct. For now revert to slow edge-by-edge intersection.
2017-02-20 09:29:45 +00:00
d3911dd167 STYLE: avoid old-style shell backticks in various places 2017-02-20 09:30:58 +01:00
f6dacfb484 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
d2be645483 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
de44d09ad9 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
9b4f327e2b 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
a6fd99b874 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
ba9d58a26f thermophysicalModels: Ostream operator calls write(os) for consistent IO 2017-02-17 16:35:43 +00:00
72b705edbd thermophysicalModels: Removed unused and unmaintained Istream constructors 2017-02-17 15:50:00 +00:00
3e4d253cc1 liquidProperties: Removed unused construction from Istream 2017-02-17 13:41:05 +00:00
c52e4b58a1 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
973cf0397d CONFIG: provide foamConfigurePaths -mpi option
- makes it easier to switch between mpi implementations (eg, openmpi, intelmpi etc)

- add comment about compiler setting for KNL
2017-02-16 09:14:17 +01:00
48eb1aee84 ENH: treeDataPrimitivePatch: skip surplus test 2017-02-15 12:58:53 +00:00
376912eff2 ENH: adding runTime selectable wallDist calculation to inverseDistanceDiffusivity 2017-02-14 08:30:53 -08:00
2f5185a048 functionObjects::scalarTransport: Corrected typo 2017-02-13 18:25:33 +00:00
ae9522f017 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
689ee6e0ea Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-10 11:41:53 -08:00
4f736b5c41 temperatureCoupledBase: alphaAni set to none by default
boundaryRadiationProperties: updating to new format
dynamicMeshDict and snappyHexMeshDict in utorials/multiphase/interDyMFoam/RAS/motorBike to follow Mattijs Git lab id 381
2017-02-10 11:40:15 -08:00
957635200a ENH: build into build/ directory instead of platforms/ (issue #312)
- makes it slightly easier when packaging various binaries, or when
  building packages for installation via modules etc.
2017-02-10 20:30:15 +01:00
3d02c8a530 ENH: improve isolation of shell variables in wmake scripts
- reduces unexpected interactions between various make elements
2017-02-10 16:13:54 +01:00
cf501ffa0f Merge branch 'master' into develop 2017-02-10 14:00:26 +00:00
f77bbf4179 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-10 13:57:55 +00:00
84aa391403 BUG: noise - updated creation of control dictionary to allow -case option and env variables. Fixes #402 2017-02-10 13:57:36 +00:00
7e20157d95 ENH: setSystem*Dictionary - expand file names to enable the use of 2017-02-10 13:56:42 +00:00
e82a029453 ENH: add help/usage for dirToString, wmkdep. Add dirToString -strip option.
- The dirToString -strip option is simple, but reduces effort for the caller.
2017-02-10 14:10:00 +01:00
46ecad8f7a STYLE: make wmake scripts look more POSIX-like
- also add some comments about the side-effects
2017-02-10 11:38:12 +01:00
6343e1e3b3 ENH: have wmake and wclean do something sensible with a filename as target
- For convenience, let "wmake some/path/filename.C"
  behave similar to    "wmake some/path"
  and trace back for the Make directory.
2017-02-10 10:33:50 +01:00
e3d9084c62 ENH: support ASCII List output on a single-line
- Introduce writeList(Ostream&, label) method in various List classes to
  provide more flexibility and avoid hard-coded limits when deciding if a
  list is too long and should be broken up into multiple lines (ASCII only).

- The old hard-code limit (10) is retained in the operator<< versions

- This functionality is wrapped in the FlatOutput output adapter class
  and directly accessible via the 'flatOutput()' function.

Eg,
    #include "ListOps.H"
    Info<< "methods: " << flatOutput(myLongList) << endl;

    // OR

    Info<< "methods: ";
    myLongList.writeList(os) << endl;
2017-02-10 09:55:37 +01:00
53502f79b8 BUG: Correcting calculation of azimuth angle in the solar direction 2017-02-09 13:13:45 -08:00
dd8b8bceac csvSetWriter: Corrected axis header
Resolves bug-report https://bugs.openfoam.org/view.php?id=2455
2017-02-09 17:47:56 +00:00
b167c95f19 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
2049c5c2a4 BUG: using tmp() instead of tmp.ref() in combineFields (closes #400)
- templated code that is not actually be used yet.

ENH: avoid combineFields for serial case

Note: a 'master-only' variant with combineList only on the master and
without scatter can be pursued later.
2017-02-09 15:19:47 +01:00
0067c9e369 STYLE: avoid spurious messages when cloning cases
- either (or both) of 0/, 0.orig/ may exist, so error messages about
  one of them being missing is a bit misleading
2017-02-09 13:41:48 +01:00
ff2a335310 ENH: add tutorials/Allrun -collect option
- collects the log information only, without running any cases.
  This can be useful if the user has terminated the test prematurely
  but nonetheless wishes to summarize the log output.
2017-02-09 13:07:48 +01:00
26cd9ae174 STYLE: update foam comment template 2017-02-09 11:52:32 +01:00
6fc2a3dc58 compressibleInterFoam: More consistent with interFoam and added partial support for LTS 2017-02-08 20:50:07 +00:00
ba4eefae1d interFoam, interDyMFoam: Removed duplicate include 2017-02-08 20:47:59 +00:00
3879cf48fb interMixingFoam: Renamed alphaEqns.H and alphaEqnsSubCycle.H for consistency with interFoam 2017-02-08 20:46:31 +00:00
285442776c STYLE: minor code adjustments
- constness on local variables, pre-increment on loops, parameter names
2017-02-08 19:32:38 +01:00
9d85d34f3a functionObjects::scalarTransport: Corrected FatalError 2017-02-08 16:57:30 +00:00
2f091ae6c7 STYLE: make UList::writeEntry(Ostream&) protected
- outputs compound tags etc.
  Should only be called by itself or by a derived class.
2017-02-08 14:22:19 +01:00
160efd89a6 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
47b48217ba Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-08 08:46:23 +00:00
63b2ab8069 ENH: surfaceMeshTriangulate: handle absolute paths. Fixes #398. 2017-02-08 08:45:40 +00:00
974624766f 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
c5e7f356c9 porosityModel::powerLaw: Added groupName to rho lookup to support multiphase 2017-02-07 19:01:34 +00:00
5f25843392 porosityModels: Corrected documentation 2017-02-07 19:00:58 +00:00
29e83f3958 compressibleInterFoam: Added support for fvOptions in both the U and T equations 2017-02-07 18:59:40 +00:00
8264c3b988 interDyMFoam: Reinstate alphaPhiCorr0 for moving meshes without topology change 2017-02-07 09:59:19 +00:00
ddf1268e73 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
7b09bab34f DOC: adjust doxygen tag for 4-digit release tags 2017-02-06 09:15:18 +01:00
3e5307111c STYLE: unify cd, check for the cwd and error message 2017-02-06 09:13:59 +01:00
aaeab42691 ENH: provide -git option for Alltest
- fast means of ensuring we are only testing what is contained in the
  repository
2017-02-06 08:49:04 +01:00
23809f7ae7 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
9f91084eef ENH: provide word::validated() static method
- Constructs a validated word, in which all invalid characters have
  been stripped out and any leading digit is '_'-prefixed.
  Words with leading digits cause parse issues when read back later.

- Replaces previous functionally identical code from src/conversion

--
COMP: test against nullObject instead of checking address for null pointer.
2017-02-03 15:13:13 +00:00
7a7fa4350d 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
f532a99dc3 ENH: logFiles - minor change to suppress compiler warning 2017-02-03 14:34:19 +00:00
7612b51828 lagrangian::NonInertialFrameForce: Use field references rather than copies
Patch contributed by Mattijs Janssens
2017-02-03 14:29:07 +00:00
78ee6c2abb Time: When increasing precision check if the time name is unchanged
Patch contributed by Mattijs Janssens
2017-02-03 14:27:38 +00:00
83787036a9 functionObjects::streamLine: Reinstated default "U" 2017-02-03 14:25:02 +00:00
d62e301b4b Merge branch 'master' into develop 2017-02-03 12:29:49 +00:00
21636f241a Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-03 12:28:12 +00:00
9e8031f285 BUG: RunFunctions - updated retrieval of nProcs to suppress warning when no system/deomposeParDict 2017-02-03 12:27:50 +00:00
417ff3bc2a BUG: waveModels - corrected wavelength calculation for StokesV model; code clean-up 2017-02-03 12:17:42 +00:00
b4f0b2930d STYLE: Minor code tidying 2017-02-03 12:20:58 +00:00
74f38251f8 kOmegaSSTSato: removed debug message 2017-02-03 11:37:56 +00:00
1e9e164be0 Merge branch 'feature-bbox-improvements' into 'develop'
Feature bbox improvements

See merge request !92
2017-02-03 10:56:51 +00:00
93fbd41785 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
ec94c078e3 BUG: STL patch names not being passed through
- regression introduced by a719528832

STYLE: add meaningful solid names for some stl files
2017-02-03 09:33:22 +00:00
ba4dbeda77 NamedEnum: Updated to support C++11 scoped enumerations 2017-02-02 17:02:59 +00:00
e76d5ce567 ENH: use invertedBox instead of greatBox for signalling no clipping
- more stable/predictable to check for a bounding box !empty() rather
  than comparing to greatBox directly.
2017-02-01 14:31:09 +00:00
0ffae6461a ENH: creating a bounding box without points yields an inverted box
- The code create a box with a (0,0,0) point.
  The new definition is more logical and makes it very easy to grow
  the bounding box to include new points. It also simplifies much of
  the logic in the constructors.

- Use ROOTVGREAT instead of VGREAT for sizing greatBox and invertedBox.
  Avoids some overflow issues reported by Mattijs (thus GREAT has been
  used in treeBoundBox), but might still need further revision.
2017-02-01 12:15:00 +00:00
d29420817d ENH: Modification of the start point for ray shooting to avoid self-hit in distorted meshes 2017-01-31 16:06:44 -08:00
3d315f09f9 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
d951f7aaaf movingConeTopoFvMesh: M_PI -> Foam::constant::mathematical::pi 2017-01-30 16:38:58 +00:00
9812d957c9 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
70ac064f21 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
1d211874aa 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
f92862a42c 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
7a2eb63824 Corrected spelling mistake 2017-01-26 20:18:50 +00:00
d4aba02652 combustionModels: Minor cleanup 2017-01-26 17:48:31 +00:00
5dd24f4968 Removed unhelpful clutter 2017-01-26 17:47:24 +00:00
de5688e095 ENH: expose HashTable iterator object() methods
- to the referenced object via a method name, which may be clearer
  than deferencing the iterator

     [key, value] =>  iter.key(), *iter
     [key, value] =>  iter.key(), iter()
     [key, value] =>  iter.key(), iter.object()
2017-01-26 18:11:02 +01:00
2b9b2dd865 BUG: HashPtrTable has problems with null pointers (issue #395)
- print and copy operations should not be allowed to dereference a
  nullptr.
2017-01-26 18:00:33 +01:00
1c1a69cabc 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
af4429f94c STYLE: reduce bounding box list via list-combine-gather/scatter 2017-01-25 23:03:41 +01:00
722d23f59c ENH: additional methods/operators for boundBox (related to #196)
- Constructor for bounding box of a single point.

- add(boundBox), add(point) ...
  -> Extend box to enclose the second box or point(s).

  Eg,
      bb.add(pt);
  vs.
      bb.min() = Foam::min(bb.min(), pt);
      bb.max() = Foam::max(bb.max(), pt);

Also works with other bounding boxes.
  Eg,
      bb.add(bb2);
      // OR
      bb += bb2;
  vs.
      bb.min() = Foam::min(bb.min(), bb2.min());
      bb.max() = Foam::max(bb.max(), bb2.max());

'+=' operator allows the reduction to be used in parallel
gather/scatter operations.

A global '+' operator is not currently needed.

Note: may be useful in the future to have a 'clear()' method
that resets to a zero-sized (inverted) box.

STYLE: make many bounding box constructors explicit
2017-01-25 19:26:50 +01:00
17d76e6261 ENH: boundBox 'reduce' method (related to #196)
reduce()
- parallel reduction of min/max values.
  Reduces coding for the callers.

  Eg,
      bb.reduce();

  instead of the previous method:
      reduce(bb.min(), minOp<point>());
      reduce(bb.max(), maxOp<point>());

STYLE:

- use initializer list for creating static content
- use point::min/point::max when defining standard boxes
2017-01-25 18:52:37 +01:00
1cb2966722 ENH: add blockMesh -sets option to write cellZones as cellSets (closes #348) 2017-01-25 13:16:49 +01:00
8f7228d6f3 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
a719528832 ENH: use STL reader from surfMesh library for triSurface as well (issue #294)
- initial step in reducing duplicate IO for triSurface.

- write STL triangle using common core routines from fileFormats
2017-01-25 11:58:55 +01:00
14d8f6cb17 DEFEATURE: remove writers for OpenDX format (issue #294)
- last OpenDX release/news was from 2007.
  Cannot maintain or verify if the writers are correct.
2017-01-25 11:51:14 +01:00
4e5dc43418 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
9b319dab61 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
192b5d91a0 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
9d63cc5ca8 ENH: add versioning for VTK library to runTimePostProcessing (issue #370)
Eg,
    librunTimePostProcessing.so
    librunTimePostProcessing.so.7 -> librunTimePostProcessing.so.7.1.0
    librunTimePostProcessing.so.7.1.0

- centralize handling of paraview/vtk versioning into wmake/cmakeFunctions
2017-01-23 13:37:42 +01:00
77a3022c43 BUG: boundaryDataTemplates - make dir before writing to stream. Fixes #390 2017-01-23 08:41:43 +00:00
1c26f6a457 chemistryModel: General cleanup 2017-01-20 18:22:48 +00:00
1e36c99588 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
3ca17d43a2 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
8632583934 Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
2c388220aa Merge branch 'master' into develop 2017-01-19 13:31:11 +00:00
f1e415266d BUG: wave models - corrected setting of U for shallowWaterAbsorption. Fixes #388 2017-01-19 13:30:59 +00:00
e1730cf1f1 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
c7300716f6 Updates for clang++-3.9 2017-01-18 21:45:26 +00:00
1d8b31d390 Updates for clang++-3.9 2017-01-18 18:12:45 +00:00
8112172e5b eConstThermo: Corrected entropy function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2436
2017-01-18 10:10:30 +00:00
1c2093c8b3 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
1abec0652d tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC: Added deltaT to TDAC controls 2017-01-17 22:41:30 +00:00
740dbc4a37 Merge branch 'bugFix_GL_384' into 'develop'
adding viewFactorWall to inGroups fixes #384

@Sergio

See merge request !91
2017-01-17 12:45:59 +00:00
eeb486c38d adding viewFactorWall to inGroups fixes #384 2017-01-17 11:27:42 +00:00
2cc23a23e7 BUG: missing specializations in foamVtkPTraits header 2017-01-17 08:54:07 +01:00
f265b0484c BUG: extra newline in foamVtkAppendBase64Formatter flush()
Enhancements

- introduce intermediate layer for base64 foamVtk formatting
- add encodedLength() method, which is useful for xml appended output
2017-01-17 08:42:05 +01:00
d404ef954b BUG: incorrect super-cells for foamVtkCells decomposition (fixes #385) 2017-01-16 18:25:03 +01:00
a99143506d BUG: not incrementing when reading via singly-linked list 2017-01-24 12:59:13 +01:00
7af6fa7b67 ENH: freshen code in labelRange classes
- misc improvements in functionality.
2017-01-23 17:09:26 +01:00
2fa6ae6f62 STYLE: use pre-increment and cbegin/cend form for forAll* macros
- no reason to use post-increment in forAll() macro.

- use C++11 cbegin()/cend() method names for forAll*Iter() macros.
  These method names have been in OpenFOAM since 2009 and are also
  used by C++11 containers.

STYLE: nullptr instead of 0 in UList
2017-01-20 21:13:38 +01:00
fe0bb227ae STYLE: adjust documentation for scalarTransport FO 2017-01-18 11:31:15 +01:00
1ddaec3fc0 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
237c90820b 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
e0b157c0c0 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
5649bda951 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
512bfcfd6b CloudFunctionObjects::ParticleCollector: Corrected handling of "concentricCircle" mode
Patch contributed by Karl Meredith, FM Global.
2017-01-13 14:06:45 +00:00
f47e8513d7 ENH: avoid deprecated paraview method SetImmediateUpdate()
- add support for patch names in block mesh reader.
2017-01-12 11:41:15 +01:00
23d24a511e ENH: command-line query for the OPENFOAM_PLUS wmake value (issue #378)
Examples,

    wmakePrintBuild -plus

Check if value is known
(ie, everything configured and also OpenFOAM+):

    if wmakePrintBuild -plus >/dev/null 2>&1
    then
        echo YES
    else
        echo NO
    fi

Check if version is new enough

    if ofver=$(wmakePrintBuild -plus 2>/dev/null) && [ "$ofver" -ge 1612 ]
    then
        echo YES
    else
        echo NO
    fi

Conditionals

    ofver=$(wmakePrintBuild -plus 2>/dev/null)
    case "${ofver:=0}" in
    1612)
        echo "something for 1612
        ;;
    1706)
        echo "something for 1706
        ;;
    esac
2017-01-12 11:25:37 +01:00
ecb80a2ee8 ENH: refactor paraview readers code to avoid duplication
- as originally intended years ago, but never actually done.

- use 'foamPvCore' instead of 'vtkPVReaders' to avoid potential name
  collisions with any 'vtk*' files and since we may reuse these
  functions in other foam-paraview modules (not just readers).

STYLE: use same font size/colour for patch-names as for point-numbers

BUG: repair issue with single time-step

- paraview time-selector returns '0' as the requested time if there is
  only one time step. However, if we have skipped the 0/ directory,
  this single time step is likely a non-zero value.
2017-01-12 06:40:58 +01:00
46c644fa89 ENH: GAMGSolver: use raw pointers in critical loops. Fixes #379. 2017-01-11 17:23:10 +00:00
fbc02a9172 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-01-11 10:46:29 +00:00
aca1aa0b57 ENH: polyMeshGeometry: normalise cellDeterminant calculation. Fixes #380. 2017-01-11 10:46:06 +00:00
8233fa8f50 Merge branch 'master' into develop 2017-01-10 17:03:25 +00:00
084963143c BUG: meshToMesh - corrected indexing of cutting patches. Fixes #376 2017-01-10 17:02:58 +00:00
934764d700 ENH: optionally eliminate duplicates on hashedWordList construction (issue #375)
- makes it easier to use as a wordHashSet replacement for situations
  where we want to avoid duplicates but retain the input order.

- support construction from HashTable, which means it works like the
  HashTable::sortedToc but with its own hashing for these keys.

- expose rehash() method for the user. There is normally no need for
  using it directly, but also no reason to lock it away as private.
2017-01-10 12:42:40 +01:00
47bd8e13f7 TDACChemistryModel: simplified, rationalized and automated the handling of variableTimeStep 2017-01-09 21:40:39 +00:00
d08a5193fb 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
f53293441b 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
1b34f84298 TDACChemistryModel: resolved issue with single-precision build 2017-01-07 18:12:38 +00:00
7e22440dc5 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
126125c185 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
c0900fcdb4 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
3eb706a380 BUG: turbulentDFSEMInlet BC - corrected singleProc usage for parallel runs. Fixes #374 2017-01-06 10:55:46 +00:00
7f2104c9a7 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
f8e9a0dbf5 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
7a90f5e6fb ENH: add versioning to paraview plugin support libraries (issue #370)
- use "-pvMAJ.MIN" suffix for similarity with the paraview convention

- use sentinel file to ensure clean change of intermediate targets

- ensure all library files are being properly removed
2017-01-05 16:22:07 +01:00
2c96ec7550 ENH: update QT interface code for ParaView reader (issue #337)
- remove old (ParaView-3) files

- Works in 4.4.0, 5.0.1, 5.2.0 etc

STYLE:
- slots now use SM properties directly without a second lookup.
  This reduces exposure of the QT elements and simplifies the coding.

- avoid focus borders on the Qt elements

- place the "use Polyhedron" checkbox into a column

- move "Cache Mesh" down in the GUI (an advanced feature and thus
  should be less prominent)

- obtain button labels/tooltip directly from the XML content
2017-01-05 11:31:11 +01:00
24610c7c0a STYLE: Updated README text 2017-01-04 16:09:00 +00:00
7655304b5e STYLE: Documentation updates - fixes #371 2017-01-04 16:05:47 +00:00
59dacd3145 BUG: ISLList - did not close #ifdef with #endif 2017-01-04 16:00:37 +00:00
fbeaad7e58 BUG: test-mesh updated to test polyMesh constructor. Fixes #372 2017-01-04 15:59:49 +00:00
4eb679614c ENH: update blockMesh reader (issue #337)
- use property group customization instead of individual pqPropertyWidget
2017-01-04 12:27:36 +01:00
7feca8497b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-01-04 11:17:58 +00:00
680ba0f214 BUG: timeControl: add tolerance to timeStart, timeEnd. Fixes #367. 2017-01-04 11:17:12 +00:00
71ea6bec62 ENH: update blockMesh reader for paraview 5.2 (issue #337)
- although this is not the final desired form, since it uses
  individual pqPropertyWidget customizations (ie, ugly layout, too
  many bits of code), but is an interesting intermediate solution
  that may be useful in other contexts.
2017-01-04 10:48:13 +01:00
801076f8d0 ENH: adjust header management for foamVtk output
- provide headerType typedef in foamVtkFormatter, foamVtkOutput

- remove byteOrder and headerType constants from foamVtkFormatter
  since the same strings can also be obtained from foamVtkPTraits

- additional convenience methods in foamVtkFormatter
2017-01-17 10:14:15 +01:00
0761974aa1 BUG: Incomplete cleanup of paraview environment (fixes #369)
- LD_LIBRARY_PATH was not being cleaned at all when switching between
  paraview versions.

- PATH was cleaned against the third-party paraview-*, although 3rd
  party paraview is installed as ParaView-*.
  The additional cleanup for ParaView_DIR may not catch this (if it
  was unset elsewhere).
2017-01-03 17:12:02 +01:00
fa6320d93a 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
c21d0d3642 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
dfaf90301e 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
2a95bdc2a4 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
2c778ce54e STYLE: Tutorial - updated keyword 2016-12-23 14:20:30 +00:00
79ee563e32 BUG: pointNoise model - avoid double read 2016-12-23 14:18:18 +00:00
89517146b2 BUG: pressure FO - create new tmp to avoid db clash 2016-12-23 14:17:39 +00:00
b8f328c7f2 STYLE: Header updates 2016-12-23 11:15:32 +00:00
58b6fae81a BUG: Corrected logFiles usage for parallel running; doc updates. Fixes #366 2016-12-23 10:30:29 +00:00
13395c17f4 STYLE: Corrected fieldNames -> fields. Fixes #365 2016-12-23 09:12:36 +00:00
8701c57ecb BUG: Removed call to topoChanging(false) in interDyMFoam and compressibleInterDyMFoam - see #363 and 03db8627 2016-12-23 09:09:30 +00:00
81d958c5df STYLE: Updated README.md 2016-12-23 09:08:01 +00:00
b04305bb43 ENH: add small tool for listing the available EXE targets (based on git grep)
Example use

    foamGrepExeTargets           > targets-available
    foamGrepExeTargets -appbin   > targets-created

    diff -uw targets-available targets-created
2016-12-23 09:13:44 +01:00
195a37cdb5 STYLE: avoid specifying the path to 'date' (issue #364)
- this is apparently not uniform across systems

STYLE: unify the date format in logfile
2016-12-23 08:03:09 +01:00
ed20508db0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-22 09:32:33 -08:00
03db86279c ENH: setting topoChanging flag to false if there are no topo changes in polyTopoChanger::update.
This reset the flag from any previous topo changes
2016-12-22 09:30:09 -08:00
d2fc56d6be STYLE: added note about limitation of the ccm conversion 2016-12-22 17:44:21 +01:00
608bb5d83b COMP: update lnInclude directories when building (issue #364)
- Could be related to interrupted builds.
  So if there are any parts of the build that rely on an explicit
  'wmakeLnInclude', make sure that the contents are properly updated.

--

ENH: improved feedback from top-level Allwmake

- Report which section (libraries, applications) is being built.

- Provide final summary of date, version, etc, which can be helpful
  for later diagnosis or record keeping.

- The -log=XXX option for Allwmake now accepts a directory name
  and automatically appends an appropriate log name.
  Eg,
      ./Allwmake -log=logs/  ->> logs/log.linux64GccDPInt32Opt

  The default name is built from the value of WM_OPTIONS.

--

BUG: shell not exiting properly in combination with -log option

- the use of 'tee' causes the shell to hang around.
  Added an explicit exit to catch this.

--

- Detecting the '-k' (-non-stop) option at the top-level Allwmake, which
  may improve robustness.

- Explicit continue-on-error for foamyMesh (as optional component)

- unify format of script messages for better readability

COMP: reduce warnings when building Pstream (old-style casts in openmpi)
2016-12-22 11:26:29 +01:00
5f811ac09d STYLE: confusing wm32, wm64 aliases (issue #364)
- wm32/wm64 were for changing between -m32, -m64 builds on x86_64
  architectures. This is seldom enough not to warrant a special alias.
  Also ambiguous if these could refer to label sizes.

- Remove wm32,wm64 aliases.
- Add wmInt32, wmInt64 aliases for switching WM_LABEL_SIZE.
2016-12-22 11:49:46 +01:00
f4adb1f189 DOC: update BuildIssues
- can compile with icc 17.0.1
- note the min gcc versions needed to compile clang
2016-12-22 09:15:13 +01:00
3fc66cb710 ENH: make resetOnRestart optional for valueAverage (issue #360)
ENH: ensure averaging flags are not 'sticky' (see issue #331)
2016-12-22 13:00:05 +01:00
9e645179ad BUG: fluxSummary - updated constructor for writeFile. Fixes #362 2016-12-22 10:34:36 +00:00
02ba3a2d44 ENH: InjectedParticleDistributionInjection model - added protection for the case of zero particles; updated tutorial scripts. See #363 2016-12-22 10:30:15 +00:00
c3df4b9368 BUG: Tutorial updates - updated rhoSimpleFoam thermo to use rhoThermo after commit a7c8d1c - see #355 2016-12-22 10:14:34 +00:00
40e0fb2eac ENH: Field function objects using fieldExpression - tidied outpu. See #359 2016-12-22 10:09:12 +00:00
33f2559a98 ENH: relativeMotion: new tutorial demonstrating relative motion 2016-12-21 13:40:32 +00:00
0211b0a43b STYLE: correct the documented input names in header files (fixes #360) 2016-12-21 12:15:03 +01:00
33811401d6 ENH: blendingFactor function object - suppress warning and correct docs. Fixes #359 2016-12-21 08:12:46 +00:00
a807d1e18e STYLE: Minor code formatting 2016-12-20 23:07:16 +00:00
af434646d3 Adding flux to Make/files. And updating scalarTransport header instructions
scalarTransport does not generate its own phiMean anymore but it is given from the user.
This "flux" can be generated using the "flux" FO
2016-12-20 12:27:36 -08:00
fa32677e7a ENh: Adding flux FO 2016-12-20 12:26:47 -08:00
8d65da5b5c ENH: Adding parallel running for compressibleDyInterFoam tutorial 2016-12-20 09:45:52 -08:00
0a5d158991 ENH: scalarTransport function object updates 2016-12-20 17:18:34 +00:00
e0244a74ed Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-20 16:58:34 +00:00
46ce5659b4 STYLE: scalarTransport function object clean-up 2016-12-20 16:54:00 +00:00
484e59aefb Merge branch 'develop' of https://develop.openfoam.com/Development/OpenFOAM-plus into develop 2016-12-20 15:43:51 +01:00
f816c2d0bc COMP: include BuildIssues.txt for known build issues
- fixed library path for VTK.
  They should use lib/ and not lib64/
2016-12-20 15:33:16 +01:00
953594286f BUG: fieldAverage - read state properties using getDict. Fixes #358 2016-12-20 13:09:15 +00:00
0869f832be Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-20 11:17:59 +00:00
6ee70e4b4d BUG: surfaceInterpolate function object - corrected evaluation. Foxes #335 2016-12-20 11:17:51 +00:00
482f8ceeb4 BUG: localMin scheme - was using minMod instead of min 2016-12-20 10:09:11 +00:00
c537e4e8ac ENH: Updated output to use the writer class 2016-12-19 20:38:27 +00:00
83a874cdba 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
5fdb20c35e STYLE: bump min gcc for foamInstallationTest
- cleanup some code in foamInstallationTest
2016-12-19 18:04:12 +01:00
b7d0939482 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-19 14:24:44 +00:00
a529ced473 ENH: Aachen bomb tutorial - added example of particleSistribution function object 2016-12-19 14:24:35 +00:00
6cae0fdacb 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
75e86eb413 ENH: particleDistribution function object - updated output 2016-12-19 14:17:07 +00:00
ebb2ec504c STYLE: Updated header documentation 2016-12-19 14:16:13 +00:00
23a6cadfa6 BUG: redistributePar: remove inconsistent *ProcAddressing. Fixes #351. 2016-12-19 12:58:49 +00:00
1422c1aa3a BUG: etc: use of wrong variable name 2016-12-19 10:01:31 +00:00
7b4680482e ENH: use string endsWith in a few places
fieldName.endsWith("_0")
vs
    fieldName.size() > 2 && fieldName(fieldName.size()-2, 2) == "_0"
2016-12-18 23:58:45 +01:00
2b14360662 ENH: additional startsWith(), endsWith() string methods
- As the names describe, check if the string starts or ends with a
  particular value. Always true if the given text is empty or if the
  string is identical to the given text.
2016-12-18 23:21:51 +01:00
4d6ac7ddf8 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-18 21:54:38 +00:00
519248d3f4 ENH: fieldExpression - added verbose flag to foundObject 2016-12-18 21:44:25 +00:00
03e1f9c433 ENH: Removed unused files 2016-12-18 21:28:35 +00:00
23dfba2f64 STYLE: Updated header documentation 2016-12-18 21:25:12 +00:00
e379720053 ENH: additional fileName methods
- add an extension to the file name
   - remove a file extension
   - check if a file name has an extension
   - check if a file name has a particular extension (as word),
     or matches a particular grouping of extensions (as wordRe).
2016-12-18 20:40:03 +01:00
b08dadff62 ENH: initializer list constructor for fileName
This slightly more convenient when working with char[] input:

     fileName file1{ "path", "name", "to", "file.ext" };
vs.  fileName file1 = fileName(path)/"name"/"to"/"file.ext";

But is a bit more efficient since it avoid most of the intermediate
copying and resizing incurred by the '/' operator.
2016-12-18 20:09:58 +01:00
f45db9cec9 ENH: argList option to remove the noFunctionObjects option (issue #352) 2016-12-19 20:08:58 +01:00
c2b0531081 ENH: only report the architecture information for binary output files
- not required for ASCII, and makes normal dictionaries too noisy.

STYLE: move archHint to be a file-scope static
2016-12-19 00:24:54 +01:00
6f5cece322 STYLE: documentation for wordRe DETECT vs REGEXP was swapped around
- Use wordRe::REGEXP (not wordRe::DETECT) if the content is known to
  be a regular expression anyhow.
2016-12-18 22:35:20 +01:00
8a11a492f1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-19 15:42:01 -08:00
a7c8d1cfca ENH: changing rhoSimpleFoam to rhothermo and bounding thermo.rho between minRho and maxRho.
Bounding thermo.rho in rhoPorousSimpleFoam.
Changing initial time step in externalSolarLoad tutorial.
Commenting out momemtun source term in steamInjection which causes problems
2016-12-19 15:39:13 -08:00
7acef189cf ENH: provide machine/OpenFOAM architecture hint in output files (issue #271)
FoamFile
  {
      version     2.0;
      format      binary;
      arch        "LSB;label=32;scalar=64";
      class       vectorField;
      object      points;
  }

There is otherwise no simple indication in any of the files as to the
sizes used (Int32 vs Int64, SP vs DP). This makes it difficult for the
end-user and also for any third-party consumers.

--
The architecture information contains three items in the following format:

    (LSB|MSB);label=(32|64);scalar=(32|64)

- The endian value always appears first, without any leading space.
  This make it trivial to check later. Either the first 3 letters (LSB
  vs MSB) or even just the first letter ('L' vs 'M').

- Subsequent key=value pairs for 'label' and 'scalar' are separated
  by semicolons. The ordering of label vs scalar is not specified.

Note that this 'arch' information is purely informational.
It is currently not used by the OpenFOAM input mechanism itself.
2016-12-18 01:43:58 +01:00
db0d8de756 ENH: Streamline function object - report velocity field being employed - see #323 2016-12-16 20:59:13 +00:00
16f1d748ec BUG: Corrected function object usage documentation. Fixes #349 2016-12-16 20:45:13 +00:00
f41c88000f ENH: Tutorial updates 2016-12-16 20:24:02 +00:00
8b86d8b1b2 BUG: waveMOdels - corrected error introduced in commit 95f3adb1 2016-12-16 20:23:47 +00:00
6e78da0db6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-16 19:54:52 +00:00
901ee44827 BUG: Re-applying commit e73d2c5d 2016-12-16 19:53:57 +00:00
e50108e428 ENH: adding header description for eddyDissipationModel 2016-12-16 09:56:06 -08:00
b53389edef GIT: Resolved conflict merging master into develop 2016-12-16 17:10:38 +00:00
91f8176a75 STYLE: using messaging macros when referring to function name 2016-12-16 16:56:55 +00:00
4cff9286c8 BUG: corrected Allwclean 2016-12-16 15:04:39 +00:00
ff6e15a136 ENH: Added local Allwclean to ensure wclean cleans all... 2016-12-16 14:40:50 +00:00
06dfbe9b0c ENH: Added local Allwclean to ensure wclean cleans all... 2016-12-16 14:40:50 +00:00
28e37bbec9 STYLE: Consistency updates 2016-12-16 14:36:48 +00:00
a956e0f73a ENH: blendingFactor function object - always include field name in result name 2016-12-16 14:25:58 +00:00
267903077b ENH: interCondensingEvaporatingFoam - updated for postProcess utility; tidying 2016-12-16 13:33:19 +00:00
bd86b155aa Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-16 13:26:39 +00:00
30d8fc3459 ENH: Tutorial updates and clean-up 2016-12-16 13:26:28 +00:00
0087bb8027 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
9b1fcb0f73 ENH: increase coverage for foamConfigurePaths script
- can adjust many more values
2016-12-16 08:17:38 +01:00
3f362fd7ec CONFIG: add config files for VTK, MESA
- sometimes used for off-screen rendering.
  Only add to library-path when they are actually available
2016-12-16 08:17:29 +01:00
ade1cbb40a Merge branch 'bugFix_surfaceCheck' into 'develop'
added optional argument description (Fixes #347)

Optional argument listed.

@andy @mark Could you confirm/merge?

See merge request !90
2016-12-16 07:13:23 +00:00
528881cf47 BUG: missing surfaceCheck -outputThreshold option (fixes #347)
- The value from -outputThreshold was used in the code,
  but the option definition itself was somehow missed.
2016-12-16 05:14:46 +00:00
c3c963bcaf STYLE: Minor typo corrections 2016-12-15 21:18:22 +00:00
af74809786 ENH: increase precision of points for some mesh conversion applications 2016-12-15 21:35:14 +01:00
a32a915d2e BUG: polyMesh removeFiles side-effect for blockMesh viewer (issue #346)
- polyMesh constructor from cell shapes invoked 'removeFiles'.
  This may or may not be what the caller wants or expects.
  With the ParaView blockMesh viewer, this behaviour causes deletion of
  all mesh data (points, faces, etc) when the viewer is refreshed.

  Triggered even when just building the blockMesh topology.

- only a few places that construct a polyMesh from cell shapes
  (mostly mesh conversion utilities).
  Ensure that the file removal (if any) occurs in the application
  and *not* as a side-effect of calling the polyMesh constructor.

--

  blockMesh (application)
    - The placement of the removeFiles seems to also remove freshly
      generated sets (Bug or feature to remove sets?)

  +-----------------------+---------------+------------------+
  | Application           | Constructor   | removeFiles      |
  |                       | (patch info)  | new / existing   |
  +-----------------------+---------------+------------------+
  | blockMesh             | dictionary    | existing         |
  | ansysToFoam           | names         | new              |
  | cfx4ToFoam            | dictionary    | new              |
  | fluentMeshToFoam      | names         | new              |
  | gambitToFoam          | dictionary    | new              |
  | gmshToFoam            | names         | new              |
  | ideasUnvToFoam        | names         | new              |
  | kivaToFoam            | dictionary    | new              |
  | mshToFoam             | names         | new              |
  | netgenNeutralToFoam   | names         | new              |
  | plot3dToFoam          | names         | new              |
  | tetgenToFoam          | names         | new              |
  | vtkUnstructuredToFoam | names         | new              |
  +-----------------------+---------------+------------------+
2016-12-15 19:07:05 +01:00
141dd02477 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-15 17:47:01 +00:00
501ad5a607 ENH: Tutorial script update 2016-12-15 17:46:37 +00:00
2786625fa0 Merge branch 'surfField-sampling' into 'develop'
Surf field sampling

See merge request !87
2016-12-15 17:34:45 +00:00
b99817d924 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
38e40ffb95 BUG: foamList - removed link against randomProcesses lib. Fixes #343 2016-12-15 16:31:38 +00:00
a80dc41138 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-15 16:28:47 +00:00
7e985a9b7c BUG: tutorial - corrected runTimePostProcessing intput. See #340 2016-12-15 16:28:36 +00:00
9a56896380 Merge branch 'feature-runtime-post-pro-clean-objects' into 'develop'
ENH: runTimePostProcessing - added option to clear/remove objects after use

When specifying line and surface function-object-based visualisation, use the optional `clearObjects` flag to indicate that source objects should be removed/cleared after use.

Test case: [cavity.tgz](/uploads/62cc2761d132f42456f2af08f1499eba/cavity.tgz)

Syntax:

```
    surfaces
    {
        cuttingPlane1
        {
            type            functionObject;
            functionObject  cuttingPlane;
            clearObjects    yes;              // new option
            ...
```

Note: only files that have been used will be removed, e.g. if a function object has created multiple surface files, unused files will remain at the end of the run - in the attached case the p surface remains...

See merge request !89
2016-12-15 15:51:14 +00:00
4ff1c7dca4 ENH: runTimePostProcessing - added option to clear/remove objects after use 2016-12-15 15:45:02 +00:00
500dc5d3a3 DEFEATURE: remove unused fvMesh constructor using cellShapes 2016-12-15 15:48:09 +01:00
83dab87568 ENH: foamList lib updates 2016-12-15 14:26:56 +00:00
78da6865c6 COMP: reduce warnings when building sloan renumber
- boost uses old-style casts for null and others
2016-12-15 15:15:56 +01:00
d5301772f7 Update of interCondensingEvaporatingFoam and its tutorial 2016-12-15 12:36:48 -08:00
6baf1d7d8f Merge branch 'integration-ihcantabria' into 'develop'
Integration of ihcantabria wave models

Integration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)

- Original code introduced in commit 95e9467e
- Restructured and updated by OpenCFD into a new `waveModels` library available to the interFoam family of solvers

Main source:
`$FOAM_SRC/waveModels`

Tutorials:
`$FOAM_TUTORIALS/multiphase/interFoam/waveExample*`

Capabilities include:
- Wave generation
- Solitary wave using Boussinesq theory
- Cnoidal wave theory
- StokesI, StokesII, StokesV wave theory
    
- Active wave absorption at the inflow/outflow boundaries based on shallow water theory

IHCantabria Authors:
- Javier Lopez Lara (jav.lopez@unican.es)
- Gabriel Barajas (barajasg@unican.es)
- Inigo Losada (losadai@unican.es)

See merge request !88
2016-12-15 13:38:13 +00:00
10753b77e7 ENH: Code/doc tidying 2016-12-15 13:22:37 +00:00
06900449ab ENH: Removed old wave model integration files 2016-12-15 13:08:15 +00:00
bf9fcba645 ENH: Added waveModels library to interFoam family of solvers 2016-12-15 13:07:00 +00:00
95f3adb1fb ENH: waveModels - moved to main source tree and simplified 2016-12-15 12:45:14 +00:00
5e9d916fd3 CONFIG: add ADIOS configuration information for early adopters
- the configuration settings can be used for the third-party build,
  but the configuration is not yet actively enabled in
  etc/bashrc, etc/cshrc
2016-12-15 13:29:30 +01:00
91b7ede14b STYLE: adjust log name for 'Allwmake -log' (issue #333)
- now defaults to 'log.$WM_OPTIONS' (eg, log.linux64GccDPInt32Opt)
  for more clarity and fewer potential name clashes when building
  multiple versions.
2016-12-15 13:20:21 +01:00
e6f8d27553 ENH: integrate surfField-based fluxSummary
- additional surface and surfaceAndDirection modes
2016-12-15 12:59:35 +01:00
4a845f5c41 ENH: newly structured surface 'sources' for sampling.
- extend the sampling concept to include surfMeshes and surfFields
  for storage.

- Note the createOnRead switch in surfMeshSamplers can be desirable in
  some situations to force creation of the surface faces within the
  constructor.
2016-12-15 09:54:25 +01:00
b073c0a104 ENH: postOperation for surfaceFieldValue
- currently only 'none' or 'sqrt', which can be useful in combination
  with integrate or averaging functions.
2016-12-15 09:46:00 +01:00
001a2e4a37 ENH: add surfField support to various field function objects
- fieldAverage
  - mag
  - magSqr
  - readFields
  - fieldsExpression (add, subtract)
2016-12-15 09:32:53 +01:00
b0433d93f8 ENH: add ZoneMesh names(), sortedNames() methods
- similar to functionality available for IOobjectList, objectRegistry
2016-12-15 00:16:51 +01:00
fcd3f50672 BUG: foamToEnsight faceZones are mangled (issue #334)
- was using the ids coming from the zones instead of the sorted order
  from ensightFaces, which led to a clash in the mesh point maps that
  were manifest as a jumbled order.

BUG: missing newlines in foamToEnsight nfaced/nsided ASCII output

- was correct for foamToEnsightParts, but not for foamToEnsight

--
* Many thanks to Justin Graupman for all of his testing,
  which has been a great help in isolating and fixing various issues.
2016-12-15 00:09:10 +01:00
8b5516abd9 Template function objects: added read rhoInf entry 2016-12-14 15:30:04 +00:00
4de91b22d8 Template function objects: forces and forceCoeffs correction/tidy 2016-12-14 14:38:04 +00:00
0256c5de51 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
86c5f9e3b6 BUG: allocation mismatch in fluxSummary (issue #342)
ENH: reduce number of variables, simplify code

- Note: use boolList instead of scalarList for managing the face signs
  since its lazy evaluation can be convenient when sign information is
  not required.
2016-12-14 12:21:45 +01:00
e7a4a3a73d STYLE: some documentation for sampledSurfaces specification 2016-12-14 17:54:23 +01:00
36173b5306 COMP: compile with single-precision 2016-12-14 14:21:33 +01:00
abc941a0f1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 17:22:48 +00:00
4f4b1d76c4 BUG: renumberMesh: Checking for cellProcAddressing after deleting it.
This is part of #340.
2016-12-14 17:21:56 +00:00
688558998f Merge branch 'feature-extract-eulerian-particles' into 'develop'
New feature extract eulerian particles

New functionality to extract particle data from multiphase calculations and replay the data in lagrangian cases, using both the raw input particle data, and data processed into a (smaller) set of injection locations.

See merge request !82
2016-12-14 15:57:12 +00:00
f0a046fa81 GIT: Resolved conflict 2016-12-14 15:56:58 +00:00
7f2907f617 ENH: Added tutorials to show extraction of particle data from eulerian cases and subsequent injjection via lagrangian cases 2016-12-14 15:51:11 +00:00
7af521e0be ENH: Added new injection models to intermediate and spray libraries 2016-12-14 15:50:12 +00:00
3938c03c57 ENH: Added new InjectedParticleInjection lagrangian injection model
Description
    Replays an set of particle data based on an injectedParticleCloud,
    using the assumption of one particle per parcel.

Usage
    \verbatim
    model1
    {
        type            injectedParticleInjection;
        SOI             0;
        massTotal       0; // Place holder only
        parcelBasisType fixed;
        nParticle       1; // 1 particle per parcel
        cloud           eulerianParticleCloud;
        positionOffset  (-0.025 2 -0.025);
    }
    \endverbatim
2016-12-14 15:48:38 +00:00
f9a9c7148e ENH: Added new injectedParticleDistributionInjection lagrangian injection model
Description
    Interrogates an injectedParticleCloud to convert the raw particle
    data into a set of 'binned' injectors.

    The bins are set according to the particle \c tag property, from which:
    - diameters are converted into \c general distributions with a
      user-specified bin width
    - raw velocity and diameter data are resampled and stored to provide
      variations per injector

    The mass to inject can be set according to the raw input data mass total
    by using the \c applyDistributionMassTotal switch

Usage
    \verbatim
    model1
    {
        type            injectedParticleDistributionInjection;
        SOI             0;
        parcelBasisType mass;
        cloud           eulerianParticleCloud;
        positionOffset  (-0.025 2 -0.025);
        binWidth        0.1e-3;
        parcelsPerInjector 500;
        resampleSize    100;                    // optional
        applyDistributionMassTotal yes;

        // Placeholder only when using applyDistributionMassTotal
        massTotal       0;
    }
    \endverbatim

Note
    The each injector location is assumed to be operating under steady
    conditions, i.e. using a constant flow rate profile

SourceFiles
    InjectedParticleDistributionInjection.C

See also
    Foam::injectedParticle
    Foam::injectedParticleCloud
    Foam::functionObjects::extractEulerianParticles
    Foam::distributionModels::general
2016-12-14 15:47:15 +00:00
e8171d0150 STYLE: Updated header documentation 2016-12-14 15:43:57 +00:00
f59c9762bb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 07:37:06 -08:00
730231446a ENH: extractEulerianParticles function object parallel and usability updates 2016-12-14 15:28:55 +00:00
76023b38ad BUG: Corrected coding error 2016-12-14 15:27:39 +00:00
6a3c2c2fbc STYLE: Updated comment 2016-12-14 15:27:19 +00:00
26ac7e11fd ENH: Lagrangian injection - cache volumeTotal for continuous restart 2016-12-14 15:26:28 +00:00
43e4571143 ENH: subModelBase - added function to get a dictionary 2016-12-14 15:25:39 +00:00
8c8cf9210f ENH: distributionModels - pass in construction dict instead of parent dict 2016-12-14 15:25:00 +00:00
a3ef5cd137 Merge branch 'feature-chunkingComms' into 'develop'
Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.

Tested:
- with maxCommsSize 0 produces exactly same result as plus.develop
- compiles with label64
- with maxCommsSize e.g. 3 produces exactly same result as plus.develop
- with maxCommsSize=0 exactly the same messages (with Pstream::debug = 1) as plus.develop

See merge request !85
2016-12-14 15:18:42 +00:00
6acd407f8a STYLE: Time: indentation 2016-12-14 14:10:50 +00:00
00ac073e17 ENH: fvMotionSolvers: added solidBodyDisplacementLaplacian
Applies a displacementLaplacian on top of a solid-body motion function
2016-12-14 13:00:14 +00:00
4ff163aed7 COMP: combinePatchFaces: missing include file 2016-12-14 11:45:32 +00:00
1f87361208 ENH: snappyMultiRegionHeater: remove confusing README 2016-12-14 11:30:33 +00:00
0e7e5734c2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 11:28:09 +00:00
4c607b91d9 Merge branch 'bugFixes' into 'develop'
ENH: Usage of locationsInMesh for tutorial and other fix

- Example for Using multiple locations in mesh
- bugFix for rhoPimpleFoam case

See merge request !86
2016-12-14 11:17:22 +00:00
67ea233d21 ENH: Usage of locationsInMesh for tutorial and other fix 2016-12-14 11:04:15 +00:00
62fb508c63 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
5292ef36bf ENH: controlDict: extended comment 2016-12-14 09:17:29 +00:00
6fc22debc8 reactingTwoPhaseEulerFoam: Removed temporary debug option 2016-12-14 09:00:14 +00:00
5cd1ad04a7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 08:37:38 +00:00
bc1678581e ENH: Updated compiler scripts. Fixes #341 2016-12-14 08:37:28 +00:00
9ffd7aed3f BUG: Tutorial update - see #336 2016-12-14 08:31:03 +00:00
162a0eac4d Adding autoPtr clone constructors and correcting T.oldTime() 2016-12-13 13:30:42 -08:00
13c3b1d617 ENH: Allwmake -log=name option to specify log name (issue #333)
- helpful when testing various builds
2016-12-13 20:53:05 +01:00
dfb5fae5de BUG: Fixing oldTime Tw and Reference Value of humidityTemperatureCoupledMixed BC 2016-12-13 09:44:25 -08:00
b77dbc9c6c ENH: effectivenessHeatExchangerSource - updated output 2016-12-13 15:50:16 +00:00
b1107081cc ENH: effectivenessHeatExchangerSource - updated output 2016-12-13 15:47:42 +00:00
ab1fc22398 reactingTwoPhaseEulerFoam: Updated LTS support in the cell-based momentum algorithm 2016-12-13 15:47:24 +00:00
164e2d4c53 Removed blank-line 2016-12-13 15:46:39 +00:00
965287d70c ENH: effectivenessHeatExchangerSource - protected divisions 2016-12-13 15:33:14 +00:00
36f8895e78 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-13 07:20:39 -08:00
5514b74922 sprayFoam: Explicitly write cloud when not solving flow 2016-12-13 13:19:22 +00:00
ad0338123a BUG: Tutorial update - fixes #336 2016-12-13 12:45:01 +00:00
7063555abb BUG: Tutorial update - fixes #339 2016-12-13 12:43:02 +00:00
ad807e8d31 BUG: Updates to DyM tutorials - see #340 2016-12-13 12:40:58 +00:00
eefddbc8a8 reactingTwoPhaseEulerFoam::partitioningModels::cosine: Corrected slope
Patch contributed by Juho Peltola, VTT.
2016-12-13 12:03:56 +00:00
3fee08b034 ENH: cshrc: suppress printing 2016-12-13 09:24:25 +00:00
c0a2c16f6c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-12 10:36:33 -08:00
88128e0392 ENH: compressibleInterDyMFoam enhancements for mesh motion and sphere drop test case tutorial 2016-12-12 10:34:49 -08:00
e453f0bf02 ENH: Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.
This is controlled by the setting maxCommsSize in etc/controlDict which
specifies the max number of bytes per exchange. If set to <= 0 it
is ignored. This max size of messages is important when doing e.g.
load balancing which can send over whole meshes.
2016-12-12 17:32:24 +00:00
141a1df59b wallBoilingSubModels: Corrected references
Patch contributed by Juho Peltola, VTT
2016-12-12 16:58:52 +00:00
f3d8be7abe ENH: dynamicMultiMotionSolverFvMesh: new dynamicFvMesh type.
Takes cellZones and motionSolver per cellZone. See also dynamicMotionSolverListFvMesh.
2016-12-12 16:05:21 +00:00
f31623d337 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
16c178be66 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-12 13:10:06 +00:00
98a2527087 ENH: foamList - updated link libs to avoid error on exiting 2016-12-12 12:37:57 +00:00
28bd150db6 ENH: foamList - updated link libs to avoid error on exiting 2016-12-12 12:37:57 +00:00
989883d62b GIT: Resolved merge conflict 2016-12-12 12:23:45 +00:00
e2cdac590f STYLE: removed unused code to avoid compiler warning 2016-12-12 12:15:40 +00:00
164c545b47 ENH: blockEdge - updated bezier 2016-12-12 12:15:01 +00:00
4c79a85baa ENH: combustion models - updated for current API 2016-12-12 12:14:26 +00:00
6408cd1fbb ENH: outletMappedUniformInlet BC - Cp only calculated for patch and not entire domain; input keywords updated for consistency 2016-12-12 12:13:53 +00:00
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
8ddfe86d1d 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
1a9ee8f07b COMP: ubuntu build with CGAL lacks dependency on gmp/mpfr (issue #288)
- slightly odd. Building CGAL on other Linux systems have a proper
  ldd dependency for gmp/mpfr, but ubuntu doesn't
2016-12-09 16:55:04 +00:00
83f3044db9 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
e8aba1e6e9 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
7d54e57fa0 Renamed searchableCurve -> searchableExtrudedCircle
to clarify purpose.

Patch contributed by Mattijs Janssens
2016-12-09 16:30:46 +00:00
b17a568569 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
1b3d98586a 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
b4b77e76c9 mappedFieldFvPatchField: Corrected autoMap function
Patch contributed by Mattijs Janssens
2016-12-09 15:08:43 +00:00
eb00c8021d ENH: provide log option for top-level builds (issue #333) 2016-12-09 14:44:26 +00:00
27ae7d5b00 STYLE: minor comments added to ensightSurfaceReader 2016-12-09 14:38:15 +00:00
e256e72039 fieldAverageTemplates: General clean-up 2016-12-09 14:28:04 +00:00
97a27dc172 dynamicMotionSolverListFvMesh: Ensure independence of zone-based motion 2016-12-09 14:19:07 +00:00
b6d79ed4ce BUG: scaleFactor for fieldValue function-objects is 'sticky' (issue #331)
- if set in a dictionary and later removed, the intermediate value is
  retained rather than reverting to a normal default value.

- same applies for a few other function objects and their variables
2016-12-08 11:33:39 +00:00
422993f9a5 ENH: add weightedAreaIntegrate operation for surfaceFieldValue 2016-12-08 11:00:18 +00:00
b4182c60a3 BUG: inconsistency in periodic restart for fieldAverage (issue #330)
- the interval for the next restart was not being adjusted when the
  file was reread, or when doing a complete simulation restart.
2016-12-08 09:32:55 +00:00
1b2cfde773 STYLE: minor typo in mapFields documentation 2016-12-08 09:19:32 +00:00
7354efa462 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-12-07 13:04:33 -08:00
11479c51d7 ENH: Changes in handling topological changes in VOF solvers
1) Using divU instead of fvc::absolute(phi,U) in TEqn as the latter uses latest time meshPhi which is inconsistent
2) Adding fvc::interpolate(U) when topo changes
3) in pEq for compressible dgdt is updated using the latest rho1 and rho2 after compressible effects are considered
2016-12-07 12:57:32 -08:00
08f0f3dddb STYLE: avoid refCast in favour of the fvMeshFunctionObject mesh_ variable 2016-12-07 17:32:31 +00:00
d2f6f7e391 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
2c7eff8d6b Merge remote-tracking branch 'origin/feature-cellSetRemove' into develop 2016-12-07 14:13:00 +00:00
e518acb594 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-07 13:16:05 +00:00
72465aaba7 BUG: displacementMotionSolver: access incorrect region. Fixes #327. 2016-12-07 13:15:37 +00:00
8321f1ffcc ENH: initial support for handling subRegions in regionFunctionObject
- propagate updated objectRegistry methods (eg, lookupObjectRef etc)
  into regionFunctionObject
2016-12-07 12:09:21 +00:00
7d61b870c2 BUG: injectedParticle/Cloud updates 2016-12-07 09:26:58 +00:00
87056a2308 ENH: pairPatchAgglomeration - updated constructors 2016-12-07 09:25:42 +00:00
56071431ac STYLE: minor spelling correction 2016-12-07 09:25:08 +00:00
e73d2c5d29 BUG: surfaceNoise - corrected fftWriteInterval operation 2016-12-06 16:19:01 +00:00
3d08651324 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
5f9be34a42 Merge branch 'feature-objectRegistry' into 'develop'
ENH: improve objectRegistry functionality (issue #322)

- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--

See merge request !83
2016-12-06 10:48:43 +00:00
5c7b3c7886 reactingTwoPhaseEulerFoam: Corrected LTS support
Resolves bug-report http://bugs.openfoam.org/view.php?id=2374
2016-12-06 09:30:50 +00:00
b5f0aa7ff7 Merge branch 'feature-runtime-post-pro-camera-update' into 'develop'
runTimePostProcessing FO camera update

- Removed the camera 'mode'
    - The (old) static camera was only appropriate when parallel
      projection was inactive, and the view was centred at (0 0 0)
    - Camera input now always requires 'position' and 'focalPoint'
    - Clip box is now optional.  Note that this is applied after the
      camera
      set-up and so will override the camera position
    - View angle is only appropriate when not using parallel projection
    - Zoom now required, applied after all other operations
      - 1 = do nothing, >1 = zoom in, <1 = zoom out

    Example input:

```
        camera
        {
            // Total number of frames to generate
            nFrameTotal 1;

            // Parallel projection flag
            parallelProjection no;

            focalPoint  (0 0 0);
            up          (0 1 0);
            position    (0 0 1);

            // Optional entries
            clipBox     (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
            viewAngle   20;
            zoom        1.1;
        }
```

See merge request !81
2016-12-06 09:24:23 +00:00
aa9d90c495 ENH: runTime pp - updated header documentation 2016-12-06 09:23:55 +00:00
6508c4e9b7 ENH: runTime pp - new zoom entry now optional 2016-12-06 09:17:54 +00:00
db3699f8ab ENH: redistributePar: remove shm data 2016-12-06 09:10:30 +00:00
c0de376b2a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H
2016-12-05 15:32:26 -08:00
81f1072fb0 ENH: Adding maxDeltaxyzCubeRootLESDelta LES delta model 2016-12-05 15:24:50 -08:00
d6db12b549 STY: Adding documentation for volume sampling in regionSizeDistribution FO 2016-12-05 15:07:13 -08:00
fc8f2ac94b ENH: Adding tutorial for outletMappedUniformInletHeatAddition 2016-12-05 14:40:11 -08:00
a95b7aa6b7 alphatWallBoilingWallFunctionFvPatchScalarField.H: corrected mode 2016-12-05 20:08:24 +00:00
6eeba45c21 advectiveFvPatchField, waveTransmissiveFvPatchField: Updated docs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2373
2016-12-05 20:07:40 +00:00
4a77294c7c ENH: renumberMesh: remove old files 2016-12-05 15:24:52 +00:00
789cef44fc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-05 08:54:15 +00:00
94fd633243 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
304af9fc5f reactingTwoPhaseEulerFoam: Added LTS support to the face-momentum algorithm 2016-12-04 10:14:43 +00:00
2b551d8751 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
2fa6436b6e setFields: Added '-dict' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2366
2016-12-03 11:45:36 +00:00
b57859269b tmp: Removed temporary global functions 2016-12-03 11:44:18 +00:00
f303f2a289 motionSolver: Removed unused member data 2016-12-02 12:44:09 +00:00
c300fd5ca8 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
ab760b6cd1 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling.*: Correct q entry
Patch contributed by Mattijs Janssens
2016-12-02 12:22:30 +00:00
6534b58784 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
64548a6283 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
0030d9ea35 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
031c75374e ENH: Relocated injectedParticle class to lagrangian library 2016-12-01 17:04:37 +00:00
458357226a BUG: Removing code unintenionally committed 2016-12-01 16:59:47 +00:00
1d3782a8af ENH: improve IOobjectList functionality (issue #322)
- provide additional filtering methods on names(), sortedNames()
  For example,

      IOobjectList objects = ...;
      wordReList selection = ...;

      objects.sortedNames(VolFieldType::typeName, selection);
2016-12-01 17:59:38 +01:00
8602fd13f4 ENH: Initial commit of new particleDistribution FO - generates 'general' distribution for lagrangian particle clouds 2016-12-01 16:52:37 +00:00
6d8281e217 ENH: extractEulerianParticles FO updates 2016-12-01 16:51:11 +00:00
f666f54984 ENH: distributionModels - refactored binned and general models 2016-12-01 16:50:13 +00:00
c0f1a87d54 STYLE: Code clean-up 2016-12-01 16:49:34 +00:00
445513a1dc mixerVesselAMI2D/constant/dynamicMeshDict: Removed unused motionSolverLibs entry 2016-12-01 16:13:18 +00:00
1c687baa35 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
85036f78ab orthogonalSnGrad, uncorrectedSnGrad: Improved documentation
Resolves request http://bugs.openfoam.org/view.php?id=2364
2016-12-01 15:17:14 +00:00
144e08e213 reactingEulerFoam: Updated to support zoneCombustion models 2016-12-01 15:16:19 +00:00
4427d9e49c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-01 14:32:02 +00:00
450d84bd77 BUG: surfaceNormalFixedValue: do not use ptf.patch(). Fixes #319 2016-12-01 14:31:22 +00:00
d5e2b73500 STYLE: simplify logic statement 2016-12-01 14:25:38 +01:00
92fa5a1921 ENH: improve objectRegistry functionality (issue #322)
- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--
2016-12-01 13:04:07 +01:00
8628ddac43 ENH: add Test-objectRegistry (issue #322)
- test clearly shows failure to insert a sub-registry when it has
  the same name as one of the parent sub-registry.
2016-12-01 12:30:38 +01:00
9e910e6c14 Merge branch 'feature-extract-eulerian-particles' of develop.openfoam.com:Development/OpenFOAM-plus into feature-extract-eulerian-particles 2016-11-30 23:32:51 +00:00
78bb633dfc ENH: extractEulerianParticles FO - refactored to output a cloud of particles - distribution analysis to follow... 2016-11-30 23:32:33 +00:00
6486209aa2 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
99a1eee024 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
5d7f8f11d6 GIT: rearrange files for surface sampling sources
- isolate the surface source (plane, iso-surface etc), from sampling
2016-11-30 10:31:07 +01:00
8b75035f29 ENH: change UnsortedMeshedSurface -> meshedSurface for sampledTriSurfaceMesh
- all sampled surface types now consistently use the same storage,
  which allows some more simplifications in the future.

- before/after comparison of the sampledTriSurfaceMesh tested with
  motorbike passenger helmet (serial and parallel). Use the newly added
  'keepIds' functionality to retain the original ids, and can also
  compare them to the original obj file with "GenerateIds" in paraview.
2016-11-29 22:56:08 +01:00
3c41b80b38 ENH: change from triSurface to meshedSurface storage for iso-surfaces
- this makes it easier to reuse the code, and sampledSurface expect
  a face (not a labelledFace), so this also eliminates a translation
  level and simplifies memory management.

- before/after comparison of the sampled iso-surfaces tested with
  iso-surfaces from interFoam/RAS/angledDuct tutorial (serial and
  parallel)
2016-11-29 17:24:26 +01:00
690f58d2cb ENH: support retention of original surface ids when sampling (related to issue #104)
For example,
    surfaces
    (
        helmet
        {
            type        sampledTriSurfaceMesh;
            surface     motorBike-passenger-helmet.obj;
            source      cells;
            keepIds     true;  <<-- NEW
        }
    );

    This will create an additional "Ids" field that can be used to sort
    or as a faceMap to recover the original face order.
2016-11-29 17:14:56 +01:00
fbd4ff38b0 STYLE: correct the documented behaviour of 'none' for function objects
- cf. Line 224 of timeControl.C
2016-12-13 10:11:17 +01:00
6f2b2aff40 STYLE: reduce script verbosity 2016-12-13 08:15:00 +01:00
17bedf58d9 STYLE: consistent of enumerations between ensight components 2016-12-13 08:09:26 +01:00
9041c9083e BUG: incorrect addressing in ensight faces/cells (issue #334)
- was erroneously using global sizing for offsets instead the processor
  local sizing.

--

STYLE: adjust variable naming, indentation for consistency
2016-12-12 17:52:02 +01:00
271c8c8c6e ENH: Added new extractEulerianParticles function object
Generates discrete particle data from multiphase calculations by
interrogating the phase fraction field at a faceZone.

Data is written in raw form, i.e. per particle collected, with
as an optional binned distribution
2016-11-29 14:56:48 +00:00
47439e4917 ENH: pairPatchAgglomeration - multiple updates 2016-11-29 14:46:19 +00:00
86982f5eb7 ENH: writeFile - return bool on successful read 2016-11-29 14:45:45 +00:00
89b1b64414 ENH: distributionModels - added new binned model to add discrete binned sizes 2016-11-29 14:45:33 +00:00
c6acd68618 ENH: Added new regionSplit2D to split 2-D regions based on an indicator field 2016-11-29 14:41:02 +00:00
966b6e730e CONFIG: incorrect MPI_HOME for (unsupported) mpich 2016-11-29 13:06:03 +01:00
026ed13c10 ENH: warn user when using constant/polyMesh/blockMeshDict (issue #309)
- the user might otherwise be unaware of the changed location
2016-11-29 12:14:48 +01:00
75b30cfb2c STYLE: eliminate the last vestiges of unallocLabelList in favour of labelUList
- both are typedefs for UList<label>
2016-11-29 11:49:46 +01:00
4ab9806348 BUG: foamToEnsight -faceZones fails (issue #317)
- was using direct face ids instead of appropriate sub-lists
- also removed typo that wasn't helping much either
2016-11-29 11:45:01 +01:00
d45d5a9e0a STYLE: remove definition of unimplemented faceZone method 2016-11-29 11:08:31 +01:00
05df4c71b6 ENH: Lagrangian models - added headers to enable derived libraries to compile 2016-11-29 09:10:37 +00:00
fcd8d71ef9 STYLE: ensightCells, ensightFaces sub-lists are always allocated
- remove remnant nullptr check
2016-11-29 09:06:30 +01:00
a2bba390f2 COMP: improve robustness of cmake (vtk) builds when directories have moved 2016-11-28 23:28:21 +01:00
b69ab6c895 COMP: reduce compile noise for paraview modules
- vtkkwiml headers use old-style casts, so reduce compile-time warnings
2016-11-28 22:34:38 +01:00
f281f77e4a Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
e35a566302 CONFIG: downgrade back to paraview-5.0.1
- newer versions of paraview build fine, and so do the reader modules,
  but the reader modules won't load (need to upgrade the classes).
2016-11-28 22:14:01 +01:00
4013532aaa STYLE: simplify adios rules
- now that adios_config flags are largely working in ThirdParty
2016-11-28 22:12:01 +01:00
dec8bd46c3 BUG: _foamAddPath not available when foamPV alias/function is used
STYLE: only use paraview settings when actually available

- this means executing makeParaView prior to building OpenFOAM itself,
  but is consistent with the instructions given by makeParaView,
  and elminates anticipating the source location from the paraview
  config file, which increases the build flexibilty for ThirdParty
2016-11-28 15:35:27 +01:00
39e032aef6 ENH: runTimePostProcessing FO camera update
- Removed the camera 'mode'
    - The (old) static camera was only appropriate when parallel
      projection was inactive, and the view was centred at (0 0 0)
    - Camera input now always requires 'position' and 'focalPoint'
    - Clip box is now optional.  Note that this is applied after the
      camera
      set-up and so will override the camera position
    - View angle is only appropriate when not using parallel projection
    - Zoom now required, applied after all other operations
      - 1 = do nothing, >1 = zoom in, <1 = zoom out

    Example input:

        camera
        {
            // Total number of frames to generate
            nFrameTotal 1;

            // Parallel projection flag
            parallelProjection no;

            // Optional clippling box
            clipBox     (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
            focalPoint  (0 0 0);
            up          (0 1 0);
            position    (0 0 1);
            viewAngle   20;
            zoom        1.1;
        }
2016-11-28 14:21:11 +00:00
21251970ac Merge branch 'feature-noise-multiple-files' into 'develop'
Feature noise multiple files

Enabled pointNoise and surfaceNoise models to operate on multiple input files
- For each model, the files should be specified by the `inputFiles` keyword
- When applied to pointNoise, the file is no longer required when specifying the CSV input data
- the singular `inputFile` entry is still available to the surfaceNoise model for backwards compatibilty

See merge request !80
2016-11-28 13:50:14 +00:00
494ce72e3b ENH: surfaceNoise - provide backwards compatibility for inputFile keyword 2016-11-28 13:44:53 +00:00
414b128f7f 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
f4e53b2d3a Merge branch 'feature-functionObject-consistentWrite' into 'develop'
Function objects - ensure objects are up-to-date when writing

See merge request !79
2016-11-28 09:51:07 +00:00
2903722a39 Revert "ENH: ensure written and evaluated values correspond (issue #311)"
This reverts commit c554dc7b7d.

Functionality available in more general change in commit fb78378
2016-11-28 09:48:06 +00:00
3077a11c0d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-28 09:33:23 +00:00
da4dad4382 ENH: snappyHexMesh: improved comment 2016-11-28 09:32:58 +00:00
1022f4fc49 STYLE: Minor code formatting 2016-11-28 09:27:13 +00:00
3e8415e119 BUG: enightPartFaces - use virtual size() function in write method 2016-11-28 09:26:51 +00:00
8b219feda2 Updated member type comments
See http://bugs.openfoam.org/view.php?id=2356
2016-11-28 09:22:56 +00:00
00c3c6f9a7 ENH: improve configuration of gperftools (now at version 2.5)
- support gperftools-none, gperftools-system configurations
  as per other third-party packages.

STYLE: clean up more environment variables

CONFIG: testing adios rule
2016-11-27 16:24:40 +01:00
0013284e94 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
9c4653e9c1 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
25e0a41eef functionObjects::yPlus: Removed the AUTO_WRITE option on yPlus
Writing is controlled directly by the functionObject
2016-11-26 17:30:52 +00:00
6a26ac850b POSIX: removed spurious double literal suffix 2016-11-25 22:40:49 +00:00
1d1f71f7cd 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
dc1c37e464 COMP: add in plain lib/ directories for boost, cgal, fftw
- these directories are sometimes used for a central, non-thirdparty, non-system
  installation

- leave gmp and mpfr as is, since it is not clear how these would interact with system
  versions
2016-11-25 20:43:27 +01:00
81de1dc9ac 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
bf326cc4f7 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
5272d324a4 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
bdfa4f9c05 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
a14267d83b BUG: pointNoise - corrected base file name 2016-11-25 12:15:06 +00:00
8462be6a46 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
2790d64c4f ENH: waveModels - new and updated tutorials 2016-11-25 11:16:20 +00:00
21b3f88a72 ENH: waveModels - refactored time scaling coefficient 2016-11-25 10:49:53 +00:00
02e9433d73 BUG: Boussinesq wave model - corrected coefficient reported by Gabi 2016-11-25 10:49:23 +00:00
043bf18d98 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
00174405c6 ENH: noiseModels - enable models to accept lists of file names 2016-11-24 21:31:08 +00:00
9aa9d1d1b4 ENH: improve interoperability of triSurface with other surface mesh classes
- make it easier to transfer triSurface information into MeshedSurface
  etc.
2016-11-24 18:28:57 +01:00
c3005794ab ENH: provide triSurfaceTools::validTri() method to reduce code duplication
- identical code was present in surfaceCheck (original source),
  and isoSurface, isoSurfaceCell (copies).

- add in a MeshedSurface<face> variant as well, since this will likely
  be needed in the near future
2016-11-24 15:31:32 +01:00
da78cba7da BUG: surfMesh.write() not working with AUTO_WRITE off
- add writeObject method
2016-12-01 15:15:50 +01:00
46e396af49 ENH: surfMesh::setWriteOption to adjust the write option of all components
- otherwise difficult to avoid auto-write etc.

- propagate similar changes to MeshedSurfaceAllocator, where is makes
  the most sense.
2016-12-01 15:07:16 +01:00
7b450a2915 BUG: update points reference in surfMesh fails (issue #320)
- Should be updating references (shallow copy), but triggers a deep copy
  instead. Likely introduced by 6e573ad7e8.
2016-11-30 14:13:01 +01:00
ed27b25ff8 STYLE: use meshCells() instead of cutCells() for consistency
- other sampled surface types use meshCells() throughout.
  Only cuttingPlane was different.
2016-11-24 15:33:17 +01:00
907bde821d STYLE: fixup usage for -clean/-noClean options 2016-11-25 01:10:25 +01:00
0142c83068 ENH: add motorBike-passenger-helmet.obj for test cases
- This is simply the normal helmet geometry, but shifted to where a
  passenger head may be. It can be used for surface sampling etc.
2016-12-02 10:10:32 +01:00
8563f892a9 ENH: provide a 'dimensioned' null-like constructor for dimensionedType
- The null constructor already creates a dimensionless Zero,
  but named "undefined".

  Provide an constructor for a dimensioned Zero,
  but named "0" for universal clarity to its value.
2016-12-02 08:48:01 +01:00
fb78378959 ENH: Function objects - ensure objects are up-to-date when writing 2016-11-24 12:36:52 +00:00
7734d7ffd7 ENH: Tutorial updates 2016-11-24 12:11:43 +00:00
b7ea6ee24e Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-24 12:05:24 +00:00
9316088550 STYLE: Relocated DFSEM tutorial 2016-11-24 12:05:12 +00:00
58fad3ab79 BUG: snappyHexMesh with -decomposeParDict option (issue #265)
- only occurs in combination with distributedTriSurfaceMesh in snappy.

- workaround similar to that previously used for surfaceRedistributePar
  (issue #60).

Minor adjustment of incompressible motorBike tutorial to detect use of
distributedTriSurfaceMesh.
2016-11-24 12:02:11 +01:00
55ed6ec776 STYLE: use MUST_READ consistently for decomposeParDict
- there was a slight mix of MUST_READ and MUST_READ_IF_MODIFIED
  but with no obvious code to handle runtime modified values
  of the decomposition, or how this works with alternative
  dictionaries.
2016-11-24 11:26:03 +01:00
0bb9459cfc primitiveShapes::plane: Removed redundant 'explicit'
Declaration of 'explicit' constructor without a single argument are redundant.
2016-11-23 16:22:10 +00:00
7f330cef40 etc/caseDicts/postProcessing/fields: New 'add' and 'subtract' functionObjects 2016-11-23 16:21:38 +00:00
bc05a40b56 ENH: waveModel - updated restart method 2016-11-23 15:48:56 +00:00
c7b51f98e7 ENH: waveModel - enable restart 2016-11-23 14:57:45 +00:00
e9e9760329 CONFIG: bump versions of various third-party sources
* boost 1_62_0 (Sept 2016)

* CGAL 4.9 (Sept 2016)
  - now has headers-only mode that could be interesting

* FFTW 3.3.5 (Jul 2016)

* openmpi 1.10.4 (Sept 2016)
  - the first openmpi 2.x release is also available, but too early to switch

* paraview 5.2.0 (Nov 2016)
  - builds without additional patching

STYLE: removed unneeded CMake environment variables
2016-11-23 14:14:06 +01:00
fa430cc407 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-23 12:10:33 +00:00
8c08ad6667 ENH: mergeOrSplitBaffles: allow operation on selected patches. Fixes #314. 2016-11-23 12:09:31 +00:00
ba6ae13b5a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-23 11:22:01 +00:00
dd989a8600 BUG: Corrected constructor initialisation error introduced in last commit; code tidying 2016-11-23 11:21:23 +00:00
0b83cebd12 BUG: wave model active absorption loop should be over all patch faces 2016-11-23 10:41:37 +00:00
a895f20759 BUG: waveModel - set U to zero in else branch 2016-11-22 15:42:12 +00:00
87a566c11c STYLE: minor code typo corrections 2016-11-22 15:34:37 +00:00
7eaa46a08b 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
558006afd2 BUG: Corrections to commit 1f826361 for issue #306 2016-11-22 15:12:10 +00:00
1248851fa4 BUG: waveModel - removed direction() function - co-ordinate system takes care of direction 2016-11-22 15:04:05 +00:00
e619a82ae6 COMP: minor adjustments for compiling with single-precision 2016-11-22 15:58:54 +01:00
1f826361c6 STYLE: Consistency updates to change input of <var>Name to <var>. Fixes #306 2016-11-22 14:50:33 +00:00
19bd06c850 COMP: adjust vtk formatting for 64-bit labels 2016-11-22 10:27:11 +01:00
f911344ccb Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-21 12:10:21 -08:00
5325af4626 BUG: Following issue 284 for particle switching processors flag 2016-11-21 11:54:31 -08:00
143e99194f ENH: Adding functionality to scalarTransport FO and residence time tutorials for VOF
and single phase cases. Registration of the compressed flux in interFoam as it is
needed for the FO if used.
2016-11-21 09:21:45 -08:00
d9740aa33e ENH: redistributePar: remove pointFields 2016-11-21 17:20:34 +00:00
dfbb9d0900 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	tutorials/combustion/fireFoam/LES/compartmentFire/Allclean
2016-11-21 07:39:46 -08:00
ab40ddaaf3 Adding fireCompartment tutorial for new pyrolysis thermo, thermocouple FO and EDC combustion model 2016-11-21 07:36:05 -08:00
784461b2fa ENH: make search of instances in IOobject::typeHeaderOk optional (issue #245)
- in specific cases it can be useful to suppress searching the instances.
  For example, if one only wishes to check if a "points" is available at
  the given time instance, without searching backwards through all
  times.
2016-11-21 14:28:40 +01:00
cf4d945aa1 Matrix: Minor reformatting 2016-11-21 11:47:25 +00:00
c554dc7b7d ENH: ensure written and evaluated values correspond (issue #311)
- Avoids possible discrepancy when the user selects non-coincidental
  values for executeInterval and writeInterval.

- zeroGradient and ddt2 function objects
2016-11-21 12:36:04 +01:00
c7c2808bee Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-21 09:44:54 +00:00
19cb3b0454 STYLE: porosityModel - minor cleanup of bounds output 2016-11-21 09:44:00 +00:00
cbf43acd30 ENH: provide static uniq method in wordReListMatcher (issue #259)
- this functionality will be more frequently used in the future,
  thus place in a commonly available location.
2016-11-21 10:38:22 +01:00
a6a90838fa STYLE: adjust tutorial Allrun scripts (issue #310)
- A few without a 'cd' at the start.
  Use $(getApplication) directly in more places (for clarity).
2016-11-21 10:18:00 +01:00
21679c04e4 STYLE: adjust tutorial Allclean scripts (issue #310)
- A few without a 'cd' at the start.
  Several remove files that are already covered by the cleanCase function.
2016-11-20 17:26:44 +01:00
f3cc16e42c ENH: Avoid constant/polyMesh/blockMeshDict (issue #309)
- relocate to system/blockMeshDict, which avoids it being cleaned out
  accidentally
2016-11-20 16:50:47 +01:00
8ba4e3c370 ENH: make search of time instances in IOobject optional (issue #245)
- Still needs more attention.

--
STYLE: fix minor typos in documentation
2016-11-20 14:41:43 +01:00
5c15769dfe GIT: revert back to system openmpi (issue #308)
- consistently use SYSTEMOPENMPI for both sh and csh versions
  (inadvertently changed in ee5251a7bb).
2016-11-20 13:12:02 +01:00
95e7faf309 STYLE: use the more succinct forms for argList (issue #307)
* args[int]   vs  args.args()[int]
  * args[word]  vs  args.options()[word]
  etc.
2016-11-20 13:06:57 +01:00
7b9fde84ce STYLE: consistent naming of 'kappa' instead of 'kappaName' etc (issue #305)
- purely cosmetic (documentation) changes
2016-11-20 11:41:52 +01:00
f55b15e387 Merge branch 'master' into 'develop'
Merge master changes/bugfixes into develop branch

See merge request !78
2016-11-20 09:48:38 +00:00
7d39328b5a 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
9b66285c22 Merge remote-tracking branch 'origin/externalCoupled' into develop
- update tutorial and adjust function object for updated infrastructure.
2016-11-19 18:43:34 +01:00
8b4dfe24f1 Merge remote-tracking branch 'origin/decomposeParDict' into develop 2016-11-19 15:34:36 +01:00
f021d3b665 Removed temporary file 2016-11-18 22:43:52 +00:00
0eca493cb8 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
1254be97e3 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
ee26cbeae9 lagrangian::InjectionModel.C: Corrected indentation 2016-11-18 14:31:18 +00:00
8a9618be52 functionObjects::fieldValueDelta: Corrected documentation 2016-11-18 14:30:42 +00:00
0de810db37 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
c659d99368 ENH: Check if the Lagragian cloud is active before reading massTotal & SOI in InjectionModel.C
If the cloud was inactive, massTotal and SOI were needed even for steady Lagrangian
2016-11-17 11:48:13 -08:00
4b4e912226 ENH: Adding writing of the motionSolver dictionary for sixDoFRigidBodyDisplacementPointPatchVectorField BC 2016-11-17 08:46:27 -08:00
de7b4b96a2 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-17 08:41:38 -08:00
b7c370d76a Correcting header information for IDDESDelta 2016-11-17 08:41:08 -08:00
88c8297211 ENH: Porosity model - output cellZone bounds in the local co-ordinate system. Fixes #300 2016-11-17 13:35:35 +00:00
9a10efc6fa ENH: waveModel - using class varaiable instead of a static to update the model 2016-11-17 10:30:00 +00:00
ce7cc3a744 ENH: Wave code tidying 2016-11-17 08:52:15 +00:00
2d36cc97a7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-16 16:27:36 -08:00
dbb8b04f5d ENH: Correcting Nu correlation for thermoCoupleProbes 2016-11-16 16:27:11 -08:00
d93c037914 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
ae3d2f4d57 ENH: topoSet: clear sets upon writing modified mesh. Fixes #129. 2016-11-16 14:58:46 +00:00
95dc43e5cb ENH: Updated IHCatabria test cases to use new functionality 2016-11-16 14:17:03 +00:00
95c34ea8ff INT: Initial commit for IHCantabria test cases 2016-11-16 14:14:48 +00:00
b3b0704202 ENH: Initial integration of IHCantrabria wave functionality
- Wave models significantly restructured and refactored into a hierarchy of run-time selecatable models
- Gravity no longer hard-coded
- Ability to use any direction as the gravity direction
- Boundary conditions simplified and take reference to the wave model
  - removes a lot of code duplication and new code is ~30% faster
- Removed unused functions

Requires further testing
- Restart behaviour needs to be addressed
2016-11-16 14:05:46 +00:00
95e9467e84 INT: Integration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)
Capabilities include:
- Wave generation
  - Solitary wave using Boussinesq theory
  - Cnoidal wave theory
  - StokesI, StokesII, StokesV wave theory

- Active wave absorption at the inflow/outflow boundaries based on
  shallow water theory

Authors:
- Javier Lopez Lara (jav.lopez@unican.es)
- Gabriel Barajas (barajasg@unican.es)
- Inigo Losada (losadai@unican.es)
2016-11-16 14:02:14 +00:00
d29a8afbec GIT: Resolve merge conflict 2016-11-15 10:04:08 +00:00
d2328f78cf Merge branch 'externalCoupled' into 'master'
External coupled

Improvements and bugfixes for externalCoupledFunctionObject - issues #278 #269

See merge request !72
2016-11-15 09:49:58 +00:00
b20ae1f790 Merge branch 'decomposeParDict' into 'master'
BUG: resolve some decomposeParDict problems (issues #60, #265).

- Cleanup/centralize handling of -decomposeParDict by relocating
  common code into argList. Ensures that all processes receive
  identical information about the -decomposeParDict opton.

- Only use alternative decomposeParDict for simpleFoam/motorBike
  tutorial so that this will be included in the test loop for snappy.

- Added Mattijs' fix for surfaceRedistributePar.

See merge request !73
2016-11-15 09:46:03 +00:00
f3b1676326 TurbulenceModels::ReynoldsStress: Added support for incompressible VoF solvers
and other incompressible mixture-based multiphase solvers.
2016-11-14 17:59:07 +00:00
328204dc1e 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
fff2ee5440 Merge branch 'surface-declutter' into 'develop'
Surface declutter - issue #294

Removing various clutter from surfMesh and triSurface
- unused classes/files (backup copies on non-release repo)
- relocate some triSurface-related classes to where they make more sense, and where they can be reused.
- improve handling of various face types in MeshedSurface and UnsortedMeshedSurface (to bridge the gap to triSurface)
- improve transfer methods for reclaiming/reusing surface allocations

See merge request !77
2016-11-14 12:43:38 +00:00
5ffdb2d4b3 wmake/scripts/AllwmakeParseArguments: Avoid duplicate command message
when Allwmake is called from wmake -all
2016-11-14 12:37:52 +00:00
aeca671672 VectorSpace: Added cmptSqr 2016-11-14 11:22:43 +00:00
5050a6cf10 wmkdep.l: Removed redundant #include 2016-11-14 11:22:00 +00:00
01a0fcb996 wclean: Removed duplicate echo of directory 2016-11-14 08:54:53 +00:00
11ee31d17a wmake: Removed redundant QUIET_OP 2016-11-14 08:39:55 +00:00
2dbfe2a75e wmake: Moved wmkdep messages into rules/General/transform makefile 2016-11-14 08:32:30 +00:00
e112eb503b ENH: provide ModifiableMeshedSurface class
- A special purpose MeshedSurface that exposes the stored values
  for direct modification.

- Its usage should be restricted to special cases where the surface
  needs modifications as an atomic operation.
2016-11-14 00:45:41 +01:00
961b653183 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
b50d7d78f7 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
704620aea1 ENH: simplify check for metis sizes (issue #290)
- Now that the metisDecomp uses the metis definition for float/double,
  do not need to verify the scalar sizes.

Note:
- could drop precision qualifier for metis, scotch installation
  (include, lib) as being unneeded, but it is simpler to keep them
  and continue to use the FOAM_EXT_LIBBIN path
  (in case other ThirdParty software is compiled with different
  precisions).
2016-11-13 19:53:11 +01:00
82faf7eff0 wmake: Indent the 'result' message 2016-11-13 18:42:08 +00:00
80db302666 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
5981836326 renumberMesh/Allwmake: Removed 'set -x' 2016-11-13 15:27:25 +00:00
985abe023e wmake: Declare all makefiles to be specifically GNU make files 2016-11-13 15:18:09 +00:00
8a4c43e377 wmake: suppress "Nothing to be done for" messages 2016-11-13 15:16:42 +00:00
79081ba3bb wmake: Simplified QUIET_MESSAGE function 2016-11-13 11:19:29 +00:00
8b0ec47566 wmake/src/Makefile: Removed additional $E 2016-11-13 10:24:16 +00:00
d676ccf01d wmake/rules/General/yacc: Added QUIET_MESSAGE 2016-11-13 10:23:53 +00:00
52b6c49b4f ENH: provide xfer methods for the meshed surface components.
- the surfMesh classes where originally designed with limited
  (protected) access to the underlying components. This is to
  avoid unintentional direct changes, since these can quickly
  lead to inconsistencies with the topology addressing etc.

  However, if we wish to efficiently adjust surfaces, it is useful
  to modify the components directly.
  The compromise is to provide 'xfer' methods:
    - xferFaces()
    - xferPoints()
    - xferZones()
  These transfer the contents to an Xfer container for reuse, while
  also resetting the topology addressing.  To apply the changes,
  the reset() method is used.
2016-11-12 23:42:17 +01:00
d2b4284271 BUG: all addressing not being cleared when transfer/resetting surfMesh 2016-11-14 00:42:52 +01:00
997f1713cb 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
c56edc262c ENH: add read/write for labelledTri surfaces (issue #294)
- extends existing surfaceFormats to include surfaces with
  labelledTri as their face representation.
2016-11-12 12:05:45 +01:00
d026f90827 ENH: support writing of unsorted surface for AC3D format (issue #294)
- needed for triSurface output (when it comes)
2016-11-13 23:05:43 +01:00
b799b5d65d ENH: surfMesh support for reading compressed binary stl files (issue #294)
- increases coverage.

STYLE: relocate some core pieces into fileFormats
2016-11-13 23:04:38 +01:00
88876e46c1 ENH: better handling of various face types in MeshedSurface (issue #294)
- ensure that MeshedSurface and UnsortedMeshedSurface can also work
  with labelledTri faces.

- nTriangles() convenience method for meshed surfaces

- MeshedSurface::addZonesToFaces() method to copy zone information
  into the labelledTri per-face region storage.
  The goal is to replace the triSurface reading routines with
  run-time selectable ones from surfMesh.
2016-11-12 23:42:00 +01:00
a32eff4e59 ENH: ensure face, triFace and labelledTri all work consistently (issue #294)
- triFace() now initialized with '-1', which makes it behave
  equivalently to face(label).

- supply default region=0 for some labelledTri constructors.
  This allows labelledTri to work more like a triFace and makes it
  easier to use in templated methods and eases conversion from
  triFace to a labelledTri.

- labelledTri(const labelUList&) can now be used when converting
  from a face. It can have 3 values (use default region)
  or 4 values (with region).

- face, triFace, labelledTri now all support construction with
  initializer lists. This can be useful for certain types of code.
  Eg,
      triFace     f1{a, b, c};
      face        f2{a, b, c};
      labelledTri f3{a, b, c};

  Work without ambiguity.
  Also useful for templated methods:

      FaceType f{remap[a], remap[b], remap[c]};
2016-11-12 20:57:48 +01:00
4fbb59de5d STYLE: rename MeshedSurfaceProxyCore -> MeshedSurfaceProxys for consistency
- it doesn't actually contain 'core' code, but rather various
  instances of MeshedSurfaceProxy.
2016-11-12 20:54:50 +01:00
0b4ff45541 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
28c75d8d7d BUG: Field construct from Xfer<Field> fails (issued #298)
- Cannot pass through to underlying list constructor directly.

- As this constructor was broken, there seem to be a number of
  workarounds scattered in the code. Could revisit them in the future
  as part of code-style:

      edgeMesh(const Xfer<pointField>&, const Xfer<edgeList>&);
      CompactIOField(const IOobject&, const Xfer<Field<T>>&);
      GlobalIOField(const IOobject&, const Xfer<Field<Type>>&);
      IOField(const IOobject&, const Xfer<Field<Type>>&);
2016-11-13 14:37:40 +01:00
c09c8e36c7 BUG: unallocated list in triSurface vtk reader (issue #297)
- Condition is there to catch cases where the vtkSurfaceFormat returns
  no zones (which should never be the case), but assigns a fallback
  value without first resizing.
2016-11-13 12:33:47 +01:00
eeedf4a35d DEFEATURE: remove VRML/97 output - superseded long ago by x3d (issue #294) 2016-11-12 23:30:44 +01:00
bd9626f95c DEFEATURE: remove broken OFS surfaceFormat (issue #296, #294)
- This format is fortunately little-used (or never used) since its
  inception.

  Using raw stream operators to write zones, points and faces in a
  single file was not well thought out - the output content varies
  with the Face template type (face, triFace, labelledFace), which
  makes it not very robust at all.

  The static read in OFSsurfaceFormat also has a bug - keeping
  transcribed faces from being passed through.

  Conclusion: removing it makes more sense that repairing and still
  not having something good.

  Do retain stream operators for MeshedSurface and UnsortedMeshedSurface,
  since they are useful for passing around data
  (eg, between processors), but they shouldn't be used for files.
2016-11-12 23:22:47 +01:00
d37e86d185 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
48762a8c58 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
06f638b09d STYLE: provide WM_CC, WM_CXX values for Icc.
- since Icc is actually mentioned in bashrc/cshrc it is consistent to
  set these values accordingly.
2016-11-11 19:25:52 +01:00
1752bdc4b9 CONFIG: bump paraview version to 5.1.2 (July 2016) release 2016-11-11 19:25:25 +01:00
f6e170dcd3 foamDictionary: Corrected error message type 2016-11-11 17:21:13 +00:00
8e30111b44 DEFEATURE: drop reader module support for paraview 3.x (issue #295)
- Cannot test if these older reader modules actually build,
  owning largely to build issues since with paraview 3.14 (Feb 2012)
  and paraview 3.98 (Dec 2012) themselves.
2016-11-11 13:30:30 +01:00
23795a7fb5 PVblockMeshReader: Removed unnecessary 'UpdateGUI' button
The 'Refresh' button updates the blockMesh and the GUI.
2016-11-11 12:17:53 +00:00
fbba6cd714 blockMesh: corrected debug messages
Patch contributed by Mattijs Janssens
2016-11-11 11:19:55 +00:00
7aeaf61cda ENH: getting foamToTecplot working again
- updated code to use current API level 142.

- ThirdParty build of tecio now uses CMake.
2016-11-11 09:42:28 +01:00
a3fd21b306 Merge branch 'feature-convert' into 'develop'
Improvements to the conversion utilities

Various changes associated with issue #204.

* Reduced code duplication for handling prostar conversion and IO
* Simple conversion to/from AVL/FIRE geometries
* New library basis for conversion to/from CCM geometries - handles multiple regions, conformal interfaces etc. No support for film or 2d shell geometries
* Improved infrastructure for writing VTK content. Will propagate usage through other parts of the code in the future.

See merge request !76
2016-11-10 14:34:30 +00:00
af02ff3600 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 15:23:21 +00:00
2a9c95e56e BUG: surfaceAdd: incorrect size when not merging regions. Fixes #144. 2016-11-09 15:22:59 +00:00
a6665e395b Merge branch 'feature-keep-sampled-pids' into 'develop'
Feature keep sampled pids

Rebased version of merge request !58, following ticket closure for issue #104 .

See merge request !75
2016-11-09 14:58:42 +00:00
aabf0094a5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 14:43:14 +00:00
0026347c0e ENH: cloudSet: report the number of missing points 2016-11-09 14:42:12 +00:00
c7d7cbca28 BUG: foamConfigurePaths -foamInstall fails (related to issue #280)
- relied on 'export' keyword, which was removed in commit b844867112

--
ENH: foamConfigurePaths support for additional items:

    -label 32|64            specify label size
    -system name            specify 'system' compiler to be used
    -thirdParty name        specify 'ThirdParty' compiler to be used

    -boost ver              specify boost_version
    -boostArchPath dir      specify BOOST_ARCH_PATH
    -cgal ver               specify cgal_version
    -cgalArchPath dir       specify CGAL_ARCH_PATH
    -clang ver              specify clang_version for ThirdParty Clang
    -cmake ver              specify cmake_version
    -fftw ver               specify fffw_version
    -fftwArchPath dir       specify FFTW_ARCH_PATH
    -metis ver              specify METIS_VERSION
    -metisArchPath dir      specify METIS_ARCH_PATH
2016-11-09 14:38:15 +01:00
3b3e19b3f3 .gitignore: Ignore emacs projectile configuration files 2016-11-09 11:23:20 +00:00
ad476af9b3 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
5e69858283 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
b048cacc7b ENH: robuster handling of system or central installation (issue #290)
- Follow similar pattern as per boost/CGAL with the '*-none' to disable,
  and '*-system' for system installations.

  Also support central non-ThirdParty installations by specifying the
  version as "*-system", but also providing the fully qualified
  *_ARCH_PATH too.

--
ENH: Verify label and scalar sizes used in the metis header.

- ensure they match with expected values, which can be obtained via
  the OpenFOAM definitions for WM_LABEL_SIZE and WM_PRECISION_OPTION
2016-11-09 11:10:53 +01:00
66678267dc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 09:24:15 +00:00
6be5816815 STYLE: snappyHexMeshDict: duplicate information. Fixes #286. 2016-11-09 09:23:46 +00:00
b06c4280c7 Revert "twoPhaseEulerFoam::EEqns: Updated pressure-work"
This reverts commit f7996e45a0.
2016-11-09 08:44:36 +00:00
0c02a265a2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-08 14:37:55 +00:00
a95bf1be58 COMP: Minor edit to avoid compiler warning 2016-11-08 14:37:39 +00:00
407a47572e ENH: thermoCoupleProbes - store properties under FO name to avoid clashes with other instances 2016-11-08 14:37:01 +00:00
57d81c179c BUG: runTimePostProcessing - updated due to changes in stateFunctionObject 2016-11-08 14:36:14 +00:00
f7996e45a0 twoPhaseEulerFoam::EEqns: Updated pressure-work
See commit b5206472b5
2016-11-07 23:14:13 +00:00
cb872a90af Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-07 14:25:55 +00:00
9d63e7f78c ENH: cloudSet: report missing samples. (fixes #228) 2016-11-07 14:15:27 +00:00
6ef91c9489 ENH: cloudSet: report missing samples. (fixes #22) 2016-11-07 14:15:27 +00:00
a20a17f54b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-07 09:29:36 +00:00
82fd902b3e ENH: snappyHexMeshDict: fix comment 2016-11-07 09:29:22 +00:00
a06cef31fa 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
da3deb60c8 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
74cfb6bf34 PVblockMeshReader: Remove old vertex labels on refresh 2016-11-05 21:41:32 +00:00
fe415ff8f7 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
fb95a08e20 indexedOctree: Corrected comment
Resolves bug-report http://bugs.openfoam.org/view.php?id=2319
2016-11-05 21:00:16 +00:00
c9a8ff349f 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
0ed96603d4 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
a21c3d6332 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
1f2ba25184 STYLE: inconsistency in scotch, metis library locations (issue #290)
- Only reference the FOAM_EXT_LIBBIN locations when linking.
  The respective SCOTCH_ARCH_PATH/lib, METIS_ARCH_PATH/lib locations
  either do not exist, or are possibly inconsistent and won't be
  seen at run-time anyhow.

- Incorporate decompose/metisDecomp/Allwmake into the top-level
  decompose/Allwmake
2016-11-04 20:01:44 +01:00
3ab919d407 paraFoam -block: Added support for vertex and block names
Patch contributed by Mattijs Janssens
2016-11-04 17:29:02 +00:00
7781656347 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
9efe94407f foamLog: Added clockTime
Patch contributed by Paul Edwards, Intel
2016-11-04 14:33:47 +00:00
535831422e 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
91d5efdc38 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-04 12:28:32 +00:00
78964897ce BUG: readFields function object - corrected reading of fields from file. Fixes #289 2016-11-04 12:28:28 +00:00
b5206472b5 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
e8f6099a1f COMP: Newer CGAL versions break current CGAL wmake rules (issue #288)
On 64-bit systems, the system installations of boost, cgal are under
lib64/. The behaviour for a ThirdParty build is mostly lib/ but this
can also be changing.

    Boost 1_62_0 and older build into 'lib/'.
    CGAL-4.9 builds into 'lib64/', older versions into 'lib/'.

Future-proof things by using lib$WM_COMPILER_LIB_ARCH for boost and
cgal build rules, and forcing these as build targets in the ThirdParty
makeCGAL as well.

--
STYLE: check for boost/version.hpp, CGAL/version.h instead their directories
2016-11-04 12:05:35 +01:00
55d3950b12 BUG: mesh reader does not preserve physicalType (closes #287)
- was incorrectly writing it as "startFace", which would be
  immediately overwritten anyhow

STYLE: avoid noisy output when adding the boundary 'type' in mesh conversion.
2016-11-03 15:09:22 +01:00
d2fc2c9edc ENH: improved infrastructure for writing VTK content
Note: classes are prefixed with 'foamVtk' instead of 'vtk' to avoid potential
conflicts with VTK itself.

foamVtkCore
~~~~~~~~~~~
- General very low-level functionality.

foamVtkPTraits
~~~~~~~~~~~~~~
- Traits type of functionality for VTK

foamVtkOutputOptions
~~~~~~~~~~~~~~~~~~~~
- The various format output options as a class that can be passed to
  formatters etc.

foamVtkCells
~~~~~~~~~~~~
- Intended for unifying vtkTopo and PV-Reader code in the future.
- Handles polyhedron decompose internally etc

foamVtkOutput, foamVtkFormatter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Output helpers.
- Selector for individual formatters.
  Currently write all scalar data a 'float' (not 'double'). Can
  revisit this in the future.
2016-11-03 14:24:00 +01:00
82f9089b6a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-03 12:12:35 +00:00
e3420b8a27 STYLE: Corrected typo 2016-11-03 12:12:27 +00:00
c4c57690c6 ENH: function objects - use Info on construction/read, and Log for all other messages 2016-11-03 12:11:20 +00:00
f0107b47f5 Merge branch 'ensight-preview' into 'develop'
Reworking of the ensight infrastructue and new ensightWrite function object



See merge request !70
2016-11-03 08:24:52 +00:00
15047d60ae Merge branch 'surface-area' into 'develop'
Provide common face area/normal support in PrimitivePatch

For polyPatch, both the faceAreas() and faceCentres() are masked by their subField equivalents.
Since there is no polyPatch method for magFaceAreas(), the PrimitivePatch method will be seen.

See merge request !74
2016-11-03 08:20:43 +00:00
c299b89ff8 STYLE: note new magSf() for use in surfaceNoise
- still needs to be applied and tested
2016-11-03 08:05:31 +01:00
54c40e7393 ENH: consistent output format for coupled geometry description (issue #278)
- In the corner case with few faces or points, the normal List I/O
  results in a compact list representation.

  This is less than desirable for external programs with simple
  line-based parsers.

- Write exactly the following

*Faces*
// Patch: <word-Region> <word-Patch>
<int-nFaces>
(
<int-faceSize>(<int> .. <int>)
...
)

*Points*
// Patch: <word-Region> <word-Patch>
<int-nPoints>
(
(<float-x> <float-y> <float-z>)
...
)

STYLE: only use serial form of createExternalCoupledPatchGeometry in tutorial

- less confusing for the user, who wonders why it is being done twice.
2016-11-02 17:26:25 +01:00
40252e99aa COMP: surfaceCheck: edgei vs edgeI 2016-11-02 14:55:13 +00:00
b6ecddedaf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-02 14:48:25 +00:00
e8e0cfb416 ENH: mergeMeshes: in parallel make sure to put processor patches last. Fixes #239 2016-11-02 14:47:55 +00:00
880c136af4 ENH: applyBoundaryLayer - simplified setting of internal velocity field 2016-11-02 13:06:53 +00:00
ac49daaf4d Merge remote-tracking branch 'origin/develop' into develop
Conflicts:
	applications/utilities/surface/surfaceCheck/surfaceCheck.C
2016-11-02 12:06:05 +00:00
40ed1952c3 ENH: noise models - enable the use of environment variables in input file names. Fixes #285 2016-11-01 20:51:51 +00:00
b9d5e5bab1 STYLE: tutorial updates 2016-11-01 16:55:58 +00:00
74194c8391 STYLE: forces FO - updated to form that does not create a file ptr by default 2016-11-01 16:49:50 +00:00
d3f0cb33d9 BUG: forces FO - corrected after bugs introduced by last merging effort 2016-11-01 16:36:15 +00:00
b4b4e1a02c 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
c10177fc6f BUG: writeFile - fileName was not set after last merge 2016-11-01 16:05:18 +00:00
7c76819f39 STYLE: re-applied Sergio's restructuring of interDyMFoam tutorials 2016-11-01 15:57:58 +00:00
f80e5164d8 ENH: Tutorial corrections 2016-11-01 15:40:27 +00:00
99151638e3 STYLE: moved les tut file to LES directory 2016-11-01 15:36:11 +00:00
40b8f365b5 STYLE: moved ras tut case to RAS directory 2016-11-01 15:33:19 +00:00
adaa14a8d9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-01 14:46:56 +00:00
d709dce799 ENH: DEShybrid - exposed threshold limit for B function to user. Patch contributed by Marian Fuchs 2016-11-01 14:46:51 +00:00
902f333b06 BUG: VectorSpaceI.H - corrected invalid code 2016-11-01 14:41:11 +00:00
c499de996b ENH: Removed unused file 2016-11-01 14:29:20 +00:00
9a155dd0d5 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
d8e9decdcc 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
46b8bfb25f codedFunctionObject.H: Corrected docs
Resolved bug-report http://bugs.openfoam.org/view.php?id=2313
2016-10-31 15:45:59 +00:00
1b1b2ba2b7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-31 08:43:38 -07:00
83028b94b9 ENH: Adding outletMappedUniformInletHeatAddition 2016-10-31 08:42:43 -07:00
c90e6ed48c ENH: surfaceCheck: additional printing. Additional self-intersect test with reverse ray 2016-10-31 15:41:34 +00:00
e0574c471f chemFoam: Construct fields on the mesh database for consistency 2016-10-31 13:15:48 +00:00
4bcb0d71ca ENH: Provide boundary field writeEntries method (issue #283)
- Write the individual contents, without a surrounding 'boundaryField'
  block. Similar to what dictionary::writeEntries() offers.
2016-10-31 13:09:54 +01:00
a6918385b7 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
c836a017e6 ENH: allow specific restart time for field averaging (issue #282)
- Can currently have a periodic restart, but for simulations with a
  known run-up, it can be useful to have a specific time to restart
  the averaging.

- Note that the restartTime acts as a 'single-shot'. If the
  restartTime is already in the past when a simulation is started, it
  is ignored. If, during a simulation, the restartTime is crossed, it
  will be triggered and then set itself to be ignored in the future.
2016-10-31 08:26:06 +01:00
a05493db41 CONFIG: csh not unsetting old paraview/cmake environment (related to #281)
- On the first call, ParaView_DIR is unset and thus the clean-path
  fails with the warning "ParaView_DIR: Undefined variable."

  This looks messy, but is of no _major_ consequence since paraview
  doesn't need to be removed anyhow. The only slight risk is that the
  path to a third-party cmake might not be cleaned.

- Patch as per Bruno's suggestion.
2016-10-31 07:00:57 +01:00
18d2b2e0c8 etc/cshrc: Removed echo $FOAM_INST_DIR 2016-10-30 09:38:23 +00:00
429ca91216 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
b844867112 BUG: etc/bashrc incorrect behaviour if sourced locally (issue #280)
- It is incorrect to prefix the assignment with an 'export' since this
  automatically marks the overall command as successful and circumvents
  the fallback.

  There is no simple way to have proper behaviour when sourced with a
  local directory path, but at least it now uses the fallback.

  It is still easy to wreak the mechanism with valid but confusing input.
  For example,

     ". /path/to/openfoam/etc/././bashrc"

  The only real certainty is that "${BASH_SOURCE%/*}"
  should point to the 'etc/' directory. In which case,

      cd ${BASH_SOURCE%/*}    # <- now in the etc/ directory
      pwd=$(pwd -P)           # <- fully-qualified path to etc/
      pwd=${pwd%/*/*}         # <- up two parent levels

  - This works with ". ./bashrc", but fails with ". bashrc"
    (probably not so common).
  - Con: The construct requires an additional sub-shell.
2016-10-28 16:48:30 +02:00
00939bcba9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-28 14:56:16 +01:00
a224366c28 BUG: etc/bashrc - use \cd to avoid problem when cd is aliased. Fixes #280 2016-10-28 14:55:46 +01:00
be2a4319bd STYLE: rationalize tutorial CleanFunctions (related to issue #279)
- include cleanup of other postProcessing directories:
  * Ensight, EnSight, ensightWrite

- don't need to remove files that cleanSnappyFiles already removed:
  * 0/cellLevel 0/pointLevel

- bundle removal of constant/ items together:
  * constant/cellDecomposition constant/polyMesh constant/tetDualMesh
2016-10-28 13:23:13 +02:00
9ab0406b47 BUG: tutorial RunFunctions ignore non-standard decomposeParDict (issue #279) 2016-10-28 13:22:19 +02:00
a4ac4ac268 STYLE: Tutorial cleanup 2016-10-28 12:16:29 +01:00
f2ce1fa9ac 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
aca0b1ca04 COMP: ensight writer compilation for 64-bit labels (issue #263)
GIT: added missing source file.

ENH: add tutorial example under incompressible/simpleFoam/motorBike
2016-10-28 11:49:05 +02:00
053b22a969 STYLE: incorrect project setting in etc/bashrc 2016-10-28 10:38:48 +02:00
19758c666f ENH: Adding lumpedMassWallTemperature BC and adding usage tutorial in buoyantPimpleFoam/hotRoom 2016-10-27 15:06:42 -07:00
aace62a1b8 Revert "VectorSpace: Added printing of out-of-range index"
This reverts commit d881d2afe6.
2016-10-27 20:57:10 +01:00
2ba5a7c3bc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-27 08:50:38 -07:00
ccf3b9db13 BUG: Changing init for thermocouple FO. Changing radiation.correct in fireFoam to allow
correct case re-start
2016-10-27 08:49:47 -07:00
91459881a3 ENH: streamLineBase - set tracking velocity field name to U by default 2016-10-27 16:15:43 +01:00
99c62425a9 ENH: streamLineBase - set tracking velocity field name to U by default 2016-10-27 16:15:26 +01:00
b2ee629a94 BUG: removed oddness in pointer allocations (ensight parts).
- manifest in some parallel operations.

STYLE: update foamToEnsight, foamToEnsightParts to use C++ initializer_list

- avoid warning message when removing a non-existent directory (ensight output).
2016-10-27 15:11:30 +02:00
50b80aa1b8 MRG: Resolved git conflict 2016-10-27 10:06:35 +01:00
bc03c94f4e ENh: Adding clone member to sixDoFSolvers 2016-10-26 14:53:26 -07:00
d5a9fea36e Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-10-26 11:56:31 -07:00
f223e8c6f0 ENH: Changing radiation correct in YEEq.H in fireFoam.
Adding clone member functions to motion solvers
2016-10-26 11:45:57 -07:00
f4d80786eb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-26 08:31:08 -07:00
aa0b3934b0 ENH: snappyHexMeshDict: improved comment 2016-10-26 16:03:41 +01:00
efb7cd84f3 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-10-26 15:55:24 +01:00
a992eafb9f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-26 15:54:11 +01:00
5488298771 ENH: effectivenessHeatExchangerSource - calculate upstream average temperature by default 2016-10-26 15:54:03 +01:00
708bfda5cb MRG: Resolve conflict when merging branch merge-foundation 2016-10-26 15:48:39 +01:00
af81184ecf MRG: Resolve conflict with latest foundation merge 2016-10-26 15:37:15 +01:00
3b96a557e2 CONFIG: remove non-POSIX use of 'type' (issue #176)
- In the foundation version they introduced a construct to handle
  the transition from 'wmRefresh' as an alias to 'wmRefresh' as
  a shell function. This transition is unnecessary for OpenFOAM+
  since 1606 used wmREFRESH (not wmRefresh) as an alias.

  For portability it is important to avoid this non-POSIX
  "type -t". It causes issues with dash and with zsh
  (mentioned in issue #277).

        type -t dash  ->   -t: not found
        type -t zsh   ->  zsh: bad option: -t

Note: zsh users may still noticed other problems.
For example, the POSIX 'unset -f' normally has no output, but in zsh
it reports an error and has exit code 1 if the function was not
previously defined. Whereas in POSIX (including bash, dash) it only
returns non-zero if the name(s) could not be unset.
2016-10-26 12:14:11 +02:00
a375d6b2ed 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
52d0289ee1 BUG: resolve some decomposeParDict problems (issues #60, #265).
- Cleanup/centralize handling of -decomposeParDict by relocating
  common code into argList. Ensures that all processes receive
  identical information about the -decomposeParDict opton.

- Only use alternative decomposeParDict for simpleFoam/motorBike
  tutorial so that this will be included in the test loop for snappy.

- Added Mattijs' fix for surfaceRedistributePar.
2016-10-25 18:19:19 +02:00
d881d2afe6 VectorSpace: Added printing of out-of-range index
Patch contributed by Mattijs Janssens
2016-10-25 17:08:11 +01:00
8a87558577 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
3d5fb08693 ENH: provide separate geometry description per region/patch (issue #278)
- Also fixed bug noted in issue #269

- Previous implementation had all faces together, which made
  it difficult (impossible) for external applications to
  figure out which geometry was being referred to.

- Provide separate region/patches as follows:

    // Patch: <regionName> <patchName>

  For example,

    // Group: coupleGroup
    // Patch: heater minY
    8( ... )

  The region-name is always present, even if there is only one region.

- This change is a partial reversion to the behaviour in 2.4.x, except
  that we can now also handle multi-region geometries.

  Changing the leading comment from "# " to "// " facilitates parsing
  of the files with OpenFOAM itself if necessary.
2016-10-25 15:43:46 +02:00
8e2b13386b ENH: enable 'status=done' when finishing an externalCoupled FO
- This provides a mechanism for the external code to detect when
  OpenFOAM is done.

- Adjust tutorial to use the mechanism. Also test in parallel.
2016-10-25 15:43:27 +02:00
567e1f2dbf ENH: Tutorial update 2016-10-25 14:26:20 +01:00
85e2b7e94b BUG: thermoCoupleProbes - can only create the solver after setting the number of samples 2016-10-25 14:25:40 +01:00
196a4ea4e5 ENH: setTimeStep: adjust timestep for adjustableRunTime writeInterval. Fixes #268. 2016-10-24 13:07:51 +01:00
2f2fa53b09 ENH: thermoCoupleProbes - simplified initialisation 2016-10-21 17:02:07 +01:00
3c9e050d6e ENH: stateFunctionObject - separated dictionary access and updated api to return result status for retrieving properties 2016-10-21 17:01:35 +01:00
1b51b7743b 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
eed875e1fa 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
fb0b764466 STYLE: Documentation updates 2016-10-20 11:08:50 +01:00
bfaa9da93c 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
2857e9512f ENH: propagate face area to sampling (issue #266)
- make top-level Sf(), magSf(), Cf() pure virtual since the
  sub-classes will always be providing the face/point storage,
  with either triSurface or MeshedSurface in the background
2016-10-20 08:58:27 +02:00
fb9f93dd7c ENH: propogate face area support into surface-type meshes (issue #266)
* MeshedSurface / surfMesh / triSurface

- use shorter method names similar to those from volume meshes:

      Sf(), magSf(), Cf()

  instead of the longer ones from PrimitivePatch:

      faceAreas(), magFaceAreas(), faceCentres()

- similar names throughout to ease switching between triSurface and
  MeshedSurface storage.
2016-10-20 08:36:02 +02:00
caba74dcfa ENH: add face area support into PrimitivePatch (issue #266) 2016-10-20 08:32:05 +02:00
95347013a8 ENH: function object clean-up 2016-10-19 15:28:55 +01:00
22dfcb7bc6 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
4408d47075 MRG: Merged develop branch and resolved conflicts 2016-10-19 13:33:00 +01:00
fdf326f88c 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
e24917a7af Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-19 13:20:52 +01:00
a7bdbccaed STYLE: Corrected typo 2016-10-19 13:20:18 +01:00
509517e996 ENH: gmshToFoam: Updated for line entries 2016-10-19 13:20:02 +01:00
3c496ae4c7 ENH: noiseModel: Updated check for uniform time step size 2016-10-19 13:19:34 +01:00
9d21d5b55b Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-19 11:52:49 +01:00
b8bb55507e ENH: Coded fvOption - updated construction of the redirectFvOption to simplify user input 2016-10-19 11:52:00 +01:00
08d78d47ef blockMesh: Added checks for duplicate and unmatched curved-faces 2016-10-19 09:54:19 +01:00
175c7744c0 STYLE: adjust mergePoints to ease adoption of different list types (issue #250)
- A preliminary minor adjustment only.
2016-10-19 10:42:47 +02:00
7c10b89a56 Merge branch 'initialier_list-updates' into 'merge-foundation'
ENH: Support more C++11 initializer lists (issue #261)

DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future


Some tests are included

See merge request !67
2016-10-18 19:31:45 +01:00
1967fd3dad ENH: Support more C++11 initializer lists (issue #261)
DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future
2016-10-18 20:08:37 +02:00
d2b96d88da 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
7a5dff9167 Merge branch 'endian_base64' into 'merge-foundation'
Common endian handling. Provide base64 output encoding.



See merge request !71
2016-10-18 17:05:18 +01:00
919c486871 blockMesh: Added check for duplicate curved-edge definitions 2016-10-18 15:18:52 +01:00
3773db53e9 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
b84618a3c8 blockMesh: Added check for curved-edge/block-edge consistency 2016-10-18 13:05:20 +01:00
03b5d5c108 BUG: foamCleanPath problem if path contains @ (closes #264)
- Can occur with some user names, or mounted paths.
  Resolve by using '?' for the separation character.

  Since '?' is a shell-glob, it is highly unlikely to occur appear in
  filenames.  Additionally, it is not a meta-character in standard sed,
  nor in the GNU extension (which uses '\?').
2016-10-18 09:52:37 +02:00
fe6ea956f7 COMP: compile issue with gcc-5.2 (closes #273)
- Superfluous #include "FieldFunctions.H" provokes warnings/errors
  with newer gcc.
2016-10-17 21:50:30 +02:00
cfe909d77b 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
39c1722ec3 BUG: Corrected error from commit C45d092f when converting namespaces 2016-10-17 13:19:45 +01:00
4ee8ba4ae6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-17 12:28:33 +01:00
82c3eed531 BUG: snappyHexMesh: findCellZoneTopo was copying same value but still setting
changed flag which caused infinite while loop. Background info:
- findCellZoneTopo tries to find for all named surface intersections
which side of the face is in the faceZone
- i.e. it tries to make the cellZone consistent with the faceZone
(to fix small problems)
- this had some logic to assign the neighbour cellZone to the owner cellZone
- which didn't check for the neighbour being the same value as the owner
- but still set a 'changed' flag which caused the loop to never end.
2016-10-17 12:25:03 +01:00
c4a4c38858 ENH: subTriSurfaceMesh: fixed comment 2016-10-17 12:24:11 +01:00
33d9b7e867 Add base64 encoding layer (issue #272)
- Can be attached to any currently open std::ostream.
2016-10-17 12:05:29 +02:00
2c06a905ab Cleanup endian support (closes #271)
- Place common code under OSspecific.

By including "endian.H", either one of WM_BIG_ENDIAN or WM_LITTLE_ENDIAN
will be defined.

Provides inline 32-bit and 64-bit byte swap routines that can be
used/re-used elsewhere.

The inplace memory swaps currently used by the VTK output are left for
the moment pending further cleanup of that code.
2016-10-17 12:02:01 +02:00
dccee2bae7 tutorials/mesh/blockMesh/sphere7: New 7-block sphere mesh example
Contributed by Georg Skillas
2016-10-16 15:14:26 +01:00
550206b5fd blockMesh::BSplineEdge: Updated #ifndef BSplineEdge_H to #ifndef blockEdges_BSplineEdge_H 2016-10-15 14:31:06 +01:00
2339d607ee blockMesh: Added support for run-time selectable methods to set the block vertex locations 2016-10-15 14:24:36 +01:00
d750eb4e5c GIT: remove vagabond files from compartmentFire tutorial 2016-10-14 10:26:20 +02:00
009203188f 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
12d0707b84 foamCleanTutorials: Simplified cleaning the mesh by removing the constant/polyMesh directory 2016-10-13 15:02:32 +01:00
7edc2495e0 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
eb5e2c923c snappyHexMesh: Added support for scotch redistribution
Requires scotch-6.?.?
2016-10-12 16:28:26 +01:00
e08c9ab8b7 reactingTwoPhaseEulerFoam wallBoiling.* tutorials: only run start-up in test-mode 2016-10-11 08:44:36 +01:00
8dd18cc077 vtkPVblockMeshConvert: Updated to use the new blockDescriptor::edgesPointsWeights 2016-10-09 17:52:52 +01:00
e53520ecbf blockMesh::blockDescriptor: Generate the edge points and weights on demand 2016-10-09 15:16:41 +01:00
2997bfbdfd 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
42c2e6baca 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
3ea71fb56a 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
50b549f368 blockMesh: rationalizing class and member names 2016-10-08 19:48:39 +01:00
da70f6734a blockMesh: Simplify reading of curvedEdges 2016-10-07 20:31:36 +01:00
ec5eec3a27 Allrun modification for compartmentFire tutorial 2016-10-07 12:02:24 -07:00
d2c53f354e Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-07 11:57:29 -07:00
6a8948bb4f Changing permissions 2016-10-07 11:56:11 -07:00
be148fa44f File styles and permissions 2016-10-07 11:54:11 -07:00
97c0acd643 ENH: Adding compartmentFire and thermo pyrolysis model 2016-10-07 11:46:51 -07:00
53faca832d Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-07 10:20:45 -07:00
b9b2ac694a ENH: Adding eddyDissipationDiffusionModel, thermocouple probe and thermocoupleTestCase 2016-10-07 10:17:43 -07:00
91ed12d91c ENH: update nacaAirfoil tutorial to use prostar4 mesh
- Replaces prostar3 mesh format, which we no longer support.
- Update initial conditions to use regex and include file.
2016-10-07 19:11:50 +02:00
8f22c5d1ec 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
70be3aa189 foamDictionary: New '-remove' to remove a dictionary entry
Patch contributed by Mattijs Janssens
2016-10-07 17:35:39 +01:00
ba6f59a79e ENH: provide isParallel test in RunFunctions
- allows writing Allrun scripts that can be easily tested in
  serial or parallel
2016-10-07 18:00:00 +02:00
9ae5e37a63 ENH: residuals function object - store results for further processing 2016-10-07 14:21:00 +01:00
76742baf40 GIT: Resolved conflict 2016-10-07 12:27:03 +01:00
8ff2e8f14d BUG: Corrected assignment to reference object 2016-10-07 12:26:09 +01:00
9df2523ef5 Merge branch 'issue258-adjustment' into 'merge-foundation'
STYLE: reinstate targetType when building paraview modules (related to #258)

- potentially useful for static builds

See merge request !68
2016-10-07 11:02:41 +01:00
831cd15f03 Merge branch 'merge-preconvert' into 'merge-foundation'
Merge preconvert

Very basic cleanup of some of the mesh conversion infrastructure prior to binging in large pieces of code.

- Remove ancient samm, pro-am, prostar3 routines as being unused and unsupportable (since the original products ceased existence over 10 years ago).
- Open protected access to some meshReader bits, to help when implementing polyhedral readers.
- Drop meshReaders/meshWriters namespace, use fileFormats instead.
- Reorganize file-structure within src/conversion.

See merge request !69
2016-10-07 11:02:07 +01:00
3915942195 ENH: cleanup ensightParts to use updated infrastructure (issue #241).
- Use ensightCase for case writing.
  Rebase ensightPartCells/ensightPartFaces on
  ensightCells/ensightFaces routines.

- Greatly reduces code duplication potential source of errors.
2016-10-07 11:24:47 +02:00
9b3f36d593 STYLE: reinstate targetType when building paraview modules (related to #258)
- potentially useful for static builds
2016-10-07 10:51:32 +02:00
b92754311a reactingTwoPhaseEulerFoam::IATE: Added phaseChange source
to handle the effect of condensation and evaporation on bubble size
2016-10-07 09:34:35 +01:00
803f4e66c2 plane: Make constructors explicit
Resolves bug-report http://bugs.openfoam.org/view.php?id=2284
2016-10-06 14:20:59 +01:00
d6b404dba2 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
749d68f888 Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation
Conflicts:
	src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
2016-10-05 17:58:13 +01:00
762a202810 BUG: snappyHexMesh: assing to boundaryField. Fixes #260. 2016-10-05 17:52:54 +01:00
07bbb1852e STYLE: Updated Doxygen comment markers 2016-10-05 15:16:12 +01:00
9ae7fd8725 BUG: corrected constructor 2016-10-05 15:15:55 +01:00
54da8848ba ENH: add in ensightWrite function object (issue # 241)
- Currently no writing of clouds.
  Managing restarts needs more thought.
2016-10-05 13:13:23 +02:00
b04a6a05e5 GIT: relocate ensight components to library locations 2016-10-05 13:13:12 +02:00
e57ca15bda ENH: complete reworking of foamToEnsight to make into a library (issue #241)
- eliminate ensightAsciiStream, ensightBinaryStream, ensightStream in
  favour of using ensightFile and ensightGeoFile classes throughout.

- encapsulate mesh-parts sorting with the ensightCells, ensightFaces
  class.

- handle of patches/faceZones entirely within ensightMesh for a lighter
  interaction with field output. Both faceZones and point fields need
  more testing to see if they behave properly for all cases.

- move some output functionality into its own namespace
  'ensightOutput', move into a library.

- use the ensightCase class to open new ensight output streams
  in the proper sub-directory locations.
2016-10-06 10:43:22 +02:00
e1240ece7b ENH: add ensightCase management to fileFormats
- part of generalizing the ensight infrastructure (issue #241)

- General bookkeeping when creating ensight files.
2016-10-05 12:59:24 +02:00
0d66ffcce8 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
96d86ec6f1 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
daf57eddf6 alphatWallBoilingWallFunctionFvPatchScalarField: Evaluate alphatConv_ outside loop to improve speed
Patch contributed by Juho Peltola
2016-10-04 16:37:32 +01:00
f8d8b3ad5e Merge branch 'issue258-merge-foundation' into 'merge-foundation'
BUG: paraview plugin not being built in merged version (closes #258)

change in configuration got missed

See merge request !66
2016-10-04 15:28:17 +01:00
68ad4c50b2 BUG: paraview plugin not being built in merged version (closes #258) 2016-10-04 15:58:24 +02:00
6823cb02ab Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-04 14:49:34 +01:00
58d16674a0 COMP: Corrected Clang-reported errors 2016-10-04 14:49:26 +01:00
a5fb96f124 Merge branch 'output-format' into 'merge-foundation'
Output format

Output changes (issues #253 , #254 , #255 , #256) as well as minor change (issue #257).
Usage of the new methods to be applied as a later patch.

See merge request !65
2016-10-04 10:28:29 +01:00
8016af3704 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
7c106cd43e GIT: Resolved conflict 2016-10-04 09:45:46 +01:00
55c9238259 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-04 09:35:11 +01:00
35fc264a2e Merge branch 'feature-wallDistanceCalcInterval' into 'develop'
ENH: wallDist - added option to evaluate every XXX steps

Added functionality to update the wall distance every XXX steps

Note: only applies to movePoints() - topology change bypasses the update interval and triggers a re-calculation
Syntax:
```
wallDist
{
    method          ...
    updateInterval 5; // optional - default is 1
}
```

Test case: [mixerVesselAMI2D.tgz](/uploads/c0bee1decc0337018272f3566b6a4416/mixerVesselAMI2D.tgz)

See merge request !62
2016-10-04 08:58:05 +01:00
6c9622b356 Merge branch 'doxygen-style' into 'merge-foundation'
STYLE: minor adjustments to doxygen comments



See merge request !64
2016-10-04 08:45:37 +01:00
3e0e4532fd STYLE: minor adjustments to doxygen comments 2016-10-04 09:16:08 +02:00
6c3c2f1399 icpc rules: removed another unimportant warning 2016-10-04 08:10:28 +01:00
9c2892cd82 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
8dc3bbe6fd ENH: remove unneeded lines in List binary output (issue #256)
Writing an empty list in binary results in unnecessary newlines that
make the output 'noisier'.

Old output
~~~~~~~~~~
ASCII
    someEmptyList___0();

Binary
    someEmptyList___
    0
    ;

Updated
~~~~~~~
ASCII
    someEmptyList___0();

Binary
    someEmptyList___0;
2016-10-04 08:40:55 +02:00
56787c8074 STYLE: extraneous UINT64_MIN macros (issue #257) 2016-10-03 17:20:14 +02:00
96c3a09024 ENH: provide direct access to raw pointer/reference from autoPtr (issue #252)
All of the access methods for autoPtr include validity checks and will
fail if the underlying point is NULL. In some cases, however, we'd
like to retain the automatic deletion mechanism, but still address a
nullptr. This is mostly for cases in which a file-stream should be
allocated, but only on the master process. For these cases we'd still
like to pass through and reference the underlying pointer (eg, to
obtain the correct method call) without tripping the pointer check
mechanism. If we attempt to use the ptr() method, the autoPtr memory
management is bypassed and we risk memory leaks.

Instead provide an alternative mechanism to obtain the raw underlying
pointers/references. Use rawPtr() and rawRef() for these potentially
useful, but also potentially dangerous, operations.
2016-10-03 16:38:19 +02:00
598da1ac25 ENH: surfaceCheck: added -outputThreshold option to manage file writing 2016-10-03 13:55:30 +01:00
6a489bd8a6 Updated header 2016-10-03 09:12:55 +01:00
48a2356953 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
182f0a72ae MRG: Incremental foundation merge 2016-10-03 08:27:06 +01:00
3df66b25ec STYLE: minor updates 2016-10-03 08:24:22 +01:00
dd31eb9e6e ENH: Adding autoMap and rMap tp greyDiffusiveViewFactorFixedValueFvPatchScalarField 2016-09-30 11:03:10 -07:00
3f4f05b6e0 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
ec9883f389 Field: Added constructor from UIndirectList
Patch contributed by Mattijs Janssens
2016-09-30 18:48:26 +01:00
6a3d6e52ea Merge branch 'adjust-config-foundation-merge' into 'merge-foundation'
Adjust config foundation merge

Rationalize config files, foamy build, tutorials.

See merge request !63
2016-09-30 17:06:34 +01:00
22a7a70256 Merge remote-tracking branch 'origin/merge-foundation' into adjust-config-foundation-merge 2016-09-30 17:50:20 +02:00
4bdf712b35 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
e98e372f8e ENH: Tutorial updates 2016-09-30 15:31:35 +01:00
54042b08df ENH: Function objects - first pass at updating read functionality
Note: should be using the result of the parent::read(dict) when
deciding whether to read local entries...
2016-09-30 13:24:58 +01:00
839f14afcd ENH: Code clean-up 2016-09-30 12:30:02 +01:00
64560defc5 ENH: wallDist - suppress calc if updateInterval is zero 2016-09-30 11:47:38 +01:00
e072a2be33 ENH: add -noZero option for foamToEnsight* conversion
- The zero directory is incomplete, skip these entries.
2016-09-30 12:44:00 +02:00
bd0e982d99 MRG: Initial commit after latest Foundation merge 2016-09-30 11:16:28 +01:00
1e00bd7f45 GIT: resolve merge errors to ddt2, zeroGradient functionObjects
- the function objects are from issue #224 and issue #235
2016-09-30 11:26:58 +02:00
3c86995198 COMP: remove boost/mpfr/gmp linkage for foamyMesh components.
- CGAL itself includes its library dependencies, we only need to
  provide the -L... option to the proper ThirdParty locations.

  Should help improve general build robustness.
2016-09-30 17:00:05 +02:00
f3888f0a2a Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-09-29 16:24:12 +01:00
60d7a71eaf STYLE: forceCoeffs - minor code updates 2016-09-29 16:24:08 +01:00
aa78b03011 ENH: functionObjects - do not add to list if error on read 2016-09-29 16:19:15 +01:00
6d380dddf6 ENH: Updated kOmegaSST family of models 2016-09-29 11:40:30 +01:00
84683b5f90 CONFIG: remove foundation use of FOAMY_HEX_MESH control.
- instead we use the CGAL settings directly since they have the
  same option of (version | system | none)

- may wish to review this again in the future.
2016-09-29 12:36:27 +02:00
6645d6d1cd STYLE: Added header documentation to function 2016-09-29 10:30:30 +01:00
5c921caa55 fvOptions: Corrected docs: 'fieldName' -> 'fields'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2273
2016-09-28 19:42:07 +01:00
3c790e2316 Correcting Typo in SolarLoad radiation model 2016-09-28 10:42:21 -07:00
361ed6420d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-09-28 09:06:35 -07:00
5c4bd557cb ENH: wallDist - added option to evaluate every XXX steps 2016-09-28 16:59:57 +01:00
ee5251a7bb keep bas 2016-09-28 08:54:41 -07:00
95c74f9b93 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-09-28 12:26:58 +01:00
1c2aadb8d8 ENH: distributedTriSurfaceMesh: bail out if getting stuck due to precision errors 2016-09-28 12:26:23 +01:00
6d7ff59fc8 ENH: provide refOrNull method for autoPtr.
- Normally use '()' to deference. This has extra safety and issues a
  fatal error if the underlying pointer is not valid.

  However, in some cases we are happy with getting a null reference.
  The refOrNull() method returns the reference without any checking.

  Usage example:

      autoPtr<OFstream> osPtr;
      if (Pstream::master())
      {
          osPtr.reset(new OFstream(...));
      }
      writeViaMaster(osPtr.refOrNull());

      - The writeViaMaster() call takes an OFstream reference,
        but this is only used directly on the master.
        The slaves will pass things through to the master.
2016-09-28 11:26:42 +02:00
3dbd39146c STYLE: consistency updates 2016-09-27 15:17:55 +01:00
df9d406816 ENH: add in code for ensightCells, ensightFaces
- intended as a base for various ensight-related handling
2016-09-27 13:38:43 +02:00
bbec683e42 ENH: provide list of enums for NamedEnum
- can be used to loop over all enumerations in the order of definition.
2016-09-27 12:40:17 +02:00
c9cf232a02 ENH: add some convenience methods in ensightFile, ensightGeoFile
- Some commonly used write methods that are independent of
  the calling context (ie, 2D/3D data, geometry, fields)

- Provide singleton null() for ensightFile, ensightGeoFile.
  Can be used for MPI slaves that need a file reference for their
  methods, but will never write to it, but it is also reasonable
  to use an autoPtr with rawRef() for that as well.
2016-09-27 10:08:07 +02:00
405210a4f2 STYLE: relocate commonly used ensight components to fileFormats
- use explicit names within ensightPTraits
2016-09-27 09:02:35 +02:00
89d9fd1550 ENH: Tutorial updates 2016-09-26 13:00:49 +01:00
47eb24bed5 GIT: Resolved conflicts arising from merge with develop branch 2016-09-26 10:57:34 +01:00
ad1e798293 ENH: Initial testing updates 2016-09-26 09:28:31 +01:00
ba249f8e76 STYLE: minor adjustment to echoed information 2016-09-26 08:02:03 +02:00
3c935ca89e Fix tensor names in foamToEnsightParts case file (fixes #243) 2016-09-26 07:41:02 +02:00
025791559d 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-dc59c63351e7
2016-09-25 20:05:12 +01:00
abb4d67134 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
a2a6fedf9f blockMesh::blockDescriptor: Added block indexing description 2016-09-25 18:38:31 +01:00
1649b57a40 processorFvPatchField: If the value is not supplied set to the internal field 2016-09-25 18:38:06 +01:00
dc59c63351 processorFvPatchField: Reinstate 'value' as an optional entry 2016-09-25 16:54:20 +01:00
fdece9b2ce 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
b6feaea53b 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
93530f1747 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
cff8efb98b ENH: reduce startup time for foamToVTK conversion
- Similar to ensight converters (issue #240),
  improve speed for detection of lagrangian clouds.

- provide a -noLagrangian option for symmetry
2016-09-23 18:45:06 +02:00
1fbcb686ff STYLE: Consistency updates 2016-09-23 16:52:46 +01:00
88ca081c8c ENH: reduce startup time for ensight conversion (issue #240).
- Less looping when detecting lagrangian clouds and their fields.

- Avoid using Time::setTime() and IOobjectList in tight loops.
  They both kill performance immensely.

ENH: provide a -noLagrangian option to foamToEnsight and foamToEnsightParts
for even more control.
2016-09-23 17:45:47 +02:00
b9940cbbb1 COMP: Multiple changes - first clean build after latest merge - UNTESTED 2016-09-23 15:36:53 +01:00
3503c872a5 STYLE: add OpenFOAM version to ensight geom file description.
- More informative than a horizonal line, can help when debugging.

STYLE: remove unused write field methods from ensightParts
2016-09-23 14:53:01 +02:00
06699f17f5 BUG: ensight output failing with dimensioned field (fixes #244)
- The new field needs initialization with a dimensioned<Type> not just
  the dimensionSet.

- The new field was also incorrectly being registered, which could
  cause issues later.
2016-09-23 13:13:12 +02:00
3c25f26aab BUG: incorrect symmTensor order for some ensight output (fixes #243)
- affects foamToEnsightParts, sampled surfaces

- Use ensightPTraits mechanism throughout to avoid this issue
2016-09-23 09:10:57 +02:00
f066a9b54e Updated template formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2264
2016-09-22 21:03:30 +01:00
447cdc2098 globalMeshData: Revert NULL -> nullptr 2016-09-22 14:22:26 +01:00
c0f841e4f7 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
40f8709488 wmake: export WM_SCHEDULER from sub-shell for non-POSIX bash compliance 2016-09-22 08:34:15 +01:00
9e1e9011a5 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
0c168c43fa ENH: improve startup time for foamToEnsight conversion (issue #240).
Old code:
    Found 10990 time steps
    Search for moving mesh ... no moving mesh detected.
    Startup in 329.09 s

Updated:
    Found 10990 time steps
    Search for moving mesh ... no moving mesh detected.
    Startup in 1.6 s

- Cause was checking "polyMesh/points" via an IOobject.
  Short-circuit with a check for a polyMesh/ directory first.

  Limit the check to the master-node as well to further reduce
  load on the file-system.

------------------------------

ENH: improve per-step conversion times for foamToEnsight.

Old code:
    Converting 11001 time steps
    Time [0] = 0       Wrote in 1.53 s
    Time [1] = 1       Wrote in 1.52 s
    ...
    Time [100] = 100   Elapsed time 205.35 s

Updated:
    Converting 11001 time steps
    Time [0] = 0       Wrote in 1.4 s
    Time [1] = 1       Wrote in 0.07 s
    ...
    Time [100] = 100   Elapsed time 42.4 s

- Speedup by hashing test results from the first conversion step
  instead of checking each time.

  Check data on all nodes to avoid problems with incomplete writes.

------------------------------

BUG: moving mesh detection failed for foamToEnsightParts

- adjusted to agree with updated foamToEnsight

------------------------------

Note:

- foamToEnsightParts (serial) still has about twice the throughput of
  foamToEnsight.
2016-09-21 18:15:19 +02:00
481f8e5b97 linearUpwind: Simplified the vector specialization 2016-09-21 11:09:59 +01:00
bd0b363292 linearUpwind: Specialize for volVectorField to support cached gradients 2016-09-21 09:50:49 +01:00
1d08519d6e 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
9da9a78cee turbulentTransportModels: Add new Maxwell model 2016-09-20 21:11:41 +01:00
1e94682f24 tutorials: Renamed sub-directories ras -> RAS and les -> LES 2016-09-20 19:03:40 +01:00
bb3c0c3593 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
6baa2aaf58 Organisation of pimpleFoam tutorials into categories of turbulence modelling 2016-09-20 18:24:09 +01:00
6c56d61846 ENH: fvc: instantiating 2D volVectorField 2016-09-20 17:07:30 +01:00
6b42dbae41 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
49d3b6eae9 foamList: Added missing -I$(LIB_SRC)/meshTools/lnInclude needed for recent changes to AMI 2016-09-20 14:51:13 +01:00
e468d1ecc9 reactingParcelFilmFoam: Corrected support for -postProcess option 2016-09-20 14:50:41 +01:00
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
19d4355387 Merge branch 'Fix_GL_224' into 'develop'
BUG: output field name instead of field (fixes #224)



See merge request !59
2016-09-20 10:53:54 +01:00
4dc06c656d BUG: output field name instead of field (fixes #224) 2016-09-20 15:15:19 +05:30
b32bd3f295 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
3aa78f2bf3 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
fd2ac09c4e 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
91c8c053a9 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
899fe81eba 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
b4d83b8f83 ENH: more flexible selection/naming for ddt2 FO (issue #224)
- bugfix (empty patches), and added detection of steady-state
  scheme.

Caveat: when called via execFlowFunctionObjects will always produce a
  zero field, since the oldTime field is not available for this mode.
2016-09-16 14:49:47 +02:00
3008d80bc7 ENH: runTime calculation of zeroGradient volume fields (issue #235)
Extrapolate internal field to walls for post-processing.
Uses as new syntax for handling the naming of multiple fields.

The input fields are selected via a wordReList.
For example,

    fields      (U "(T|k|epsilon|omega)");

The names of the resulting output fields use placeholder tokens for
flexibility. For example,

    result      zeroGradient(@@);

The '@@' placeholder is replaced by the name of the input field.
Eg,
    fields      (U T);
    result      zeroGradient(@@);
->  zeroGradient(U), zeroGradient(T)

Or,
    fields      (U T);
    result      @@nearWall;
->  UnearWall, TnearWall

NOTE:
    The function object will skip over fields that only have
    processor, empty, zeroGradient patches. The operation does not
    make much sense for these, and it avoids inadvertently
    re-processing fields twice.
2016-09-16 21:33:40 +02:00
7cc35abc3a 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
f281477d85 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
d3d693e17c ENH: runTime calculation of (dp/dt)^2 - issue #224
- implemented using magSqr() instead of sqr().
  For scalar fields they are the same, but can be useful
  if this function object is extended for more field types.
2016-09-14 14:02:40 +02:00
8dc78d188a 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
e75d811b7d MGridGenGAMGAgglomeration: Update call to continueAgglomerating
Resolves bug-report http://bugs.openfoam.org/view.php?id=2244
2016-09-14 09:41:03 +01:00
9de4a75813 ENH: expand data mask for foamToEnsight (issue #231)
- Default is a width of 8 characters, but this can be extended up to 31
  characters via the '-width' command-line option.

- Now use a similar structure as foamToEnsightParts for the masking.
  This reduces the clutter within the directory, makes it easier to
  selectively delete some time steps (using shell commands).

- Added in a "time" information data in each sub-directory to
  make it possible to reconstruct the case file with an external
  script.

- Conversion of cloud data should now also work in parallel
  (may need more testing).

- Support binary output for cloud data.

- Better avoidance of illegal ensight variable names.
  But still partially incomplete (due to patch fields).

==================================================
Example of NEW file structure:

    EnSight/verticalChannel.case        # case name
    EnSight/geometry                    # for non-moving geometry

    EnSight/data/                       # time-varying data
    EnSight/data/00000000/
    EnSight/data/00000001/
    ...

  Fields are stored by name within the data/********/ directories:

    EnSight/data/00000001/time          # human-readable time info
    EnSight/data/00000001/U
    EnSight/data/00000001/p
    ...
    EnSight/data/00000001/geometry      # for moving geometry

  Clouds are stored at the next sub-directory level:

    EnSight/data/00000001/lagrangian/<cloudName>/positions
    EnSight/data/00000001/lagrangian/<cloudName>/U
    ...

==================================================
The old structure was significantly more cluttered:

    EnSight/verticalChannel.case
    EnSight/verticalChannel.0000.mesh
    EnSight/verticalChannel.0001.p
    EnSight/verticalChannel.0001.<cloudName>
    EnSight/verticalChannel.0001.<cloudName>.U

==================================================
2016-09-13 18:26:00 +02:00
d56924624b COMP: CGAL rules should use lib64/ (fixes #234)
- 64-bit builds of gcc/mpfr/gmp use lib64/ for their installation path.
  Use this for the wmake rules as well.
2016-09-13 08:58:00 +02:00
04300070cf BUG: metisDecomp compile failure for WM_DP (closes #232)
- spurious use of floatScalar instead of scalar for processor weights.

STYLE: partially updated dummy metis.h to reflect metis-5.1.0 API
2016-09-13 08:51:03 +02:00
b3e5224753 GAMGSolverSolve: Replace PBiCG with PBiCGStab to solve the coarsest-level of asymmetric matrices 2016-09-10 16:44:01 +01:00
5c1a647092 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-09-09 21:49:06 +01:00
34928b7c82 reactingEulerFoam/interfacialModels/dragModels: Corrected file permissions 2016-09-09 21:48:29 +01:00
b5e263be0d foamEtcFile: replaced redundant package directory name 2016-09-09 20:00:26 +01:00
86ccbca390 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
8e37aa0a37 renumberMethods: Added missing .C file for structuredRenumber 2016-09-09 14:54:12 +01:00
0a1300d882 wmake: Updated '-q' option to work on Ubuntu and other 'dash'-based GNU/Linux distributions 2016-09-09 14:53:10 +01:00
4fcdb0b4e4 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
cb1a012b66 structuredRenumber: Corrected to run in parallel
Patch contributed by Mattijs Janssens
2016-09-09 12:20:25 +01:00
8e0981d9ed 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
4ea1613653 Merge branch 'master' into develop 2016-09-08 12:00:46 +01:00
360ab50ed6 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
b2694847d6 STYLE: PrimitivePatch: undefined function 2016-09-07 12:40:35 +01:00
ae9643e181 ENH: snappyHexMesh: combine previous zone based algorithm with v3+ one.
Fixes #66.
2016-09-07 12:38:59 +01:00
4dcbb32d24 BUG: runTimePostProcessing - corrected surface visualisation caused by regression update/bug 2016-09-07 10:02:02 +01:00
03cb76a213 BUG: Non-const dereferencing of tmp in fvc:dt2dt2 (closes #227) 2016-09-07 09:33:26 +02:00
17f0aa1db8 STYLE: propogate WM_CC for CMake (fixes #226)
- reported by Bruno
2016-09-06 16:17:20 +02:00
99efe5f8d8 BUG: triSurface IO operators are asymmetrical (fixed #225)
- Also reported as http://bugs.openfoam.org/view.php?id=2188
2016-09-06 14:57:40 +02:00
29d5a10f97 ENH: add stream operators for MeshedSurface, UnsortedMeshedSurface
- add corrsponding testing into surfaceMeshConvertTesting too
2016-09-06 14:45:44 +02:00
427f2c65b9 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
41eeaaede4 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
31f70137af 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
e86688a53c Solvers: Corrected typo 2016-09-05 11:58:41 +01:00
4502b7a557 Updated header 2016-09-05 11:57:41 +01:00
0857f479a8 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
b19fa43100 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
49bce39429 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
8f2b34dc06 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
9c7101739b 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
15fda67bbc 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
c193493822 EulerCoordinateRotation,STARCDCoordinateRotation: Corrected typo
Resolves bug-report http://bugs.openfoam.org/view.php?id=2225
2016-09-03 16:46:01 +01:00
96f2562e93 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
292c522c71 ENH: Adding iso-plane histogram to regionSizeDistribution 2016-09-02 12:28:20 -07:00
ddda616919 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-09-02 11:52:59 -07:00
a4b62e6549 Adding area weighted average to U mean calculation for uniformJump option in fan BC 2016-09-02 11:51:59 -07:00
1589e8d431 BUG: buoyantPimpleFoam - div term should be present for both compressible and incompressible 2016-09-02 08:14:10 +01:00
8185f1d62e Revert "polyBoundaryMesh::groupPatchIDs(): Make name clash between patch and group name fatal"
This reverts commit f38f0d3e86.
2016-08-26 11:44:56 +01:00
6ffdce83aa STYLE: Corrected spelling error 2016-08-25 17:28:50 +01:00
f38f0d3e86 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
16e4b25ac0 BUG: Corrected Doxygen style sheet - patch contributed by Bruno Santos. Fixes #217 2016-08-25 13:36:43 +01:00
bc5c6d83df BUG: incompressible/icoFoam/cavityMappingTest - renamed Allrun-serial->Allrun. Fixes #220 2016-08-25 13:34:17 +01:00
ac42dd2494 BUG: mesh/filter case - corrected Allrun script. Fixes #219 2016-08-25 13:32:45 +01:00
74e1352cc2 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
bf9c6b6d17 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
e476f80e7a 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
fc44390db3 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
c6f9ed748a 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
655fb3841a 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
5c9b80a083 functionObjects::volRegion: Cache integral properties for writeFileHeader 2016-08-24 09:32:34 +01:00
428b1d8866 Updated headers 2016-08-24 08:57:44 +01:00
962910bd43 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
a778622dfa 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
c482490a60 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
f75e69b5f7 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
e6057ee3ec 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
0ea2023ae0 codingStyleGuide: Improved formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2194
2016-08-20 09:33:11 +01:00
181558028c 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
8e3dd09425 BUG: ensightSurfaceReader - enabled reading of data from sub-directory and updated field mask (See #215) 2016-08-18 15:29:56 +01:00
16b516bba3 ENH: noise functionality robustness improvements 2016-08-18 15:24:13 +01:00
9fb439bb46 BUG: Corrected FFTW_ARCH_PATH - patch contributed by Bruno Santos. Fixes #210 2016-08-18 11:22:25 +01:00
b075f10053 /primitives/triad: Initialize array to avoid warning from icpc 2016-08-18 11:22:15 +01:00
6635d2edfe ODESolvers::adaptiveSolver: Changed functions which need not be to non-virtual
Resolves warnings from clang
2016-08-18 10:36:52 +01:00
ab7dcca8a6 functionObjects::writeObjects: Corrected namespace for the definition of the NamedEnum
Resolves compilation failure with clang
2016-08-18 10:36:04 +01:00
4a766d28cb epsilonWallFunction, omegaWallFunction: Removed unused variabl 2016-08-18 08:23:54 +01:00
8d036e2750 multivariateScheme: Correct local typedef name 2016-08-17 23:04:00 +01:00
1d308b2ead Update header 2016-08-17 23:03:49 +01:00
4d2e628b61 primitives/hashes/SHA1: undef macros 2016-08-17 23:03:27 +01:00
a9280d103f sigWriteNow, sigStopAtWriteNow: Change runTimePtr_ to static member 2016-08-17 23:02:58 +01:00
30e456a641 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
b2e9655495 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
e078fa031b viscosityModels::Casson: Added example specification for blood
Contributed by Sergey Sindeev
2016-08-17 13:46:46 +01:00
e670c3e356 viscosityModels::Casson: Updated constructor to avoid the need to specify the dimensions of the coefficients 2016-08-17 13:45:18 +01:00
40b0be0376 ODESolvers: Updated references to APA style 2016-08-17 10:27:15 +01:00
35f12bb6bd 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
73cef20494 viscosityModels: State virtual functions are virtual also in the derived classes 2016-08-17 09:37:37 +01:00
79530dc8e3 surfacePatch.C: Corrected formatting 2016-08-17 08:08:21 +01:00
9a739863e5 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
63010615ae fvMesh,dynamicRefineFvMesh: Rename writeObjects -> writeObject for consistency with regIOobject 2016-08-16 23:40:27 +01:00
14a0a94c01 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
e44cc9697b 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
bc71a7d208 lagrangian: Delete lost particles on restart
Warning messages are generated for each particle deleted
2016-08-16 11:32:27 +01:00
3f82568b74 lagrangian::Cloud: Removed unused function 2016-08-16 11:31:51 +01:00
b23d80916b lagrangian:: hasWallImpactDistance() need not be virtual 2016-08-16 11:31:14 +01:00
aaf8819c92 tetPtI -> tetPti 2016-08-16 11:30:17 +01:00
72bd9fd6cd 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
caa354aa95 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
e371de3a6f 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
ddd4f9f2ef 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
0f36cce1b5 Revert "functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write"
This reverts commit 32e2e1bc76.
2016-08-12 21:34:37 +01:00
32e2e1bc76 functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write 2016-08-12 21:28:00 +01:00
45409b3fdc 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
873628e7b4 ILList: Added doc for assignment 2016-08-12 13:28:56 +01:00
fc923ba55a 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
d048b857dc 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
659076c0fa 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
f846706229 OpenFOAM/containers: Standardized assignment docs 2016-08-12 10:00:48 +01:00
ba413e1f9a ENH: minor adjustments to surfZoneIdentifier
- gearing to make it more reusable in triSurface
2016-08-12 10:05:01 +02:00
fc714ed67b ENH: surfaceCheck: survive triangles with duplicate vertices. Fixes #222 2016-08-31 16:47:36 +01:00
30442158b1 ENH: snappyHexMesh: added -region option (fixes #223) 2016-08-31 09:44:34 +01:00
66eb48c3a4 BUG: snappyHexMesh: patch intersections of mesh was using cell zone information.
This was going wrong in a fair few cases where you would get regions which
were delimited by a combination of intersections with unnamed surfaces (wall)
and named surfaces (faceZone surface) but not with either of these sets
individually. This would cause there to be unvisited cells (zone = -2)
next to a visited cells but separated by a named surface only (and not an
unnamed surface). Fixed by using direct surface intersection in the removal
part. Related to #66.
2016-08-19 10:48:35 +01:00
78bbfc4409 COMP: foamDebugSwitches: support for missing randomProcesses. Fixes #213. 2016-08-19 10:46:53 +01:00
ef720003c3 FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
900c804bf0 HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
d1d453f065 STYLE: relocate surfZoneIdentifier into OpenFOAM/meshes/Identifiers (issue #294)
Note that since these actually act more like 'patches'
(ie, contiguous addressing) it might be reasonable to rename as

    surfPatchIdentifier / surfacePatchIdentifier
2016-08-11 21:44:14 +02:00
b012e1c738 STYLE: relocate labelledTri into OpenFOAM/meshes/meshShapes (issue #294)
- was originally in triSurface, but is used in multiple other places
2016-08-11 20:00:09 +02:00
c7a291aca8 STYLE: relocate faceTriangulation, labelPairLookup into meshTools (issue #294)
- were in triSurface, but only actually used within meshTools
2016-08-11 19:38:29 +02:00
f81c7a036c DEFEATURE: remove unused surfacePatchIOList class (issue #294) 2016-08-11 21:22:21 +02:00
4dda4ad197 DEFEATURE: remove unused meshTriangulation class (issue #294) 2016-08-11 19:35:22 +02:00
5707b20e50 DEFEATURE: remove unused hashSignedLabel, sortLabelledTri classes (issue #294) 2016-08-11 17:55:40 +02:00
434afda523 specieReactionRates: Corrected namespace of the debug switches 2016-08-11 16:27:05 +01:00
9b36f9f445 chemistryModel: Minor clean-up 2016-08-11 16:26:50 +01:00
3c5d30867b chemPointISAT: Removed deprecated 'register' type specifier 2016-08-11 16:26:19 +01:00
82aa78a4d4 wmake/rules/linux.*Icc: Removed a new unhelpful warning message 2016-08-11 16:25:53 +01:00
40b3f8b62c functionObjects::volFieldValue: Updated to use the new volRegion functionObject 2016-08-11 16:25:27 +01:00
4e6ec7d20d 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
7b788f0922 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
c79544b197 ENH: mergedSurf helper class (fixes #104)
- For merging meshedSurf content from parallel sources.
  Ensures zoneIds are properly preserved for sampling in parallel.

Current state
~~~~~~~~~~~~~

Current producers of the region information:
 * sampledTriSurfaceMesh

Current consumers of the region information:
 * nastran writer. The zone ids passed through as PSHELL Ids (with offset 1).

Limitations

  The per-face region association is preserved, but the face/element
  sort order gets lost in reconstruction. Would need to attach
  additional information to the sampled surface and use that for
  sorting, but this would also imply that sampled values be written
  indirectly (or resorted) too to match the order. Zone ids are passed
  through, but not their names. After reconstruction, zone ids are no
  longer contiguous. Re-sorting (as mentioned above) would solve this
  too, but again at the cost of more complexity when writing.
2016-08-11 13:25:51 +02:00
6afc9fb15d ENH: tetOverlapVolume - improved robustness. Fixes #207 2016-08-11 12:14:43 +01:00
582ee21ef0 ENH: plane - updated construct from components to optionally normalise the normal vector 2016-08-11 12:14:34 +01:00
f8bb01e9f1 STYLE: harmonize nastran writer with more standard method calls
- unhide indexing of element/property ids (pass as const parameters).
  Proper indexing is the responsiblity of the caller.
2016-08-10 21:05:15 +02:00
225c6777b2 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
cefe2ea541 BUG: singleCellMesh: writes constant mesh to 0 directory instead.
Fixes partially #93.
2016-08-10 15:49:09 +01:00
1fc2a73213 ENH: use meshedSurf API for surface writers (issue #104)
- Allows passing of additional information (per-face zone ids) or possibly
  other things, while reducing the number of arguments to pass.

- In sampledTriSurfaceMesh, preserve the region information that was
  read in, passing it onwards via the UnsortedMeshSurface content.

  The Nastran surface writer is currently the only writer making use
  of this per-face zone information.
  Passing it through as a PSHELL attribute, which should retain the
  distinction for parts. (issue #204)
2016-08-10 15:41:24 +02:00
9ab4bf4001 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-08-10 13:33:06 +01:00
44416dd44f ENH: sampledSets: warn for no fields (fixes #206) 2016-08-10 13:32:47 +01:00
eee0dd02c5 ENH: meshedSurf API for passing around points/faces (issue #104) 2016-08-10 14:09:09 +02:00
2da5570c92 functionObjects: Further simplification and rationalization using the fvMeshFunctionObject base-class 2016-08-10 12:29:19 +01:00
3dffee8a6a STYLE: change MeshedSurface 'faces' access to 'surfFaces' (related to issue #104)
- use surfFaces() to return the templated list of faces.
  This frees up the method 'faces()' to be used as a virtual method,
  which will be needed at a later stage.
2016-08-10 10:03:51 +02:00
8339b57255 List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
5b1ae76abf 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
8509fc3ce4 BUG: blendingFactor function object updated to handle bounded schemes. Fixes #205 2016-08-09 15:38:40 +01:00
a29ff3f6f2 ENH: boundedConvection scheme - added access function to the underlying scheme 2016-08-09 15:33:46 +01:00
d73bf4af51 kOmegaSSTLM: Corrected coefficient in Fsublayer 2016-08-09 13:54:10 +01:00
c5630e5cb1 Corrected nullptr collateral damage
Resolves bug-report http://bugs.openfoam.org/view.php?id=2181
2016-08-08 15:38:53 +01:00
95962d7780 ENH: provide conversion to/from ccm meshes (issue #204) 2016-08-08 12:50:26 +02:00
1d194d1629 CONFIG: allow static or dynamic linkage for optional conversion utility 2016-08-08 11:58:52 +02:00
cce64df23c CONFIG: use src/conversion/Allwmake when building source
- existed, but was not being called
2016-08-08 11:38:38 +02:00
6f098748cc 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
076c4c6e82 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
2bb52eff6e Test-fileName: Added recent etcFiles.H 2016-08-05 17:25:56 +01:00
58f905ff70 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
7996a9138f 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
7a299ed7cb FixedList: Add constructors from iterators and C++11 initializer_list using C++11 constructor delegation 2016-08-05 16:25:18 +01:00
3c423d64d2 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
d8abc128f9 ENH: provide conversion to/from AVL/FIRE meshes (issue #204) 2016-08-05 13:22:22 +02:00
74f2d7f0a3 ENH: cleanup starcd (prostar) mesh conversion (issue #204)
- Reduce code duplication by moving out common functionality
  into STARCDCore.
2016-08-05 10:35:55 +02:00
e5d9fd13c2 ENH: relocate meshSubsetHelper into dynamicMesh for re-use
- reuse for foamToTecplot360 and foamToVTK.
- remove dependency on vtkMesh where possible.
2016-11-09 23:33:24 +01:00
72ec8e0574 BrunDrippingInjection: Corrected default type of deltaStable 2016-08-05 08:26:45 +01:00
55065d6302 epsilonWallFunction, omegaWallFunction: Set generation to zero in laminar sub-layer
Improves stability for complex flows
2016-08-04 22:25:27 +01:00
7e4f200bd6 GIT: rearrange files for lib-conversion
- re-group according to file-format instead of reader/writer
2016-08-04 16:57:56 +02:00
b475ae851e DEFEATURE: remove samm, pro-am, prostar3 convertors (issue #204)
- these frontends are defunct and their formats were quite a mess.
  Prostar 4 versions (star4ToFoam, foamToStarMesh) should be used
  instead.
2016-08-05 11:05:30 +02:00
c5e364dd38 STYLE: Remove meshReaders/meshWriters namespace (issue #204)
- Relocate classes (STARCDMeshReader, STARCDMeshWriter)
  into fileFormats namespace instead.
2016-08-05 12:00:00 +02:00
b0dcf59307 ENH: ease access restrictions on meshReader data structures (issue #204)
- helps when implementing polyhedral readers.
2016-08-05 10:00:00 +02:00
dd659dccb0 BrunDrippingInjection: Simplified implementation 2016-08-04 15:20:53 +01:00
c022e5ade3 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
6131d5c1a3 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
712f62773a 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
273197e20e TurbulenceModels::derivedFvPatchFields: standardized the cell index of the 'faceCell' 2016-08-04 10:51:09 +01:00
4652677f76 ORourkeCollision: Corrected probability test
Resolves bug-report http://bugs.openfoam.org/view.php?id=2097
2016-08-04 10:04:06 +01:00
777bc83d14 FixedList: Corrected checkSize
Resolves bug-report http://bugs.openfoam.org/view.php?id=2178
2016-08-03 19:45:31 +01:00
449a4e7353 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
0a2c2d76de 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
70ba9e0cc0 For issue #202, re-adjust commit c3ec65d35b to use zero-gradient instead
- consistent with approach used elsewhere. Generates smaller files.
2016-08-02 21:56:40 +02:00
2ab457015d 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
a95ca8293a BUG: runParallel ignores presence of log file (closes #203)
- was a small typo
2016-08-02 18:31:50 +02:00
2e1557a79e 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
c3ec65d35b ENH: decomposePar -cellDist misses patches (issue #202)
- Propagate cellDist information from internal to patch fields too

NOTE: uses C++11 'auto' and a range-based for loop
2016-08-02 16:39:20 +02:00
d01eb45cfc 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
b8614eca07 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
32fe670d1e 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
778abb4087 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
90d6c956da 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
bfbe1e32be DimensionedField<scalar, volMesh> -> volScalarField::Internal
DimensionedField<vector, volMesh> -> volVectorField::Internal
2016-08-01 14:28:54 +01:00
cd2b0ff742 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
49c7b37705 BUG: 'processor' in directory name causes issues (issue #199)
- previously just detected the presence of "processor" in the case
  path name. Restrict to checking the final portion.
  Does not solve all problems, but solves ones like this:

      test-new-processor-generation/....
2016-08-01 14:11:05 +02:00
e9edf89a5d BUG: maxDeltaxyz LES delta - updated calculation. Fixes #200 2016-08-01 12:59:24 +01:00
f0fdd1c203 scalarTransport function: renamed scalar field -> s 2016-07-31 17:12:49 +01:00
ff9ad39f82 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
157fa46f9c tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict.sixDoF: Renamed 'rho' -> 'rhoSolid'
to avoid name clash
2016-07-29 17:47:20 +01:00
46ba7267de TurbulenceModels: Reorganized support macros to simplify the creation of additional turbulence model libraries 2016-07-29 15:59:09 +01:00
04f73903b4 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
d9aa056163 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
51ea906a20 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
84d90563bc Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-28 13:52:27 +01:00
1a69e4315b functionObjects::wallShearStress: Corrected dimensions for compressible cases 2016-07-28 13:51:13 +01:00
a867e68573 kOmegaSSTSAS: Updated header 2016-07-28 13:50:58 +01:00
3dd3288561 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
3a3966d400 wmake/rules/linux.*Icc: Updated for icpc (ICC) 16.0.3 20160415 2016-07-28 13:47:44 +01:00
466a2631c7 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-07-27 08:56:24 -07:00
14f5239e5b ENH: Adding optional uniform jump switch to fan BC 2016-07-27 08:55:52 -07:00
785b32830d STYLE: fanFvPatchField - updated example usage to reflect change in CSV specification. Fixes #177 2016-07-27 13:06:22 +01:00
b8cf59e869 BUG: snappyHexMesh: compacting list w/o checking for aliasing. Fixes #197 2016-07-27 13:06:01 +01:00
6539c1d311 Merge branch 'develop' 2016-07-27 12:51:50 +01:00
b2722eb66b STYLE: externalCoupledFunctionObject: typo 2016-07-27 10:38:58 +01:00
143800ab3d BUG: Turbulence DFSEM - protect sigFpe for reconstruct - see #194 2016-07-26 15:33:10 +01:00
f7999317ac Merge branch 'style-compile-def' into 'develop'
ENH: distinguish OpenFOAM version for user-coding (fixes #195)

The pre-processor macro 'OPENFOAM_PLUS' is defined with a numerical
value equal to the currently compatible version number.

This can be used judiciously within user coding to help with minor
differences between OpenFOAM versions. For example,

    #ifdef OPENFOAM_PLUS
        #if (OPENFOAM_PLUS >= 1612)
        ...
        #endif
    #endif

or simply

    #if (OPENFOAM_PLUS >= 1612)
    ...
    #endif

See merge request !56
2016-07-26 15:27:24 +01:00
e2935fa680 Merge branch 'fix-systemcall' into 'develop'
replace system() call with vfork/exec combination (issue #185)

Tested systemCall function object, dynamicCode, but should be rechecked with IB+openmpi
@Prashant

See merge request !55
2016-07-26 15:26:00 +01:00
b460e096ae Merge branch 'feature-symlinks' into 'develop'
ENH: OSspecific - softlink handling (fixes #164)

Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory

See merge request !51
2016-07-26 15:25:33 +01:00
9b481e7992 foamNewBC: removes phip completely for fixedValue condition 2016-07-26 15:25:18 +01:00
1b55666ec7 ENH: distinguish OpenFOAM version for user-coding (fixes #195)
The pre-processor macro 'OPENFOAM_PLUS' is defined with a numerical
value equal to the currently compatible version number.

This can be used judiciously within user coding to help with minor
differences between OpenFOAM versions. For example,

    #ifdef OPENFOAM_PLUS
        #if (OPENFOAM_PLUS >= 1612)
        ...
        #endif
    #endif

or simply

    #if (OPENFOAM_PLUS >= 1612)
    ...
    #endif
2016-07-26 14:02:40 +02:00
2d96fc5011 BUG: mapFields function object - evaluate constraint patches after mapping. Fixes #190 2016-07-26 12:05:15 +01:00
bac94fc564 ENH: regIOobject: use reverse order scatter for dictionary
Fixes #192
2016-07-25 14:14:05 +01:00
ee9e7cf037 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
5d3b25a472 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
2564362542 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
799b2fc748 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-22 16:58:22 +01:00
aa30d0e7d5 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
5344c7eb26 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
cd8be89b28 BUG: runTimePostProcessing - correct the glyph behaviour when dealing with cell data. Fixes #186 2016-07-22 15:32:17 +01:00
e6f9c67b64 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
d51687eb66 forces: Updated reading of 'nu'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2158
2016-07-22 09:56:02 +01:00
43df3e4192 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
ef54ab7c59 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
2d695acf49 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-07-19 10:53:34 -07:00
4dcfd245d6 BUG: Taken out mesh flux from the hEqn for Solid to Gas reactions 2016-07-19 10:51:50 -07:00
b8bb388ffd reactingEulerFoam, twoPhaseEulerFoam: Added fvOption sources to the face-based momentum equations 2016-07-19 16:33:07 +01:00
115a291b8a 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
6f84555305 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-07-18 16:09:17 +01:00
c4c60fad80 BUG: polyMesh::movePoints: clear cellTree since gets constructed using current geometry
so will be out of date (w.r.t bounding box, subdivisions) when the mesh moves.
Only when all cells stays in all the same boxes can you skip rebuilding it
so this was not deemed worthwhile. Fixes #172
2016-07-18 16:07:15 +01:00
dad1fd51c5 Scalar.H: Minor reorganization 2016-07-18 16:02:29 +01:00
e46e25fdcc Merge branch 'style-codedbc-cleanup' into 'develop'
STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)

- relocate common dictionary output into codedBase class

@Mattijs please test with a few examples as well

See merge request !54
2016-07-18 15:19:22 +01:00
586b7ca30e STYLE: codedBase: indentation 2016-07-18 15:18:40 +01:00
5f85329c85 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
fa73844438 scalarMatrices: update [i][j] -> (i, j) 2016-07-18 13:12:26 +01:00
8bb78dda60 ENH: provide a vfork/exec version of system (issue #185)
The normal library system() command uses 'fork', which causes
problems on IB+OPENMPI.

STYLE: add Foam:: qualifier to system calls to make them easier to spot.
2016-07-18 13:37:39 +02:00
b3c9e9d277 ISAT::chemPointISAT: Use scalarMatrices::SVD 2016-07-18 07:49:53 +01:00
13e8fce173 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
8f16204390 basicMultiComponentMixture: Improved the handling of Ydefault 2016-07-17 22:59:25 +01:00
1d57269680 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
2d54b1d42b fvPatchField: Minor reformatting 2016-07-17 14:45:24 +01:00
7cbe9153b2 LUscalarMatrix: Added processor-local matrix inverse function 2016-07-17 14:44:50 +01:00
e07327fef4 ENH: provide access to the underlying patch types of generic patches (issue #188) 2016-07-15 16:24:46 +02:00
30cf340d8b 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
2f3945e6b3 STYLE: missing include in codeStream test dictionary 2016-07-15 09:05:44 +02:00
813a1d69fb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-07-13 11:40:15 +01:00
9e2259c19c STYLE: clean out clutter in paraview config files (issue #176)
Now reduced to 3 environment variables:
    ParaView_DIR         - paraview installation directory
    ParaView_INCLUDE_DIR - paraview include directory
    PV_PLUGIN_PATH       - paraview plugin directory for OpenFOAM modules

Previously also had (ParaView_MAJOR, ParaView_VERSION).

ThirdParty makeParaView adjusted accordingly.

ENH: improved configuration possibility for non-ThirdParty paraview
installation.

BUG: csh foamPV alias was completely incorrect.
2016-07-13 09:57:58 +02:00
ab84d6941f Updated template formatting to C++11 2016-07-12 20:03:29 +01:00
c535f6a3c4 ODESolvers::seulex: Corrected 'expo' and added 'table_' resize 2016-07-12 20:02:16 +01:00
787b19c4e4 STYLE: cleanup compiler settings (issue #176)
- export/setenv WM_COMPILER_TYPE as suggested by Mattijs.

- for overall consistency, don't carp about an unset WM_COMPILER_TYPE,
  since this would only be on the first instance (prior to the
  export/setenv) and would be confusing about why/when this message
  may occur.

- reduce clutter: only use (system|ThirdParty) for WM_COMPILER_TYPE.
  Drop the old 'OpenFOAM' setting for WM_COMPILER_TYPE, which was
  transitional in early 2011.

- make the error messages more meaningful
2016-07-12 17:19:06 +02:00
fae40c5def STYLE: use POSIX 'unset -f' for functions (affects dash) 2016-09-29 14:10:49 +02:00
9a82743d32 STYLE: bump to v1609+ for foundation merge version 2016-09-29 12:00:00 +02:00
ecfbdce3da ENH: avoid deprecated resource xml when building paraview plugins (fixes #181)
- remove old VTK_CONVEX_POINT_SET code, since VTK_POLYHEDRON exists
  since several years

ENH: improve robustness of paraFoam script

- only check the relevant plugin types,
  fallback to native reader if needed/possible.
2016-07-12 11:17:57 +02:00
ff49c1b882 foamCleanPolyMesh: No need to warn about missing 'polyMesh' directories 2016-07-12 09:07:15 +01:00
1c38fbcef0 Updated headers 2016-07-12 09:07:04 +01:00
b00e67ca37 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
a9fed233db CONFIG: remove engridFoam start script
- no engrid development since 2013
2016-07-12 08:19:54 +02:00
a6a8069d84 BUG: incorrect wmakePrintBuild -check behaviour when outside of git (issue #174)
- return 0 if not under git, since nothing particular can be said
  about the build number.

- explicitly define which git-dir is to be used.
  This ensure we don't accidentally get some values from some unrelated
  project in the parent directory.
2016-07-12 17:37:30 +02:00
a5d7374737 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
b36e1c7c1b Merge branch 'master-update' into 'master'
Master update for adjusted config and compile with WM_LABEL_SIZE=64



See merge request !52
2016-07-11 11:49:32 +01:00
47b9b3a88a 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
6a8bac9235 functionObjects: Update documentation 2016-07-09 22:08:11 +01:00
08bd802b42 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
79e31173bd 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
9f682a0c5a functionObjects::systemCall: Updated documentation 2016-07-09 14:23:27 +01:00
6e95af9d58 functionObjects: Removed superfluous controlDict files 2016-07-09 14:23:01 +01:00
cdb5d024f0 wmake: Simplified handling of '-j' option to sub-processes 2016-07-09 14:22:29 +01:00
c022898851 wmakeLnIncludeAll: Add '-update' option 2016-07-09 14:22:14 +01:00
c3f50d3c2b wmakeLnInclude: Minor simplifications and reformatting 2016-07-09 14:21:44 +01:00
5b28e12ad3 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
7d553a1853 wmakeFunctions: Added a faster bash version of 'depToSource' 2016-07-09 14:19:47 +01:00
bbc43dd66e wmakeCollect: Create the makefiles in the platforms directory 2016-07-09 09:59:46 +01:00
02e14ffd4b wmakeLnIncludeAll: 'sync' does not guarantee synchronization of the links
A simple 'sleep' is more reliable.
2016-07-08 16:35:40 +01:00
23ea3b364e wmakeLnIncludeAll: Improved messages 2016-07-08 14:02:57 +01:00
b87703bd46 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
c4390f7059 laplacianFoam: Added support for fvOptions 2016-07-08 11:34:00 +01:00
10ad855d8d wmake: Improve messages from wclean, wrmdep and wmakeLnIncludeAll 2016-07-08 10:57:08 +01:00
d7e6c04855 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
5d594d3f24 ENH: Adding support to moving mesh to activePressureForceBaffle 2016-07-07 10:19:56 -07:00
a7fa5699df AllwmakeParseArguments: Filter-out '-q' option to avoid recusion 2016-07-07 16:22:08 +01:00
04afdaffc7 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
c15eea16f1 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
5f49df4a0a COMP: fftw needs int (not long) for its dimensionality (issue #175)
- explicitly use List<int> instead List<label> for API compatibility,
  even when 64-bit labels are in use.
2016-07-07 11:20:28 +02:00
fcb0b3a42d COMP: fftw needs int (not long) for its dimensionality (issue #175)
- explicitly use List<int> instead List<label> for API compatibility,
  even when 64-bit labels are in use.
2016-07-07 11:20:28 +02:00
e799329515 COMP: template ambiguity for 64-bit labels (issue #175) 2016-07-07 11:17:09 +02:00
b99515ea95 COMP: template ambiguity for 64-bit labels (issue #175) 2016-07-07 11:17:09 +02:00
7e53be1560 Reacting solvers: Added check for the existence of the inert specie 2016-07-06 17:45:34 +01:00
bccf754d24 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
2ed6b4da92 STYLE: documentation typo in EulerCoordinateRotation, add external reference 2016-07-06 11:47:10 +02:00
de75e2f918 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
b23b137ff8 fvOptions::tabulatedAccelerationSource: Minor update to doc 2016-07-06 10:16:57 +01:00
29e5fd7bda Updated header 2016-07-06 10:16:37 +01:00
48e160dce8 fvOptions::limitTemperature: Simplify controls and make documentation consistent with the code 2016-07-06 10:15:47 +01:00
dc5c42701c BUG: config.csh: wrong variable. Fixes #176 2016-07-06 09:23:55 +01:00
c1fb5e9021 CONFIG: rename config file to avoid premature filtering of its name 2016-07-06 08:11:42 +02:00
1a9112e1b2 CONFIG: rename config file to avoid premature filtering of its name 2016-07-06 08:11:42 +02:00
6ed05f0cd3 STYLE: mention suppression of banner for surfaceMeshInfo, ... (issue #125) 2016-07-06 07:43:05 +02:00
898b51c8a3 wmakePrintBuild -check: exit 0 if not a git repository 2016-07-05 21:50:34 +01:00
8a93e13df3 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
ec43e2cf5a Updated headers 2016-07-05 16:09:56 +01:00
34972962a4 reactingEulerFoam/interfacialCompositionModels: Minor reformatting 2016-07-05 16:09:39 +01:00
9e1486fee5 checkMesh, moveDynamicMesh: option -checkAMI writes the reconstructed AMI weights
Patch contributed by Mattijs Janssens
2016-07-05 15:35:16 +01:00
1e82e1a1dd CONFIG: use ThirdParty boost, FFTW instead of system versions
- many systems may not have boost or FFTW installed, or in an older
  version. Using ThirdParty for them should lead to a more robust
  build process.
2016-07-05 16:15:03 +02:00
aad28cbb78 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
6494f0378e BUG: randomProcesses/Allwmake not being called (fixes #171) 2016-07-05 14:43:59 +02:00
948e10841b wmakeCollect: Support simultaneous builds of different target architectures or compilers 2016-07-05 10:24:08 +01:00
e8b098121c wmake: execute wmakeLnIncludeAll once with options 'queue' and 'update' 2016-07-05 07:54:45 +01:00
af8e0f1443 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
8abdc36398 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
f835565372 steadyParticleTracksTemplates: Corrected correspondence between function declaration and definition 2016-07-04 10:44:08 +01:00
91a8421241 wmakeLnIncludeAll: Corrected type 2016-07-04 10:27:43 +01:00
9e712bbfc7 wmakeLnIncludeAll: Use 'wait -n' rather than and arbitrary 'sleep' when limiting the number of jobs 2016-07-04 09:39:28 +01:00
417ac33aca 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
7093f478e4 wmake: use the new parallel wmakeLnIncludeAll option if WM_NCOMPPROCS is set 2016-07-03 23:11:16 +01:00
6b77d86563 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
17bec8aab2 wmakeLnIncludeAll: Added -j option for parallel operation 2016-07-03 22:22:00 +01:00
47b6000c36 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
af6e8f150c timeVaryingMappedFixedValue: update for SP 2016-07-01 17:42:35 +01:00
6703d49f94 etc/config.sh/CGAL: unset CGAL_ARCH_PATH if it is no longer needed 2016-07-01 17:01:26 +01:00
9c0a04d8be BUG: need 'unset -f' to unset functions (issue #170)
- triggered by dash.
2016-07-01 17:55:03 +02:00
579f559aa7 Correct handling of the CGAL version variable for makeCGAL in ThirdParty 2016-07-01 16:22:28 +01:00
f768402255 Simplified the handling of the CGAL installation 2016-07-01 14:53:28 +01:00
ed014a099c 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
139faa3cf0 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
a623ab42a3 timeVaryingMappedFixedValue: Reinstated support for AverageField 2016-07-01 10:26:20 +01:00
08e941dccb Updated header 2016-07-01 10:25:38 +01:00
fa11efeba6 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
9965c5006c STYLE: minor improvement when writing list entry 2016-07-01 09:55:51 +02:00
ce121c92dc STYLE: minor simplification of check for uniform contents 2016-07-01 09:09:50 +02:00
cae7ce37f5 ENH: provide formatting version of Foam::name() (issue #253)
- there are some cases in which the C-style sprintf is much more
  convenient, albeit problematic for buffer overwrites.

  Provide a formatting version of Foam::name() for language
  primitives that is buffer-safe.

  Returns a Foam::word, so that further output will be unquoted, but
  without any checking that the characters are indeed entirely valid
  word characters.

  Example use,
      i = 1234;
      s = Foam::name("%08d", i);
      produces '00001234'

  Alternative using string streams:

      std::ostringstream buf;
      buf.fill('0');
      buf << setw(8) << i;
      s = buf.str();

  Note that the format specification can also be slightly more complex:

     Foam::name("output%08d.vtk", i);
     Foam::name("timing=%.2fs", time);

It remains the caller's responsibility to ensure that the format mask
is valid.
2016-07-01 08:23:13 +02:00
7bc05996ba 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
9fdb5506f4 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
507b8988ec functionObjects::surfaceRegion: Write the surface geometry for formats in which the data is in separate files 2016-06-30 10:33:55 +01:00
c224d19c83 sampledCuttingPlane: Rationalized 2016-06-30 10:33:28 +01:00
939376a844 src/sampling/Make/files: Updated 2016-06-30 10:33:07 +01:00
c6200ea25e sampledPlane, plane: standardize the selection of the plane type 2016-06-30 10:32:31 +01:00
fdb4f37148 foamFileSurfaceWriter -> foamSurfaceWriter for consistency with the naming of the other writers 2016-06-30 10:31:09 +01:00
287b6537f2 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
6d330d3d12 tutorials: Updated formatting of dictionaries and specification of 'plane' and 'samplePlane' 2016-06-29 18:02:57 +01:00
a158c30710 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
3e3a183732 Completed transformation of post-processing utilities into functionObjects 2016-06-28 19:26:23 +01:00
1bef3ab2e6 functionObjects::fieldExpression: Standardized warning message 2016-06-28 13:52:10 +01:00
9c37e165f7 utilities particleTracks, steadyParticleTracks: Updated and corrected 2016-06-27 20:44:11 +01:00
1ab64a0dd9 rigidBodyMeshMotion: Check for attempted assignment of patches to a merged body 2016-06-27 16:31:51 +01:00
850013e732 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
28f049e9b9 writeCellCentres utility: Replaced by writeCellCentres functionObject
postProcess -func writeCellCentres
2016-06-27 07:51:19 +01:00
4e09a6e598 foamGraph.*: Simplified scripts
Added a 'deprecated' comment and recommendation to use 'foamLog'
2016-06-25 22:14:25 +01:00
6bf368c925 bin/foamGraph.*: Converted to POSIX shell 2016-06-24 22:32:50 +01:00
6a2a5cbd24 foamListSourceFiles: keep .orig files 2016-06-24 22:32:22 +01:00
c28a45a8c5 Corrected file permissions 2016-06-24 22:32:08 +01:00
dea6a3c6e8 wmake/Allwmake: Completed support for targetType 'objects'
Patch contributed by Mattijs Janssens
2016-06-24 15:25:11 +01:00
186b2c1c69 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
09819c52e0 tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel: Updated entrainment BC 2016-06-24 14:06:30 +01:00
a1b524f8bc etc/config.sh/aliases: For backward-compatibility unalias wmRefresh if it is defined as an alias 2016-06-24 10:36:04 +01:00
6b6a73d9b2 applications/utilities/mesh/generation/Allwmake: Build foamyHexMesh if FOAMY_HEX_MESH is set 2016-06-24 08:48:29 +01:00
56985cdae8 Doxygen: Updated header 2016-06-23 16:06:12 +01:00
bd64b4059f CGAL: Set to use the system CGAL installation by default 2016-06-23 16:05:44 +01:00
d8fcf89570 Doxygen: Cleanup 'dot' files 2016-06-23 16:05:19 +01:00
e680a2716b Updated header 2016-06-23 16:05:11 +01:00
f7801bd815 Corrected file permissions 2016-06-23 16:05:02 +01:00
ab0b5545b4 etc/config.[c]sh: update wmRefresh to call wmUnset before updating the environment 2016-06-21 19:48:19 +01:00
96a038f281 foamyMesh: Simplify support for system CGAL installation 2016-06-21 19:47:46 +01:00
b646237d1d Corrected headers 2016-06-21 16:17:37 +01:00
a2f3512421 etc/caseDicts: Removed trailing whitespace 2016-06-21 16:13:22 +01:00
0aa05185db 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
e6f4d41228 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
04e56bfa6d doc/Doxygen/customdoxygen.css: simplified 2016-06-21 11:04:50 +01:00
7200384f18 Corrected documentation for Doxygen 2016-06-21 11:04:34 +01:00
3990302a54 Updated and simplified the Doxygen documentation 2016-06-20 21:20:28 +01:00
7ecb1422ce 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
d04ea965e2 Update headers 2016-06-20 09:39:47 +01:00
b16756115a Remove/replace deprecated functions and classes 2016-06-20 09:39:02 +01:00
71fdcab771 Updated header documentation processed by Doxygen 2016-06-19 21:23:54 +01:00
0c62c8e1d0 fvPatchFields/derived/flowRateInletVelocity: Write the extrapolateProfile switch 2016-06-17 20:27:31 +01:00
6baef83eca ODESolvers::seulex: Handle possible overflow in the calculation of the dy norm 2016-06-17 18:59:28 +01:00
3f169f9045 bin/tools/doxyFilter.sed: Corrected 2016-06-17 18:59:09 +01:00
6a53ed41ba Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
b3f3562d3c Doxygen documentation: Use the standard 'Usage' rather than the '\heading....' 2016-06-17 17:22:24 +01:00
a7ecd24a7c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 17:14:30 +01:00
de4c018b19 Doxygen documentation: Remove superfluous linebreak 2016-06-17 17:13:39 +01:00
20ad00fc5d 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:13 +01:00
6891950288 singleGraph post-processing: added example configuration comments 2016-06-17 12:31:43 +01:00
4807448bb1 cyclicACMIPolyPatch: Clear geometry when resetting
Patch contributed by Mattijs Janssens
2016-06-17 11:50:56 +01:00
0d7bf4ffe1 cyclicACMIFvPatchField: Corrected declaration of updateCoeffs to be virtual 2016-06-17 11:50:30 +01:00
0f13f839a4 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 09:12:32 +01:00
1319df48d9 Rationalized Doxygen documentation of command-line options 2016-06-17 09:11:58 +01:00
aa12a81474 pitzDaily tutorial: replaced streamline function object
with new #includeFunc directive
2016-06-17 08:18:41 +01:00
b33932e1f6 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 07:38:14 +01:00
2e206db93c foamList: Remove dependency on utility libraries 2016-06-17 07:37:43 +01:00
1024bec26a sample function: add overrides comment and example 2016-06-16 22:51:22 +01:00
9cfccd2093 Simplify and correct Doxygen lists using '-' rather than '\li \c' 2016-06-16 20:10:39 +01:00
c2dcd18887 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 15:32:43 +01:00
c9adfb9806 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
ce11c8288d foamMonitor: fixed bug in test syntax 2016-06-16 15:04:12 +01:00
fb5358eed0 Packaged function objects: reformatted units in Descriptions 2016-06-16 13:04:13 +01:00
787122c9c8 functionObjectList::list: Support recursion when listing functionObject configuration files 2016-06-16 13:02:17 +01:00
64aa9925e4 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
e71b8cabd8 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 08:10:15 +01:00
31e09c82da foamList: Avoid linking optional libraries 2016-06-16 08:09:49 +01:00
42b2086683 ENH: adapter for a list of C++ strings <-> a list of C-style strings
- Translate a list of C++ strings into C-style (argc, argv) pair.
- Translate C-style (argc, argv) pair to list of C++ strings.

Useful when interfacing to external C-code and some libraries
2016-06-16 08:22:53 +02:00
4ae45d9499 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
6aa7f10323 Template cases: removed solver entries using default values from fvSolution 2016-06-15 16:28:42 +01:00
cbbb8bbdad foamList: Complete set of included libraries 2016-06-15 14:23:14 +01:00
b2223913d0 wmake/scripts/wmakeFunctions: Add support for $WM_PROJECT_DIR being a link 2016-06-15 14:22:33 +01:00
b5d7ba3190 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
175b27ff32 functionObjects::surfaceRegion,volRegion: Improved documentation 2016-06-15 09:05:35 +01:00
3d98d6e5c6 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
344f435f54 Tutorials fvSolution files: removed solver entries which use default
values; formatted Switch entries consistently across all cases
2016-06-15 07:39:12 +01:00
dc305b04f3 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
fbc0d4f4f1 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
19eb6fbc6c 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
377ea204ab Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-14 12:18:20 +01:00
6bade21b2a multiphaseCompressibleTurbulenceModels, twoPhaseCompressibleTurbulenceModels, phaseCompressibleTurbulenceModels: Added LIB_LIBS 2016-06-14 12:17:15 +01:00
876a610e47 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
3d810c11dc Tutorials: made laplacianSchemes consistent and correct 2016-06-13 23:38:03 +01:00
15653daa35 etc/caseDicts/postProcessing: simplified configuration files 2016-06-13 17:03:06 +01:00
029825b83c applications/utilities: Reorganized 2016-06-13 17:02:43 +01:00
fdf69b3c25 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 16:42:51 +01:00
fda11f60b1 foamListTimes: moved to applications/utilities/miscellaneous/foamListTimes 2016-06-13 16:42:25 +01:00
dfd9d97646 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
4baac4cd80 sonicFoam cases: removed redundant coefficient in divSchemes 2016-06-13 15:03:57 +01:00
de02a089ba tutorials: Removed references to 'sampleDict' 2016-06-13 14:53:56 +01:00
0e4e28be26 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 14:29:38 +01:00
d9f423ec85 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
cc151ce9a0 pimpleDyMFoam/mixerVesselAMI2D: removed redundant coefficient 2016-06-13 13:12:24 +01:00
ffc5578812 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
ee42f980f6 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:47:53 +01:00
beb44f9bfa Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:43:18 +01:00
118a0f225d functionObjects: Completed transformation of 'source' to vol/surfaceRegion 2016-06-13 09:42:14 +01:00
12814a306d sonicFoam forwardStep tutorial: removed redundant scheme entry 2016-06-13 09:34:01 +01:00
ae1a6dd12d 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
18b632e71d 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
6656aff301 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
6be269ca0b Minor reformatting 2016-06-12 21:12:13 +01:00
f885349921 Removed experimental code 2016-06-12 21:11:55 +01:00
83321bd4f7 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
e2336fefd3 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
326b646bb8 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
0365dec03e functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:26:10 +01:00
0f4df0150a functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:25:00 +01:00
55782e2868 foamList: Updated handling of switches and removed the '-redundant' option which does not work 2016-06-11 15:24:01 +01:00
2d91b2d92c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-11 12:41:03 +01:00
ebac6c1512 pressureDifference packaged function object: corrected include statement 2016-06-11 12:40:59 +01:00
8cca43e259 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
1865b49aae Packaged function objects: added a Description entry 2016-06-11 08:53:04 +01:00
680b4e1f11 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
5b38cb4862 bin/tools/RunFunctions: Simplified using the foamDictionary -value option 2016-06-10 20:24:12 +01:00
29bff520a4 foamDictionary: Added -value option to print the value associated with an entry 2016-06-10 20:23:46 +01:00
2f84769710 bin/tools/RunFunctions: Updated to use foamDictionary 2016-06-10 18:02:26 +01:00
533135ebd4 foamDictionary: Added -expand and -includes options
Replaces expandDictionary utility
2016-06-10 17:39:16 +01:00
d42836f2ec wallFunctionTable: corrected source file name 2016-06-10 14:07:32 +01:00
f5ed8e777a autoRefineMesh: corrected source file and executable names 2016-06-10 14:05:30 +01:00
c8188265f1 foamDebugSwitches -> foamList -debug 2016-06-10 13:34:58 +01:00
603e34d514 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
079a024374 functionObjects::fieldValue: Added support for 'field' entry
Added patchIntegrate configuration
2016-06-10 10:37:37 +01:00
0aa4d70b9d applications/utilities: FOAM_USER_APPBIN -> FOAM_APPBIN 2016-06-10 10:35:57 +01:00
829f97fb93 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-10 08:29:10 +01:00
4b5905e535 functionObjects::writeRegisteredObject -> functionObjects::writeObjects
Added configuration file etc/caseDicts/postProcessing/fields/writeObjects
2016-06-10 08:28:13 +01:00
288ead131d Descriptions of solvers corrected and made more consistent and more user-friendly 2016-06-09 18:59:40 +01:00
6d5db96ad9 ENH: subdict output with leading name (issue #255)
- Introduce dictionary::writeEntries for better code-reuse.

  Before
  ======
      os << nl << indent << "name";
      dict.write(os);

  After
  =====
      dict.write(os, "name");
2016-06-09 18:33:56 +01:00
792eaa3566 stressComponents: utility replaced by the 'R' and 'components' functionObject used with the '-postProcess' option 2016-06-09 18:09:27 +01:00
acdb7a0324 wallGradU: utility replaced by the 'grad' functionObject used with the '-postProcess' option 2016-06-09 18:06:39 +01:00
657c2909ed createTurbulenceFields: utility replaced by 'turbulenceFields' functionObject used with the '-postProcess' option 2016-06-09 17:17:19 +01:00
0f5b4f3c49 functionObjects: Corrected docs 2016-06-09 16:29:06 +01:00
6a03830b05 R: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:28:30 +01:00
aeb667e1f4 STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)
- relocate common dictionary output into codedBase class
2016-06-09 16:13:04 +01:00
13f91bf5de functionObjects: 'output:' -> 'write:' for consistency with the naming of the 'write' function 2016-06-09 16:06:44 +01:00
fd734554b9 functionObjects::yPlus: Rationalized the functionality in 'execute' and 'write' 2016-06-09 16:06:09 +01:00
4734b1af5b wallShearStress: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:05:13 +01:00
e175594e9f Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:52:04 +01:00
ca588fb2c5 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:36:16 +01:00
df904757b4 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
02886159cb Update plateHole case to be consistent with User Guide tutorial 2016-06-08 15:34:16 +01:00
43b3fa2ce3 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
421d3ffd5e Name of packaged function object consistent with filename
to enable the postProcess -func <function> option to work
2016-06-08 14:15:20 +01:00
ee6188ed09 Removed fixedWalls from cuttingPatches because it is redundant now fixedWalls is noSlip 2016-06-08 14:08:26 +01:00
c32f4fef00 Corrected RAS cavity case to be consistent with User Guide tutorial 2016-06-08 14:01:50 +01:00
70f3947c48 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
c93dcf98a6 applications/utilities/miscellaneous/foamDictionary/Make/options: Removed debug options 2016-06-07 16:27:22 +01:00
680c687407 src/rigidBodyMeshMotion/Make/options: Removed debug switches 2016-06-07 16:25:29 +01:00
6fe3812698 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
c88070040e 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
f2d9959bae foamConfigurePaths: Updated foamInstall option 2016-06-06 19:32:01 +01:00
2b71ea6f58 Update headers 2016-06-06 17:22:23 +01:00
b7243e2d19 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
048a3a7ada 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
06f22a9bf3 ENH: cleanup Ostream to ease usage (issue #254)
- Include newline in beginBlock/endBlock, since this corresponds to
  the standard usage. The beginBlock now takes keyType instead of word.

- Provide Ostream::writeEntry method to reduce clutter and simplify
  writing of entries.

  Before
  ======
      os << indent << "name" << nl
         << indent << token::BEGIN_BLOCK << incrIndent << nl;
      os.writeKeyword("key1") << val1 << token::END_STATEMENT << nl;
      os.writeKeyword("key2") << val2 << token::END_STATEMENT << nl;
      os << decrIndent << indent << token::END_BLOCK << nl;

  After
  =====
      os.beginBlock("name");
      os.writeEntry("key1", val1);
      os.writeEntry("key2", val2);
      os.endBlock();

- For completeness, support inline use of various Ostream methods.
  For example,

      os << beginBlock;
      os.writeEntry("key1", val1);
      os.writeEntry("key2", val2);
      os << endBlock;

- For those who wish to write in long form, can also use endEntry inline:

      os.beginBlock("name");
      os.writeKeyword("key1") << val2 << endEntry;
      os.writeKeyword("key2") << val2 << endEntry;
      os.endBlock();

The endEntry encapsulates a semi-colon, newline combination.
2016-06-06 11:51:05 +01:00
34e48fff4c 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
b625d2ba8e etc/config.*/unset: Added CGAL-related environment variables 2016-06-05 18:22:28 +01:00
a3a04ceae9 ORourkeCollision: Cache access to the UList of parcel pointers for cell 2016-06-04 18:49:10 +01:00
d60ae9a496 ORourkeCollision: use a CompactListList to avoid memory allocation overhead 2016-06-04 17:45:35 +01:00
76f6236bbe DynamicList: minor cleanup 2016-06-04 17:45:11 +01:00
315ce79660 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
2443ed0a70 wmake/rules/linux64GccKNL: Optimized compilation options for the Knights Landing MIC processor 2016-06-04 10:13:22 +01:00
d984a96645 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
dd281330bc foamInfoExec: Time listing functionality superseded by foamListTimes 2016-06-03 19:23:27 +01:00
82236c2b81 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
526ecfecf4 ENH: group info about particle output with "{}" etc
- The only reasonable means of mirroring the data layout.

  The '{}' delimiters mark the extent of the binary writes.

  The primitives 'label' and 'scalar' are directly supported and correspond
  to known byte widths.

  Using "List<scalar>" was a bad choice, since this triggers unpleasant
  tokenizing behaviour. Instead use 'scalars' as a provisional placeholder
  to indicates a list of scalar values. However, there is currently no
  support for actually handling lists of scalars, for several reasons:

   * The information is not available at compile-time.
     The cloud or parcel must be queried. And it must be guaranteed
     that this value is consistent for the entire cloud.

   * Binary output of lists is currently not great for determining the
     the encoded width:
        - A zero-size list is a single '0'.
        - The leading size is a non-constant number of digits.
        - There are prefix/suffix newlines need to be tagged and
          skipped.

  The special '*' (glob) token indicates that the remaining content
  has a dynamic variable length and nothing reasonable can be known
  about their sizes. This is exemplified by the collision records.
2016-06-02 17:39:19 +02:00
2b5e73fbce BUG: incorrect face order/orientation in boundBox (issue #196)
- was fortunately not used anywhere previously
2016-07-28 07:00:33 +02:00
79088bb611 functionObjects/forces: The 'rhoInf' entry is now only required if 'rho' is set to 'rhoInf' 2016-06-02 15:14:14 +01:00
90eda1279e Minor reformatting 2016-06-02 15:14:01 +01:00
2cdebff3b7 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
723b92ddc1 etc/caseDicts/postProcessing: Updated now that #includeFunc handles function arguments 2016-06-01 21:52:07 +01:00
6000ea217f postProcess: Added '-list' option to list the available configured functionObjects 2016-06-01 16:28:07 +01:00
c7048a7b93 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
72db301f54 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating: Minor cleanup 2016-05-31 21:22:13 +01:00
ea6d010f51 tutorials/incompressible/pimpleDyMFoam/propeller: Use the standard 'Q' functionObject configuration 2016-05-31 21:21:41 +01:00
1be464d23d functionObjectList::readFunctionObject: Add support for functionObject arguments containing '()'s 2016-05-31 17:47:21 +01:00
c022a97ff4 HashTable: Correct error messages
Resolves bug-report http://bugs.openfoam.org/view.php?id=2106
2016-05-31 17:18:23 +01:00
a9492b074f Updated headers 2016-05-31 17:18:14 +01:00
7c45066996 includeEntry, includeEtcEntry, includeIfPresentEntry: report -> log
for consistency with the 'Log' macro.
2016-05-31 17:17:24 +01:00
7454518bc5 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
cb1523dbd9 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
c4eedd4762 etc/config.*/paraview: Upgraded to ParaView-5.0.1 2016-05-30 21:27:11 +01:00
1be96a546c Added forward declaration of friend functions 2016-05-30 13:21:29 +01:00
fef82f935c Updated header 2016-05-30 08:31:21 +01:00
d438da1eb7 ACMI: Corrected conservation issue
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2057
2016-05-30 08:29:11 +01:00
3f608e95e6 Added forward declaration of friend functions 2016-05-30 08:28:35 +01:00
35dba48db1 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
a4f8f589de Added forward declaration of friend functions 2016-05-29 22:28:37 +01:00
227811bb2e etc/config.*: Added support for gcc-6.1 2016-05-29 22:28:07 +01:00
482869eea4 CGAL: Upgraded to 4.8 2016-05-29 22:27:46 +01:00
8ab6b4df2c 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
e4dc50dcb0 postProcessing: Replaced 'foamCalc' and the 'postCalc' utilities
with the more general and flexible 'postProcess' utility and '-postProcess' solver option

Rationale
---------

Both the 'postProcess' utility and '-postProcess' solver option use the
same extensive set of functionObjects available for data-processing
during the run avoiding the substantial code duplication necessary for
the 'foamCalc' and 'postCalc' utilities and simplifying maintenance.
Additionally consistency is guaranteed between solver data processing
and post-processing.

The functionObjects have been substantially re-written and generalized
to simplify development and encourage contribution.

Configuration
-------------

An extensive set of simple functionObject configuration files are
provided in

OpenFOAM-dev/etc/caseDicts/postProcessing

and more will be added in the future.  These can either be copied into
'<case>/system' directory and included into the 'controlDict.functions'
sub-dictionary or included directly from 'etc/caseDicts/postProcessing'
using the '#includeEtc' directive or the new and more convenient
'#includeFunc' directive which searches the
'<etc>/caseDicts/postProcessing' directories for the selected
functionObject, e.g.

functions
{
    #includeFunc Q
    #includeFunc Lambda2
}

'#includeFunc' first searches the '<case>/system' directory in case
there is a local configuration.

Description of #includeFunc
---------------------------

    Specify a functionObject dictionary file to include, expects the
    functionObject name to follow (without quotes).

    Search for functionObject dictionary file in
    user/group/shipped directories.
    The search scheme allows for version-specific and
    version-independent files using the following hierarchy:
    - \b user settings:
      - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing
      - ~/.OpenFOAM/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is set):
      - $WM_PROJECT_SITE/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_SITE/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is not set):
      - $WM_PROJECT_INST_DIR/site/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_INST_DIR/site/caseDicts/postProcessing
    - \b other (shipped) settings:
      - $WM_PROJECT_DIR/etc/caseDicts/postProcessing

    An example of the \c \#includeFunc directive:
    \verbatim
        #includeFunc <funcName>
    \endverbatim

postProcess
-----------

The 'postProcess' utility and '-postProcess' solver option provide the
same set of controls to execute functionObjects after the run either by
reading a specified set of fields to process in the case of
'postProcess' or by reading all fields and models required to start the
run in the case of '-postProcess' for each selected time:

postProcess -help

Usage: postProcess [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

 pimpleFoam -postProcess -help

Usage: pimpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

The functionObjects to execute may be specified on the command-line
using the '-func' option for a single functionObject or '-funcs' for a
list, e.g.

postProcess -func Q
postProcess -funcs '(div(U) div(phi))'

In the case of 'Q' the default field to process is 'U' which is
specified in and read from the configuration file but this may be
overridden thus:

postProcess -func 'Q(Ua)'

as is done in the example above to calculate the two forms of the divergence of
the velocity field.  Additional fields which the functionObjects may depend on
can be specified using the '-field' or '-fields' options.

The 'postProcess' utility can only be used to execute functionObjects which
process fields present in the time directories.  However, functionObjects which
depend on fields obtained from models, e.g. properties derived from turbulence
models can be executed using the '-postProcess' of the appropriate solver, e.g.

pisoFoam -postProcess -func PecletNo

or

sonicFoam -postProcess -func MachNo

In this case all required fields will have already been read so the '-field' or
'-fields' options are not be needed.

Henry G. Weller
CFD Direct Ltd.
2016-05-28 18:58:48 +01:00
6f9573bb12 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
c242c1762a ReadFields: Added functions to read selected fields and store in the objectRegistry 2016-05-26 22:59:08 +01:00
f7e6e7d9a4 functionObjects::blendingFactor: Minor reformat 2016-05-26 22:58:46 +01:00
af39491c04 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
ecb05dd66b 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
fd24c05cf9 etc/caseDicts/postProcessing: Updated for recent developments in functionObjects 2016-05-26 16:31:32 +01:00
3186245b92 etc/caseDicts/postProcessing/fields: Added 'components' and 'div' 2016-05-26 15:34:15 +01:00
3b3d6809cf etc/caseDicts/postProcessing/fields/Q: Simplified 2016-05-26 15:34:01 +01:00
712fba33e3 functionObjects::Q: Result field named "Q" if the field is "U" otherwise "Q(<fieldName>)" 2016-05-26 15:32:31 +01:00
9d71c18fcf functionObjects::randomise: New functionObject to create a field with a random perturbation 2016-05-26 15:32:10 +01:00
1940cf8413 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
d3994638b4 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
4cf777fc3f functionObjects::magSqr, components: New functionObjects to calculate the 'magSqr' and 'components' of a field 2016-05-26 10:15:14 +01:00
e5d75e9824 regionFunctionObject: Indent 'write' messages 2016-05-26 10:14:51 +01:00
1b500ea18d functionObjects::fieldExpression: Corrected docs 2016-05-26 10:14:29 +01:00
693813aa90 functionObjects:🔍 Removed redundant warning 2016-05-26 10:14:07 +01:00
293267e924 functionObjects::blendingFactor: Removed redundant warning 2016-05-26 10:13:36 +01:00
ee462f8241 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
82ca430a02 thermoSingleLayer: Provide better stabilization for the energy equation as delta -> 0 2016-05-25 18:12:07 +01:00
6463192261 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
1de91282cd regionFunctionObject: Moved the field/object maintenance functions from fvMeshFunctionObject into regionFunctionObject 2016-05-25 16:26:57 +01:00
0e3f655865 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
bae742112f postProcess: catch missing field errors to process further time-directories 2016-05-25 15:39:37 +01:00
bc6485b8f4 codedFunctionObject: Updated documentation 2016-05-24 14:01:33 +01:00
cc84047797 functionObjects: Rationalize logging 2016-05-24 10:40:28 +01:00
6b80811b1f functionObjects::surfaceInterpolateFields: Derive from fvMeshFunctionObject 2016-05-24 10:40:02 +01:00
e72a50cf47 functionObjects::fieldAverage,turbulenceFields: derive from fvMeshFunctionObject 2016-05-24 09:57:41 +01:00
6ce303c79a functionObjects::regionFunctionObject: Added optional 'log' entry (defaults to true) 2016-05-24 09:03:41 +01:00
b634f5af08 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
f67d8dd695 functionObjects::forces: Corrected lookup of fluidThermo 2016-05-23 21:45:07 +01:00
be2ceff465 etc/config.*/aliases: Renamed aliases to be less SHOUTY and confusing 2016-05-23 18:47:28 +01:00
aaa453d16e functionObjects::enstrophy: new functionObject to calculate the enstrophy of the velocity 2016-05-23 15:22:15 +01:00
3d0c94bd67 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
63058198cf functionObjects: Corrected 'grp' entries for 'field' functionObjects 2016-05-23 14:56:06 +01:00
23e2d0bdff DimensionedScalarField, GeometricScalarField: Added more rigorous dimension-checking for 'pow' functions 2016-05-23 12:04:02 +01:00
2fd07c1252 functionObjects::pressure: Use the new 'tmp' 'move' constructor
to return unchanged 'tmp' arguments
2016-05-23 12:03:19 +01:00
3565b5491f tmp: Added 'move' constructor to simplify return of unchanged 'tmp' arguments. 2016-05-23 12:01:36 +01:00
0a43d60567 functionObjects::pressureTools: simplified, standardized, rationalized and renamed 'pressure' 2016-05-22 21:29:46 +01:00
e134af2a2d functionObjects::residuals: Minor reformatting 2016-05-22 21:29:22 +01:00
2dbd3efe12 functionObjects::writeDictionary: Write the dictionaries from the write function not execute 2016-05-22 21:28:46 +01:00
39e0368d6b functionObjects: Corrected member function documentation 2016-05-22 21:28:24 +01:00
8b3b04b2f0 tutorials/incompressible/pimpleDyMFoam/propeller/system/Q: Updated 2016-05-22 19:03:23 +01:00
dab1e106c4 functionObjects/field: link turbulenceModel 2016-05-22 19:02:59 +01:00
3ba11a6e3a functionObjects::yPlus: simplified, standardized, rationalized 2016-05-22 17:08:40 +01:00
eb79a51fa6 fvcCellReduce: Correct signature and implementation of 'cellReduce' of a 'tmp' field 2016-05-22 17:07:53 +01:00
3c44f08d52 functionObjects::blendingFactor: simplified, standardized, rationalized 2016-05-22 16:30:48 +01:00
15773bf1b7 fvMeshFunctionObject: Rename 'write' -> 'writeField' to avoid clash with base-class 2016-05-22 16:30:12 +01:00
d474c97ced transformGeometricField: Use '.ref()' to obtain non-const access to a temporary 2016-05-22 14:29:59 +01:00
7fb2739437 functionObjects: Standardized field template parameter names 2016-05-22 14:29:14 +01:00
28359c53ba functionObjects/field/fieldCoordinateSystemTransform: simplified, standardized, rationalized 2016-05-22 14:26:40 +01:00
43110ffd38 functionObjects::Peclet -> functionObjects::PecletNo for consistency with functionObjects::CourantNo 2016-05-22 11:18:16 +01:00
8f68a493e8 functionObjects: Cleanup, reorganize and simplify 2016-05-21 23:12:12 +01:00
8e04042137 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
f73a8e6160 functionObjectList: Filter unnecessary warning from new 'libs' entry 2016-05-21 23:10:06 +01:00
3eec5854be Standardized the selection of required and optional fields in BCs, fvOptions, functionObjects etc.
In most boundary conditions, fvOptions etc. required and optional fields
to be looked-up from the objectRegistry are selected by setting the
keyword corresponding to the standard field name in the BC etc. to the
appropriate name in the objectRegistry.  Usually a default is provided
with sets the field name to the keyword name, e.g. in the
totalPressureFvPatchScalarField the velocity is selected by setting the
keyword 'U' to the appropriate name which defaults to 'U':

        Property     | Description             | Required    | Default value
        U            | velocity field name     | no          | U
        phi          | flux field name         | no          | phi
        .
        .
        .

However, in some BCs and functionObjects and many fvOptions another
convention is used in which the field name keyword is appended by 'Name'
e.g.

        Property     | Description             | Required    | Default value
        pName        | pressure field name     | no          | p
        UName        | velocity field name     | no          | U

This difference in convention is unnecessary and confusing, hinders code
and dictionary reuse and complicates code maintenance.  In this commit
the appended 'Name' is removed from the field selection keywords
standardizing OpenFOAM on the first convention above.
2016-05-21 20:28:20 +01:00
a84ffc3968 Updated header 2016-05-21 20:27:29 +01:00
29c985feec temperatureCoupledBase: Rationalized the selection of the method for obtaining the thermal conductivity
kappa -> kappaMethod
kappaName -> kappa
2016-05-21 20:26:23 +01:00
b00d967c8b Updated headers 2016-05-21 20:24:31 +01:00
f5ce43069d 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
546159a86c functionObjects: Simplified and reorganised using the fieldExpression base-class 2016-05-21 20:10:47 +01:00
3009367a88 fvMeshFunctionObject: Improved log output 2016-05-21 20:08:28 +01:00
447c850987 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
af57fd2a3b wrmdep: Now prints the full path of the .dep files removed 2016-05-21 17:19:07 +01:00
16714f3569 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
6d562d1a5c codedBase.H: Minor reformat 2016-05-21 13:56:27 +01:00
1c48d056e6 tmp, autoPtr: Provide a typedef 'Type' to the stored type 2016-05-21 13:55:47 +01:00
03c497f6df Updated header 2016-05-19 09:40:29 +01:00
bf14e44bb3 Updated code comments 2016-05-19 09:40:17 +01:00
f2432865b5 Scalar: Documented 'posPart' and 'negPart' 2016-05-19 09:39:45 +01:00
83c7e97655 dynamicCode: Renamed 'redirectType' to 'name' to clarify the purpose
of the entry which is to provide the name of the generated class.

'redirectType' is supported for backward-compatibility.
2016-05-18 23:10:42 +01:00
7af20fd9db IOOutputFilter: Updated the signature of the 'write' function to correspond to the new functionObject 2016-05-18 23:09:26 +01:00
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
ac632e7984 functionObjects: minor reformatting of output 2016-05-18 13:37:08 +01:00
5af1a7e4f3 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
354bc8bdcb 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
2b501b7e85 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
195b73e0f7 functionObject: Call 'execute' then 'write' from the default 'end' function. 2016-05-17 22:56:47 +01:00
76caf29e0b patchProbes: Corrected the signature of the write function 2016-05-17 21:49:17 +01:00
2ac07f386e patchProbes: Corrected the signature of the write function 2016-05-17 21:40:16 +01:00
f871f51970 Update loop index name probeI -> probei 2016-05-17 20:33:19 +01:00
3b63c760a9 writeRegisteredObject: Now writes the <time>/uniform/time dictionary 2016-05-17 12:36:49 +01:00
d6ce71f39a reconstructPar: Added '-noFields' option 2016-05-17 09:25:29 +01:00
cfb6d6c84e functionObjects/lagrangian/icoUncoupledKinematicCloud: Minor simplification of documentation 2016-05-17 09:24:58 +01:00
947fdf84af 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
fc0bdee154 dynamicCode/functionObjectTemplate: Updated and simplified by deriving from the regionFunctionObject base-class 2016-05-16 22:23:53 +01:00
1c992eba9c etc/codeTemplates/functionObject: Updated and simplified using fvMeshFunctionObject as the base-class 2016-05-16 22:16:22 +01:00
83bae2efd3 functionObjects: Renamed dictionary entry 'functionObjectLibs' -> 'libs'
This changes simplifies the specification of functionObjects in
controlDict and is consistent with the 'libs' option in controlDict to
load special solver libraries.

Support for the old 'functionObjectLibs' name is supported for backward compatibility.
2016-05-16 22:09:01 +01:00
a44857b4f2 functionObjects: Simply functionObjects requiring access to the fvMesh using fvMeshFunctionObject 2016-05-16 16:21:06 +01:00
e7fc198592 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
fd38002d57 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
ee0aff67ce etc/codeTemplates/functionObject: Updated to correspond to the new functionObject structure 2016-05-15 21:47:18 +01:00
248ab45998 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
78d2971b21 functionObjects: rewritten to all be derived from 'functionObject'
- Avoids the need for the 'OutputFilterFunctionObject' wrapper
  - Time-control for execution and writing is now provided by the
    'timeControlFunctionObject' which instantiates the processing
    'functionObject' and controls its operation.
  - Alternative time-control functionObjects can now be written and
    selected at run-time without the need to compile wrapped version of
    EVERY existing functionObject which would have been required in the
    old structure.
  - The separation of 'execute' and 'write' functions is now formalized in the
    'functionObject' base-class and all derived classes implement the
    two functions.
  - Unnecessary implementations of functions with appropriate defaults
    in the 'functionObject' base-class have been removed reducing
    clutter and simplifying implementation of new functionObjects.
  - The 'coded' 'functionObject' has also been updated, simplified and tested.
  - Further simplification is now possible by creating some general
    intermediate classes derived from 'functionObject'.
2016-05-15 16:40:01 +01:00
ce0cd35185 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
274d1df8a4 snappyHexMesh: Automatically remove zero-sized patches
All patches are preserved if the 'keepPatches' option is set true.
Patch contributed by Mattijs Janssens
2016-05-13 17:47:38 +01:00
bd52e35f77 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
ded5f35dd6 functionObjects: Separated 'execute' and 'write' functions to simplify support for post-processing 2016-05-13 09:05:29 +01:00
6164c2f262 Standardized the naming of functions which control the writing of fields etc.
to have the prefix 'write' rather than 'output'

So outputTime() -> writeTime()

but 'outputTime()' is still supported for backward-compatibility.

Also removed the redundant secondary-writing functionality from Time
which has been superseded by the 'writeRegisteredObject' functionObject.
2016-05-12 17:38:01 +01:00
c983670c91 functionObjects: Changed options 'outputControl' -> 'writeControl' and 'outputInterval' -> 'writeInterval'
for consistency with the time controls in controlDict and to avoid
unnecessary confusion.  All code and tutorials have been updated.

The old names 'outputControl' and 'outputInterval' are but supported for
backward compatibility but deprecated.
2016-05-12 11:38:11 +01:00
cacbc688d8 Doxygen documentation: Use C++-style comments for enumeration elements 2016-05-11 23:10:42 +01:00
84f6355ad0 OutputFilterFunctionObject: Removed support for "dictionary" option
Superseded by the more general #include dictionary directive.
2016-05-11 23:08:48 +01:00
acdfa68116 OutputFilterFunctionObject: Simplify construction 2016-05-11 14:40:55 +01:00
8152652476 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
7389969e94 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
437030a57d 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
82151962c5 functionObjects: Removed redundant "start()" member function 2016-05-11 10:20:39 +01:00
862d963a95 functionObjectList: Print the messages from errors caught during functionObject construction
Exit on FatalIOError
2016-05-11 10:19:07 +01:00
32dbb01e96 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
080908732d src/postProcessing/functionObjects: Removed unused IOOutputFilter clutter 2016-05-10 12:54:42 +01:00
1343b24611 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
1ab0875293 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
80a0b4a124 applications/solvers/heatTransfer/chtMultiRegionFoam: Check there are fluid meshes present for the '-postProcess' option 2016-05-09 19:55:11 +01:00
34811e43cd tutorials/incompressible/simpleFoam: Updated for changes in functionObjects 2016-05-09 19:12:38 +01:00
fe16f10f26 tutorials: "readFields" is no longer needed to post-process functionObjects
Use the solver '-postProcess' command-line option instead of execFlowFunctionObjects
2016-05-09 17:03:15 +01:00
5469e21fe2 execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option 2016-05-09 17:02:00 +01:00
98f69d417f applications/solvers/heatTransfer: Added -postProcess option
See also commit cc455173ff
2016-05-09 16:28:48 +01:00
30a18e31ae 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
0dc0301da7 applications/solvers/lagrangian: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:55:23 +01:00
0297dd9187 Updated headers 2016-05-09 15:23:36 +01:00
e450e8048b applications/solvers/discreteMethods: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:23:07 +01:00
008086f64c applications/solvers/compressible: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:16:22 +01:00
364044243a applications/solvers/combustion: Added -postProcess option
See also commit cc455173ff
2016-05-09 14:51:21 +01:00
7dca6b6a21 applications/solvers: Added -postProcess option
See also commit cc455173ff
2016-05-09 14:08:15 +01:00
6c275f2aa6 metisDecomp: Reverted 7cc9ba0a53 due to compilation error 2016-05-09 13:28:09 +01:00
7cc9ba0a53 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
89159e7f39 applications/solvers/incompressible: Added -postProcess option
See also commit cc455173ff
2016-05-08 22:40:42 +01:00
38916e66bb applications/solvers/multiphase: Added -postProcess option
See also commit cc455173ff
2016-05-08 20:57:08 +01:00
7bbad53240 interPhaseChangeFoam, multiphaseInterFoam, potentialFreeSurfaceFoam: Added -postProcess option
See also commit cc455173ff
2016-05-08 17:23:36 +01:00
fce8d0310d interFoam: Added -postProcess option
See also commit cc455173ff
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1301
2016-05-08 14:32:23 +01:00
cc455173ff 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
224f014e96 tutorials: Removed unused "useReactionRate" option 2016-05-07 09:40:20 +01:00
8bc3d5e4fb functionObjects: Renamed option "adjustableTime" -> "adjustableRunTime" for consistency with Time 2016-05-07 09:32:00 +01:00
9461c7828f foamToVTK: Added Allwmake 2016-05-06 17:42:22 +01:00
0f17d95410 foamDebugSwitches: Updated for changes in functionObjects 2016-05-06 17:41:56 +01:00
14abfa742b 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
a50015a423 foamToVTK: Use UPtrList rather than PtrList 2016-05-06 14:11:38 +01:00
6ba5b46d0f 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
81ba5b7757 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
f779557d38 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
763a3cecb8 etc/cshrc: Removed continuation lines from $foamOldDirs 2016-05-05 23:36:35 +01:00
ca3efa5776 etc/config.csh: Capitalized comments 2016-05-05 15:52:05 +01:00
ce81c49d2e 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
cf4b35693c tutorials: Remove the unnecessary "\"s on "cp", "rm" and "mv"
Resolves bug-report http://bugs.openfoam.org/view.php?id=2077
2016-05-05 15:17:55 +01:00
637ee8830f processorPolyPatch: Avoid nesting loops with the same index 2016-05-05 15:17:08 +01:00
4281d14eb1 functionObjects: Updated documentation 2016-05-04 21:01:22 +01:00
566f2734b9 foamToVTK: Separated into the library libfoamToVTK and the utility foamToVTK 2016-05-04 15:16:33 +01:00
891b2a0f8b functionObjects: Moved functionObjects namespace documentation into functionObject.H 2016-05-04 13:56:36 +01:00
f6c670dcac functionObjects: Updated docs 2016-05-04 08:51:39 +01:00
ebafc87137 setTimeStepFunctionObject: Added functionObjects namespace 2016-05-03 23:39:14 +01:00
c70c12a2bb functionObjects: Simplified organization and naming 2016-05-03 23:37:28 +01:00
ff6d8914da 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
318123e7e4 Multiphase solvers: Update p_rgh following density changes 2016-05-03 15:51:15 +01:00
f7f1eea359 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
055b41e4da 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
698f135426 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/system/fvSolution: Updated to improve stability 2016-05-03 14:52:38 +01:00
bdf556e628 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
32762aa1f9 Change field loop index from "fieldI" to "fieldi" 2016-05-02 18:20:48 +01:00
0534a225fd 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
09262f5273 src/postProcessing/functionObjects: Moving the functionObjects into the "functionObjects" namespace 2016-05-01 14:48:30 +01:00
a3aa589263 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
4c5052a3a1 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
5af5661e4b 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
1b34231340 tutorials: Renamed .org -> .orig
See http://www.openfoam.org/mantisbt/view.php?id=2076
  - .org is the file extension for emacs org-mode as well
  - .orig is more to the point (.org isn't always recognized as "original")
  - .original is too long, although more consistent with the convention
    of source code file naming

Update script contributed by Bruno Santos
2016-04-30 21:53:50 +01:00
81f31acbb3 Updated headers 2016-04-30 21:53:19 +01:00
3c053c2fe6 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
ccd958a8f1 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
68b69a25a4 CrankNicolsonDdtScheme: Use the new GeometricField constructor from DimensionedField and boundary FieldField 2016-04-30 14:29:11 +01:00
5df2b96489 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 22f4ad32b1
2016-04-30 14:25:21 +01:00
67e2d02800 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
3c61a1dbeb 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
154150d710 Updated header 2016-04-29 17:18:33 +01:00
c43b78e8de 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
81041e5d3c 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
62c62abda8 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
15b36331fe Remove .internalField() clutter for const-access to the internal field 2016-04-28 12:37:31 +01:00
ea5401c770 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 4a57b9be2e

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
4a57b9be2e 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
c9a57e4009 tutorials/combustion/fireFoam/les: Added missing ph_rgh.orig files 2016-04-27 16:18:25 +01:00
ec5cc92d37 geometricOneField: Added support for DimensionedInternalField 2016-04-27 12:46:38 +01:00
b2ea0ab2bd DimensionedField: Corrected (currently unused) constructor from tmp 2016-04-27 12:45:55 +01:00
785cebed88 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
f539fd4c4b Replaced StaticAssert with the C++11 equivalent static_assert 2016-04-26 20:44:55 +01:00
f790663b78 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:38:33 +01:00
070515e9db Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 3cfc54ba09.
2016-04-26 20:33:45 +01:00
3cfc54ba09 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
dc2951ca2f GeometricField::dimensionedInternalField() -> GeometricField::dimensionedInternalFieldRef()
See also commit 22f4ad32b1
2016-04-26 16:29:43 +01:00
6962fd3ba4 fvDOM: Corrected type of maxIter_
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2068
2016-04-26 10:51:09 +01:00
4107d312fa wmake/rules/linux.*Icc: Remove -xHost option which causes surfaceFeatureExtract to fail for some cases 2016-04-25 22:29:22 +01:00
22f4ad32b1 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
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
2d5ff31649 boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
3758659ac6 noScatter.H: Corrected #ifdef
Resolved bug-report http://openfoam.org/mantisbt/view.php?id=2065
2016-04-24 21:05:29 +01:00
a0e86416c5 Updated header 2016-04-23 23:38:10 +01:00
d8f8498c87 boundaryField() -> boundaryFieldRef() 2016-04-23 23:37:53 +01:00
7c12f7743b boundaryField() -> boundaryFieldRef() 2016-04-23 23:16:30 +01:00
45f73bf64f 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
88561eea95 plenumPressureFvPatchScalarField: New plenum pressure boundary condition
This condition creates a zero-dimensional model of an enclosed volume of
gas upstream of the inlet. The pressure that the boundary condition
exerts on the inlet boundary is dependent on the thermodynamic state of
the upstream volume.  The upstream plenum density and temperature are
time-stepped along with the rest of the simulation, and momentum is
neglected. The plenum is supplied with a user specified mass flow and
temperature.

The result is a boundary condition which blends between a pressure inlet
condition condition and a fixed mass flow. The smaller the plenum
volume, the quicker the pressure responds to a deviation from the supply
mass flow, and the closer the model approximates a fixed mass flow. As
the plenum size increases, the model becomes more similar to a specified
pressure.

The expansion from the plenum to the inlet boundary is controlled by an
area ratio and a discharge coefficient. The area ratio can be used to
represent further acceleration between a sub-grid blockage such as fins.
The discharge coefficient represents a fractional deviation from an
ideal expansion process.

This condition is useful for simulating unsteady internal flow problems
for which both a mass flow boundary is unrealistic, and a pressure
boundary is susceptible to flow reversal. It was developed for use in
simulating confined combustion.

tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance:
    helmholtz resonance tutorial case for plenum pressure boundary

This development was contributed by Will Bainbridge
2016-04-23 13:43:49 +01:00
673e0d1704 fireFoam: Added optional hydrostatic initialization of the pressure and density
Also added the new prghTotalHydrostaticPressure p_rgh BC which uses the
hydrostatic pressure field as the reference state for the far-field
which provides much more accurate entrainment is large open domains
typical of many fire simulations.

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

    hydrostaticInitialization yes;
    nHydrostaticCorrectors 5;

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

    ph_rgh
    {
        $p_rgh;
    }

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

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

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

which is used in the relationship between p_rgh and p:

    p = p_rgh + rho*gh + pRef;

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

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

Henry G. Weller
CFD Direct Ltd.
2016-04-23 10:04:39 +01:00
6a7c4aca53 thermoSingleLayer: Corrected handling of non-constant Cp 2016-04-23 10:03:40 +01:00
a78beef988 JohnsonJacksonSchaefferFrictionalStress: Updated I2D expression 2016-04-22 15:13:45 +01:00
bbca1fd5e7 reactingTwoPhaseEulerFoam: Corrected kineticTheory frictional stress at walls
Patch contributed by Juho Peltola, VTT

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

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2058
2016-04-22 14:25:58 +01:00
bbd6bfff22 foamCalcFunctions: Avoid the inclusion of fvCFD.H 2016-04-22 14:21:50 +01:00
2e99db9c22 ENH: OSspecific - softlink handling (fixes #164)
Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory
2014-04-23 15:00:00 +02:00
17580 changed files with 1093899 additions and 502360 deletions

16
.gitignore vendored
View File

@ -4,10 +4,9 @@
# Editor and misc backup files - anywhere
*~
.*~
.*.swp
*.bak
*.bak[0-9][0-9]
*.orig
*.orig[0-9][0-9]
\#*\#
# File-browser settings - anywhere
@ -41,8 +40,12 @@ solaris*Gcc*/
SunOS*Gcc*/
platforms/
# Reinstate wmake/rules that might look like build directories
!wmake/rules/*/
# Top-level build directories
/build/
/platforms/
# Reinstate wmake rules that might look like build directories
!/wmake/rules/*/
# doxygen generated documentation
doc/Doxygen/html
@ -60,10 +63,12 @@ doc/Doxygen/DTAGS
/etc/prefs.sh
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
/wmake/rules/General/mplibUSER*
# Source packages - anywhere
*.tar.bz2
*.tar.gz
*.tar.xz
*.tar
*.tgz
*.gtgz
@ -77,9 +82,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

9
.gitmodules vendored Normal file
View File

@ -0,0 +1,9 @@
[submodule "cfmesh"]
path = modules/cfmesh
url = https://develop.openfoam.com/Community/integration-cfmesh.git
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "catalyst"]
path = modules/catalyst
url = https://develop.openfoam.com/Community/catalyst.git

View File

@ -1,46 +1,62 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Run from OPENFOAM top-level directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
# Parse arguments for library compilation without documentation by default
genDoc=0
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmakeCheckPwd "$WM_PROJECT_DIR" || {
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
#------------------------------------------------------------------------------
echo "========================================"
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "Starting ${WM_PROJECT_DIR##*/} ${0##*}"
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo
[ -n "$FOAM_EXT_LIBBIN" ] || {
echo "Allwmake error: FOAM_EXT_LIBBIN not set"
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
# Compile wmake support applications
(cd wmake/src && make)
# Compile wmake tools
(cd "${WM_DIR:-wmake}/src" && make)
# Compile ThirdParty libraries and applications
if [ -d "$WM_THIRD_PARTY_DIR" ]
then
$WM_THIRD_PARTY_DIR/Allwmake
else
echo "Allwmake: no ThirdParty directory found - skipping"
echo "No ThirdParty directory found - skipping"
fi
# Compile OpenFOAM libraries and applications
echo "========================================"
echo "Compile OpenFOAM libraries"
echo
src/Allwmake $targetType $*
# Compile OpenFOAM libraries and applications
echo "========================================"
echo "Compile OpenFOAM applications"
echo
applications/Allwmake $targetType $*
# Optionally build OpenFOAM Doxygen documentation
if [ $genDoc -eq 1 ]
# Additional components/modules
if [ -d "$WM_PROJECT_DIR/modules" ]
then
doc/Allwmake
echo "========================================"
echo "Compile OpenFOAM modules"
echo
(cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all)
fi
# Some summary information
echo
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "========================================"
echo " ${WM_PROJECT_DIR##*/}"
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo
#------------------------------------------------------------------------------

151
BuildIssues.txt Normal file
View File

@ -0,0 +1,151 @@
OpenFOAM-1712
==================
Known Build Issues
==================
---------------------
Intel MPI (Gcc/Clang)
---------------------
Either I_MPI_ROOT or MPI_ROOT can be used to specify the Intel-MPI
installation directory path.
The ThirdParty build of ptscotch uses `mpiicc` for Intel-MPI
instead of the usual `mpicc`.
When gcc or clang are used, it is highly likely that the
I_MPI_CC environment variable also needs to be set accordingly.
See `mpiicc -help` for more information about environment variables.
--------------
Intel Compiler
--------------
Since OpenFOAM uses C++11, a fairly recent version is required.
The Intel compiler - icc (ICC) 17.0.1 20161005 is ok, but the
initial release - icc (ICC) 17.0.0 20160721 - has a bug that
will result in these types of error messages.
MatrixSpaceI.H(492): error: no instance of overloaded function
"Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::Block<SubTensor,
BRowStart, BColStart>::operator=" matches the specified type
---
VTK
---
If using the runTimePostProcessing to create on-the-fly images, you
can simply just compile ParaView and these libraries will be used.
If you elect to use a separate VTK compilation (for example for
off-screen rendering), it is advisable to reuse the VTK libraries that
are provided with ParaView by making an appropriate symlink
prior to using makeVTK. This doesn't just reduce disk-space, but works
much better than using the VTK tar file.
Using runTimePostProcessing with the 'plain' VTK libraries does
generally work, but does not exit cleanly:
symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonExecutionModel-7.1.so.1:
undefined symbol: _ZN33vtkFilteringInformationKeyManager13ClassFinalizeEv
symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonDataModel-7.1.so.1:
undefined symbol: _ZN49vtkInformationQuadratureSchemeDefinitionVectorKeyD1Ev
This error appears to be suppressed if VTK is compiled with a Debug build-type.
-------------------------
Building on older systems
-------------------------
If the system gcc is too old for building OpenFOAM, a third-party gcc or
clang/llvm installation can be used. If building clang/llvm, note that
there are also minimum gcc/g++ requirements there:
Min gcc/g++
=========== ==========
4.4 llvm-3.4.2
4.7 llvm-3.5.2 - llvm-3.7.0
If your system compiler is too old to build the minimum required gcc or
clang/llvm, it is just simply too old.
---------------------------------
ThirdParty clang without gmp/mpfr
---------------------------------
If using ThirdParty clang without gmp/mpfr, the ThirdParty makeCGAL
script will need to be run manually and specify that there is no
gmp/mpfr. Eg,
cd $WM_THIRD_PARTY_DIR
./makeCGAL gmp-none mpfr-none
Subequent compilation with Allwmake will now run largely without any
problems, except that the components linking against CGAL
(foamyMesh and surfaceBooleanFeatures) will also try to link against
a nonexistent mpfr library. As a workaround, the link-dependency can
be removed in wmake/rules/General/CGAL :
CGAL_LIBS = \
-L$(BOOST_ARCH_PATH)/lib \
-L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-L$(CGAL_ARCH_PATH)/lib \
-L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-lCGAL
This is a temporary inconvenience until a more robust solution is found.
-------------------------
Building with spack
-------------------------
If you are building with spack, note that the depends_on for paraview
resolves poorly. The +qt dependency (for building the reader module)
may need to be specified as a preference by including the following in
your `~/.spack/packages.yaml` file:
packages:
paraview:
variants: +qt
It appears that spack will otherwise ignore any paraview+qt version
and attempt to install a paraview~qt version instead.
---------------------------
Building on Darwin (Mac-OS)
---------------------------
Support for Darwin is incomplete, but has been provisioned for.
The following are typical (as of yet) unresolved issues.
* Scotch, ptscotch:
- The librt linkage is required for Linux, but not for Darwin.
Current resolution:
Edit or patch
src/parallel/decompose/ptscotchDecomp/Make/options
src/parallel/decompose/scotchDecomp/Make/options
to remove the '-lrt' library
* CGAL:
- ThirdParty CGAL will normally need to be compiled without mpfr/gmp.
This should be done manually prior to building OpenFOAM or other
ThirdParty. Eg,
cd $WM_THIRD_PARTY_DIR
./makeCGAL gmp-none mpfr-none
The erroneous references to gmp/mpfr library can be directly removed
from the wmake/rules/General/CGAL, but it is more advisable to
override them instead in the wmake/rules/darwin64Clang/CGAL file.
--

View File

@ -1,22 +1,27 @@
# About OpenFOAM
OpenFOAM is a free, open source CFD software package developed primarily by [OpenCFD](http://www.openfoam.com) since 2004 and is currently distributed by [ESI-OpenCFD](http://www.openfoam.com) and the [OpenFOAM Foundation](http://openfoam.org). It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
OpenFOAM is a free, open source CFD software [released and developed primarily by OpenCFD Ltd](http://www.openfoam.com) since 2004. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
OpenFOAM+ uses the OpenFOAM Foundation version as a common code base, with wider functionality and platform support. Its purpose is to accelerate the public availability of new features which are sponsored by OpenCFD's customers and contributed by the OpenFOAM community.
OpenFOAM is professionally released every six months to include customer sponsored developments and contributions from the community - individual and group contributors, fork re-integrations including from FOAM-extend and OpenFOAM Foundation Ltd - in this Official Release sanctioned by the OpenFOAM Worldwide Trademark Owner aiming towards one OpenFOAM.
# Copyright
OpenFOAM+ is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the file COPYING in this directory or [http://www.gnu.org/licenses/](http://www.gnu.org/licenses/), for a description of the GNU General Public License terms under which you can copy the files.
OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the file COPYING in this directory or [http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a description of the GNU General Public License terms under which you can copy the files.
# OpenFOAM Trademark
OpenCFD Limited, owner of the OpenFOAM Trademark, has granted the use of the Trademark to the OpenFOAM Foundation. Violations of the Trademark are continuously monitored and will be duly prosecuted. Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the OpenFOAM trademark.
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a licence basis. ESI Group and OpenFOAM Foundation Ltd are currently permitted to use the Name and agreed Domain Name. For information on trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the OpenFOAM trademark.
Violations of the Trademark are continuously monitored, and will be duly prosecuted.
# Useful Links
- [Download and installation instructions](http://www.openfoam.com/releases)
- [Download and installation instructions](http://www.openfoam.com/download/)
- [Documentation](http://www.openfoam.com/documentation)
- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php)
- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php)
- [Contacting OpenCFD](http://www.openfoam.com/contact)
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
- [OpenFOAM Community](http://www.openfoam.com/community/)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016 OpenCFD Ltd
Copyright 2016-2018 OpenCFD Ltd

View File

@ -1,27 +1,21 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Run from OPENFOAM applications/ directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
# Parse arguments for library compilation
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
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."
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
[ -n "$FOAM_EXT_LIBBIN" ] || {
echo "Allwmake error: FOAM_EXT_LIBBIN not set"
echo " Check the OpenFOAM entries in your dot-files and source them."
exit 1
}
set -x
wmake -all solvers $*
wmake -all utilities $*
#------------------------------------------------------------------------------
wmake -all $targetType solvers
wmake -all $targetType utilities
#------------------------------------------------------------------------------

View File

@ -1,14 +1,14 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/have_fftw
if [ -f "$FFTW_ARCH_PATH/include/fftw3.h" ] || \
[ "${FFTW_ARCH_PATH##*-}" = system -a -f "/usr/include/fftw3.h" ]
#------------------------------------------------------------------------------
if have_fftw
then
wmake
else
echo
echo "Skipping dnsFoam solver (no FFTW)"
echo
echo "==> skip dnsFoam solver (no FFTW)"
fi
#------------------------------------------------------------------------------

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

@ -28,7 +28,7 @@ Group
grpDNSSolvers
Description
Direct numerical simulation solver for boxes of isotropic turbulence
Direct numerical simulation solver for boxes of isotropic turbulence.
\*---------------------------------------------------------------------------*/
@ -44,32 +44,36 @@ 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"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
label ntot = 1;
forAll(K.nn(), idim)
{
ntot *= K.nn()[idim];
}
const scalar recRootN = 1.0/Foam::sqrt(scalar(ntot));
Info<< nl << "Starting time loop" << endl;
while (runTime.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
force.internalField() = ReImSum
force.primitiveFieldRef() = ReImSum
(
fft::reverseTransform
(
K/(mag(K) + 1.0e-6) ^ forceGen.newField(), K.nn()
)
)*recRootN
);
#include "globalProperties.H"
@ -119,7 +123,7 @@ int main(int argc, char *argv[])
runTime.write();
if (runTime.outputTime())
if (runTime.writeTime())
{
calcEk(U, K).write
(
@ -129,9 +133,7 @@ int main(int argc, char *argv[])
);
}
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -19,3 +19,4 @@
Kmesh K(mesh);
UOprocess forceGen(K, runTime.deltaTValue(), turbulenceProperties);

View File

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

View File

@ -1,37 +1,41 @@
Info<< "Reading field T\n" << endl;
Info<< "Reading field T\n" << endl;
volScalarField T
volScalarField T
(
IOobject
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading transportProperties\n" << endl;
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
IOdictionary transportProperties
(
IOobject
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
Info<< "Reading diffusivity DT\n" << endl;
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);
dimensionedScalar DT
(
"DT",
dimArea/dimTime,
transportProperties
);
#include "createFvOptions.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-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,12 +52,14 @@ Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "addCheckCaseOptions.H"
#include "setRootCase.H"
#include "createTime.H"
@ -77,17 +79,21 @@ 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"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -0,0 +1,3 @@
overLaplacianDyMFoam.C
EXE = $(FOAM_APPBIN)/overLaplacianDyMFoam

View File

@ -0,0 +1,8 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/overset/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
-loverset

View File

@ -0,0 +1,53 @@
Info<< "Reading field T\n" << endl;
volScalarField T
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
// Add overset specific interpolations
{
dictionary oversetDict;
oversetDict.add("T", true);
const_cast<dictionary&>
(
mesh.schemesDict()
).add
(
"oversetInterpolationRequired",
oversetDict,
true
);
}
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);

View File

@ -0,0 +1,108 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overLaplacianDyMFoam
Group
grpBasicSolvers
Description
Laplace equation solver for a scalar quantity.
\heading Solver details
The solver is applicable to, e.g. for thermal diffusion in a solid. The
equation is given by:
\f[
\ddt{T} = \div \left( D_T \grad T \right)
\f]
Where:
\vartable
T | Scalar field which is solved for, e.g. temperature
D_T | Diffusion coefficient
\endvartable
\heading Required fields
\plaintable
T | Scalar field which is solved for, e.g. temperature
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "dynamicFvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nCalculating temperature distribution\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
mesh.update();
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
if (runTime.outputTime())
{
volVectorField gradT(fvc::grad(T));
volScalarField gradTx
(
IOobject
(
"gradTx",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::X)
);
volScalarField gradTy
(
IOobject
(
"gradTy",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::Y)
);
volScalarField gradTz
(
IOobject
(
"gradTz",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::Z)
);
runTime.write();
}

View File

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

View File

@ -0,0 +1,9 @@
const dictionary& potentialFlow
(
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr
(
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -13,7 +13,7 @@ volVectorField U
);
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), Zero);
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
@ -28,7 +28,7 @@ surfaceScalarField phi
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
@ -41,9 +41,9 @@ if (args.optionFound("initialiseUBCs"))
word pName("p");
// Update name of the pressure field from the command-line option
args.optionReadIfPresent("pName", pName);
args.readIfPresent("pName", pName);
// Infer the pressure BCs from the velocity BCs
// Infer the pressure BCs from the velocity
wordList pBCTypes
(
U.boundaryField().size(),
@ -74,66 +74,40 @@ volScalarField p
false
),
mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0),
dimensionedScalar(sqr(dimVelocity), Zero),
pBCTypes
);
label pRefCell = 0;
scalar pRefValue = 0.0;
if (args.optionFound("writep"))
{
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
}
Info<< "Constructing velocity potential field Phi\n" << endl;
autoPtr<volScalarField> PhiPtr;
IOobject io
// Infer the velocity potential BCs from the pressure
wordList PhiBCTypes
(
"Phi",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
if (io.typeHeaderOk<volScalarField>())
forAll(p.boundaryField(), patchi)
{
PhiPtr.reset(new volScalarField(io, mesh));
}
else
{
// Cannot just use p.boundaryField().types() since does not initialise
// complex boundary types. Instead re-clone them from p.
io.readOpt() = IOobject::NO_READ;
PhiPtr.reset
(
new volScalarField
(
io,
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
p.boundaryField().types()
)
);
const volScalarField::GeometricBoundaryField& bp = p.boundaryField();
volScalarField::GeometricBoundaryField& bPhi = PhiPtr().boundaryField();
forAll(bp, patchI)
if (p.boundaryField()[patchi].fixesValue())
{
bPhi.set(patchI, bp[patchI].clone(PhiPtr().dimensionedInternalField()));
PhiBCTypes[patchi] = fixedValueFvPatchScalarField::typeName;
}
}
volScalarField& Phi = PhiPtr();
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
(
IOobject
(
"Phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);
label PhiRefCell = 0;
scalar PhiRefValue = 0;
@ -145,3 +119,5 @@ setRefCell
PhiRefValue
);
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"

View File

@ -0,0 +1,3 @@
overPotentialFoam.C
EXE = $(FOAM_APPBIN)/overPotentialFoam

View File

@ -0,0 +1,12 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/overset/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-lsampling \
-loverset

View File

@ -0,0 +1,9 @@
const dictionary& potentialFlow
(
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr
(
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -0,0 +1,146 @@
Info<< "Reading velocity field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
// Initialise the velocity internal field to zero
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
IOobject
(
"phi",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fvc::flux(U)
);
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
}
// Construct a pressure field
// If it is available read it otherwise construct from the velocity BCs
// converting fixed-value BCs to zero-gradient and vice versa.
word pName("p");
// Update name of the pressure field from the command-line option
args.readIfPresent("pName", pName);
// Infer the pressure BCs from the velocity
wordList pBCTypes
(
U.boundaryField().size(),
fixedValueFvPatchScalarField::typeName
);
forAll(U.boundaryField(), patchi)
{
if (U.boundaryField()[patchi].fixesValue())
{
pBCTypes[patchi] = zeroGradientFvPatchScalarField::typeName;
}
}
// Note that registerObject is false for the pressure field. The pressure
// field in this solver doesn't have a physical value during the solution.
// It shouldn't be looked up and used by sub models or boundary conditions.
Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p
(
IOobject
(
pName,
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE,
false
),
mesh,
dimensionedScalar(sqr(dimVelocity), Zero),
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
(
IOobject
(
"Phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);
label PhiRefCell = 0;
scalar PhiRefValue = 0;
setRefCell
(
Phi,
potentialFlow.dict(),
PhiRefCell,
PhiRefValue
);
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"
// Add overset specific interpolations
{
dictionary oversetDict;
oversetDict.add("Phi", true);
oversetDict.add("U", true);
const_cast<dictionary&>
(
mesh.schemesDict()
).add
(
"oversetInterpolationRequired",
oversetDict,
true
);
}
// Mask field for zeroing out contributions on hole cells
#include "createCellMask.H"
// Create bool field with interpolated cells
#include "createInterpolatedCells.H"

View File

@ -0,0 +1,258 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2017 OpenCFD Ltd
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overPotentialFoam
Group
grpBasicSolvers
Description
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.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
for full Navier-Stokes codes. The flow is evolved using the equation:
\f[
\laplacian \Phi = \div(\vec{U})
\f]
Where:
\vartable
\Phi | Velocity potential [m2/s]
\vec{U} | Velocity [m/s]
\endvartable
The corresponding pressure field could be calculated from the divergence
of the Euler equation:
\f[
\laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0
\f]
but this generates excessive pressure variation in regions of large
velocity gradient normal to the flow direction. A better option is to
calculate the pressure field corresponding to velocity variation along the
stream-lines:
\f[
\laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0
\f]
where the flow direction tensor \f$\vec{F}\f$ is obtained from
\f[
\vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}}
\f]
\heading Required fields
\plaintable
U | Velocity [m/s]
\endplaintable
\heading Optional fields
\plaintable
p | Kinematic pressure [m2/s2]
Phi | Velocity potential [m2/s]
| Generated from p (if present) or U if not present
\endplaintable
\heading Options
\plaintable
-writep | write the Euler pressure
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pisoControl.H"
#include "dynamicFvMesh.H"
#include "cellCellStencilObject.H"
#include "localMin.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addOption
(
"pName",
"pName",
"Name of the pressure field"
);
argList::addBoolOption
(
"initialiseUBCs",
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writePhi",
"Write the final velocity potential field"
);
argList::addBoolOption
(
"writep",
"Calculate and write the Euler pressure field"
);
argList::addBoolOption
(
"withFunctionObjects",
"execute functionObjects"
);
#include "setRootCase.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< nl << "Calculating potential flow" << endl;
mesh.update();
surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask));
// Since solver contains no time loop it would never execute
// function objects so do it ourselves
runTime.functionObjects().start();
MRF.makeRelative(phi);
adjustPhi(phi, U, p);
// Non-orthogonal velocity potential corrector loop
while (potentialFlow.correct())
{
phi = fvc::flux(U);
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix PhiEqn
(
fvm::laplacian(faceMask, Phi)
==
fvc::div(phi)
);
PhiEqn.setReference(PhiRefCell, PhiRefValue);
PhiEqn.solve();
if (potentialFlow.finalNonOrthogonalIter())
{
phi -= PhiEqn.flux();
}
}
MRF.makeAbsolute(phi);
Info<< "Continuity error = "
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
<< endl;
U = fvc::reconstruct(phi);
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
}
// Write U and phi
U.write();
phi.write();
// Optionally write Phi
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
// Calculate the flow-direction filter tensor
volScalarField magSqrU(magSqr(U));
volSymmTensorField F(sqr(U)/(magSqrU + SMALL*average(magSqrU)));
// Calculate the divergence of the flow-direction filtered div(U*U)
// Filtering with the flow-direction generates a more reasonable
// pressure distribution in regions of high velocity gradient in the
// direction of the flow
volScalarField divDivUU
(
fvc::div
(
F & fvc::div(phi, U),
"div(div(phi,U))"
)
);
// Solve a Poisson equation for the approximate pressure
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::laplacian(p) + divDivUU
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
}
p.write();
}
runTime.functionObjects().end();
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -28,7 +28,9 @@ Group
grpBasicSolvers
Description
Potential flow solver.
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.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
@ -123,6 +125,7 @@ int main(int argc, char *argv[])
"execute functionObjects"
);
#include "addCheckCaseOptions.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
@ -130,7 +133,6 @@ int main(int argc, char *argv[])
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
#include "createMRF.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -180,13 +182,13 @@ int main(int argc, char *argv[])
phi.write();
// Optionally write Phi
if (args.optionFound("writePhi"))
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.optionFound("writep"))
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
@ -234,9 +236,7 @@ int main(int argc, char *argv[])
runTime.functionObjects().end();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;

View File

@ -1,55 +1,59 @@
Info<< "Reading field T\n" << endl;
Info<< "Reading field T\n" << endl;
volScalarField T
volScalarField T
(
IOobject
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading field U\n" << endl;
Info<< "Reading field U\n" << endl;
volVectorField U
volVectorField U
(
IOobject
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading transportProperties\n" << endl;
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
IOdictionary transportProperties
(
IOobject
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
Info<< "Reading diffusivity DT\n" << endl;
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);
dimensionedScalar DT
(
"DT",
dimArea/dimTime,
transportProperties
);
#include "createPhi.H"
#include "createPhi.H"
#include "createFvOptions.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -61,6 +61,7 @@ Description
int main(int argc, char *argv[])
{
#include "addCheckCaseOptions.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
@ -68,7 +69,6 @@ int main(int argc, char *argv[])
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -15,8 +15,8 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/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-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -78,7 +78,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "pimpleControl.H"
#include "fvOptions.H"
@ -87,18 +86,17 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "addCheckCaseOptions.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 "createFvOptions.H"
#include "createFieldRefs.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
@ -113,7 +111,7 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
@ -151,9 +149,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";

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
@ -63,7 +63,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "dynamicRefineFvMesh.H"
#include "pimpleControl.H"
@ -98,12 +97,12 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
// Indicators for refinement. Note: before runTime++
// only for postprocessing reasons.
// only for post-processing reasons.
tmp<volScalarField> tmagGradP = mag(fvc::grad(p));
volScalarField normalisedGradP
(
@ -122,20 +121,20 @@ int main(int argc, char *argv[])
fvc::makeAbsolute(phi, rho, U);
// Test : disable refinement for some cells
PackedBoolList& protectedCell =
bitSet& protectedCell =
refCast<dynamicRefineFvMesh>(mesh).protectedCell();
if (protectedCell.empty())
{
protectedCell.setSize(mesh.nCells());
protectedCell = 0;
protectedCell = false;
}
forAll(betav, cellI)
forAll(betav, celli)
{
if (betav[cellI] < 0.99)
if (betav[celli] < 0.99)
{
protectedCell[cellI] = 1;
protectedCell.set(celli);
}
}
@ -198,9 +197,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";

View File

@ -103,9 +103,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
);
N.internalField() = Nv.internalField()*Cw;
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
volSymmTensorField ns
(
@ -118,14 +118,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
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));

View File

@ -25,7 +25,7 @@ Class
Foam::XiEqModels::basicSubGrid
Description
Basic sub-grid obstacle flame-wrinking enhancement factor model.
Basic sub-grid obstacle flame-wrinkling enhancement factor model.
Details supplied by J Puttock 2/7/06.
<b> Sub-grid flame area generation </b>
@ -94,11 +94,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -125,7 +125,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -73,7 +73,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::G() const
volScalarField& Gtot = tGtot.ref();
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
scalarField N(Nv.internalField()*Cw);
scalarField N(Nv.primitiveField()*Cw);
forAll(N, celli)
{

View File

@ -26,7 +26,7 @@ Class
Description
Basic sub-grid obstacle flame-wrinking generation rate coefficient model.
Basic sub-grid obstacle flame-wrinkling generation rate coefficient model.
Details supplied by J Puttock 2/7/06.
\f$ G_{sub} \f$ denotes the generation coefficient and it is given by
@ -82,11 +82,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -113,7 +113,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

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
@ -58,14 +58,14 @@ Foam::PDRDragModel::PDRDragModel
(
PDRProperties.subDict
(
word(PDRProperties.lookup("PDRDragModel")) + "Coeffs"
PDRProperties.get<word>("PDRDragModel") + "Coeffs"
)
),
turbulence_(turbulence),
rho_(rho),
U_(U),
phi_(phi),
on_(PDRDragModelCoeffs_.lookup("drag"))
on_(PDRDragModelCoeffs_.get<bool>("drag"))
{}
@ -79,9 +79,9 @@ Foam::PDRDragModel::~PDRDragModel()
bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
{
PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
PDRDragModelCoeffs_.lookup("drag") >> on_;
PDRDragModelCoeffs_.read("drag", on_);
return true;
}

View File

@ -67,18 +67,18 @@ protected:
const volVectorField& U_;
const surfaceScalarField& phi_;
Switch on_;
bool on_;
private:
// Private Member Functions
//- Disallow copy construct
PDRDragModel(const PDRDragModel&);
//- No copy construct
PDRDragModel(const PDRDragModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const PDRDragModel&);
//- No copy assignment
void operator=(const PDRDragModel&) = delete;
public:

View File

@ -36,19 +36,18 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
const surfaceScalarField& phi
)
{
const word modelType(PDRProperties.lookup("PDRDragModel"));
const word modelType(PDRProperties.get<word>("PDRDragModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
Info<< "Selecting drag model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModels are : " << endl
<< "Valid PDRDragModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}

View File

@ -104,12 +104,7 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedSymmTensor
(
"zero",
dimMass/dimTime/pow(dimLength, 3),
Zero
)
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
)
);
@ -143,7 +138,7 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0)
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
)
);
@ -170,8 +165,8 @@ bool Foam::PDRDragModels::basic::read(const dictionary& PDRProperties)
{
PDRDragModel::read(PDRProperties);
PDRDragModelCoeffs_.lookup("Csu") >> Csu.value();
PDRDragModelCoeffs_.lookup("Csk") >> Csk.value();
PDRDragModelCoeffs_.read("Csu", Csu.value());
PDRDragModelCoeffs_.read("Csk", Csk.value());
return true;
}

View File

@ -108,11 +108,11 @@ class basic
// Private Member Functions
//- Disallow copy construct
basic(const basic&);
//- No copy construct
basic(const basic&) = delete;
//- Disallow default bitwise assignment
void operator=(const basic&);
//- No copy assignment
void operator=(const basic&) = delete;
public:

View File

@ -129,8 +129,8 @@ void PDRkEpsilon::correct()
volScalarField G(GName(), rho_*nut_*(tgradU() && dev(twoSymm(tgradU()))));
tgradU.clear();
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Update epsilon and G at the wall
epsilon_.boundaryFieldRef().updateCoeffs();
// Add the blockage generation term so that it is included consistently
// in both the k and epsilon equations
@ -163,7 +163,7 @@ void PDRkEpsilon::correct()
epsEqn.ref().relax();
epsEqn.ref().boundaryManipulate(epsilon_.boundaryField());
epsEqn.ref().boundaryManipulate(epsilon_.boundaryFieldRef());
solve(epsEqn);
bound(epsilon_, epsilonMin_);

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

@ -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

@ -70,11 +70,11 @@ class Gulder
// Private Member Functions
//- Disallow copy construct
Gulder(const Gulder&);
//- No copy construct
Gulder(const Gulder&) = delete;
//- Disallow default bitwise assignment
void operator=(const Gulder&);
//- No copy assignment
void operator=(const Gulder&) = delete;
public:
@ -101,7 +101,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -66,11 +66,11 @@ class SCOPEBlend
// Private Member Functions
//- Disallow copy construct
SCOPEBlend(const SCOPEBlend&);
//- No copy construct
SCOPEBlend(const SCOPEBlend&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEBlend&);
//- No copy assignment
void operator=(const SCOPEBlend&) = delete;
public:
@ -97,7 +97,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -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);
@ -105,7 +105,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
IOobject::NO_WRITE
),
epsilon.mesh(),
dimensionedScalar("XiEq", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
volScalarField& xieq = tXiEq.ref();
@ -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

@ -84,11 +84,11 @@ class SCOPEXiEq
// Private Member Functions
//- Disallow copy construct
SCOPEXiEq(const SCOPEXiEq&);
//- No copy construct
SCOPEXiEq(const SCOPEXiEq&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEXiEq&);
//- No copy assignment
void operator=(const SCOPEXiEq&) = delete;
public:
@ -115,7 +115,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -67,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;
}
@ -110,11 +110,11 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
false
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
)
);
volScalarField& N = tN.ref();
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
volSymmTensorField ns
(
@ -127,14 +127,9 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
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
(
@ -150,7 +145,7 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
const scalarField deltaUp(upLocal*(max(scalar(1.0), 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.0), pow(nr, 0.5)) - 1.0);
return tN;
}

View File

@ -79,11 +79,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiEqModel(const XiEqModel&);
//- No copy construct
XiEqModel(const XiEqModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiEqModel&);
//- No copy assignment
void operator=(const XiEqModel&) = delete;
public:
@ -144,7 +144,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const
{
return turbulence_.muEff();

View File

@ -39,15 +39,14 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModels are : " << endl
<< "Valid XiEqModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}

View File

@ -65,11 +65,11 @@ class instability
// Private Member Functions
//- Disallow copy construct
instability(const instability&);
//- No copy construct
instability(const instability&) = delete;
//- Disallow default bitwise assignment
void operator=(const instability&);
//- No copy assignment
void operator=(const instability&) = delete;
public:
@ -96,7 +96,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -60,11 +60,11 @@ class KTS
// Private Member Functions
//- Disallow copy construct
KTS(const KTS&);
//- No copy construct
KTS(const KTS&) = delete;
//- Disallow default bitwise assignment
void operator=(const KTS&);
//- No copy assignment
void operator=(const KTS&) = delete;
public:
@ -91,7 +91,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Update properties from given dictionary

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

@ -70,11 +70,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiGModel(const XiGModel&);
//- No copy construct
XiGModel(const XiGModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiGModel&);
//- No copy assignment
void operator=(const XiGModel&) = delete;
public:
@ -135,7 +135,7 @@ public:
// Member Functions
//- Return the flame-wrinking genration rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const = 0;
//- Return the flame diffusivity

View File

@ -39,15 +39,14 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModels are : " << endl
<< "Valid XiGModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}

View File

@ -25,7 +25,7 @@ Class
Foam::XiGModels::instabilityG
Description
Flame-surface instabilityG flame-wrinking generation rate coefficient model
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
used in \link XiModel.H \endlink.
See Technical Report SH/RE/01R for details on the PDR modelling.
@ -57,7 +57,7 @@ class instabilityG
{
// Private data
//- Flame instabilityG wrinling generation rate coefficient
//- Flame instabilityG wrinkling generation rate coefficient
dimensionedScalar GIn_;
//- InstabilityG length-scale
@ -69,11 +69,11 @@ class instabilityG
// Private Member Functions
//- Disallow copy construct
instabilityG(const instabilityG&);
//- No copy construct
instabilityG(const instabilityG&) = delete;
//- Disallow default bitwise assignment
void operator=(const instabilityG&);
//- No copy assignment
void operator=(const instabilityG&) = delete;
public:
@ -100,7 +100,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

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

@ -122,7 +122,7 @@ protected:
const volScalarField& b_;
const surfaceScalarField& phi_;
//- Flame wrinking field
//- Flame wrinkling field
volScalarField Xi_;
@ -130,11 +130,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiModel(const XiModel&);
//- No copy construct
XiModel(const XiModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiModel&);
//- No copy assignment
void operator=(const XiModel&) = delete;
public:
@ -207,7 +207,7 @@ public:
// Member Functions
//- Return the flame-wrinking Xi
//- Return the flame-wrinkling Xi
virtual const volScalarField& Xi() const
{
return Xi_;
@ -227,10 +227,10 @@ public:
)
{}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct() = 0;
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>&)
{
correct();

View File

@ -42,15 +42,14 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModels are : " << endl
<< "Valid XiModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}

View File

@ -67,11 +67,11 @@ class algebraic
// Private Member Functions
//- Disallow copy construct
algebraic(const algebraic&);
//- No copy construct
algebraic(const algebraic&) = delete;
//- Disallow default bitwise assignment
void operator=(const algebraic&);
//- No copy assignment
void operator=(const algebraic&) = delete;
public:
@ -104,7 +104,7 @@ public:
//- Return the flame diffusivity
virtual tmp<volScalarField> Db() const;
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct();
//- Update properties from given dictionary

View File

@ -55,11 +55,11 @@ class fixed
{
// Private Member Functions
//- Disallow copy construct
fixed(const fixed&);
//- No copy construct
fixed(const fixed&) = delete;
//- Disallow default bitwise assignment
void operator=(const fixed&);
//- No copy assignment
void operator=(const fixed&) = delete;
public:
@ -89,7 +89,7 @@ public:
// Member Functions
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{}

View File

@ -67,11 +67,11 @@ class transport
// Private Member Functions
//- Disallow copy construct
transport(const transport&);
//- No copy construct
transport(const transport&) = delete;
//- Disallow default bitwise assignment
void operator=(const transport&);
//- No copy assignment
void operator=(const transport&) = delete;
public:
@ -113,13 +113,13 @@ public:
fields.add(Xi_);
}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{
NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
//- Update properties from given dictionary

View File

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

View File

@ -7,7 +7,7 @@ autoPtr<psiuReactionThermo> pThermo
psiuReactionThermo& thermo = pThermo();
thermo.validate(args.executable(), "ha", "ea");
basicMultiComponentMixture& composition = thermo.composition();
basicSpecieMixture& composition = thermo.composition();
volScalarField rho
(
@ -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;
@ -59,23 +58,6 @@ autoPtr<compressible::RASModel> turbulence
);
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));
Info<< "Creating the unstrained laminar flame speed\n" << endl;
autoPtr<laminarFlameSpeed> unstrainedLaminarFlameSpeed
(
@ -183,7 +165,7 @@ IOdictionary PDRProperties
autoPtr<PDRDragModel> drag = PDRDragModel::New
(
PDRProperties,
turbulence,
*turbulence,
rho,
U,
phi
@ -194,7 +176,7 @@ autoPtr<XiModel> flameWrinkling = XiModel::New
(
PDRProperties,
thermo,
turbulence,
*turbulence,
Su,
rho,
b,
@ -227,3 +209,10 @@ fields.add(b);
fields.add(thermo.he());
fields.add(thermo.heu());
flameWrinkling->addXi(fields);
#include "createDpdt.H"
#include "createK.H"
#include "createMRF.H"
#include "createFvOptions.H"

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -73,17 +73,37 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
(
dictionary
(
IFstream
(
fileName
(
dict.lookup("fuelFile")
)
)()
).subDict(typeName + "Coeffs")
IFstream
(
fileName
(
dict.lookup("fuelFile")
)
)()
).optionalSubDict(typeName + "Coeffs")
),
LFL_
(
readScalar
(
coeffsDict_.lookupCompat
(
"lowerFlammabilityLimit",
{{"lowerFlamabilityLimit", 1712}}
)
)
),
UFL_
(
readScalar
(
coeffsDict_.lookupCompat
(
"upperFlammabilityLimit",
{{"upperFlamabilityLimit", 1712}}
)
)
),
LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
Texp_(readScalar(coeffsDict_.lookup("Texp"))),
@ -145,19 +165,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
{
if (phi < LFL_ || phi > UFL_)
{
// Return 0 beyond the flamibility limits
// Return 0 beyond the flammability limits
return scalar(0);
}
else if (phi < SuPolyL_.ll)
{
// Use linear interpolation between the low end of the
// lower polynomial and the lower flamibility limit
// lower polynomial and the lower flammability limit
return SuPolyL_.llv*(phi - LFL_)/(SuPolyL_.ll - LFL_);
}
else if (phi > SuPolyU_.ul)
{
// Use linear interpolation between the upper end of the
// upper polynomial and the upper flamibility limit
// upper polynomial and the upper flammability limit
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
}
else if (phi < SuPolyL_.lu)
@ -255,7 +275,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -266,9 +286,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
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];
@ -302,7 +324,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -313,9 +335,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
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];
@ -354,7 +378,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
IOobject::NO_WRITE
),
phi.mesh(),
dimensionedScalar("Ma", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
@ -365,9 +389,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
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

@ -109,10 +109,10 @@ class SCOPE
dictionary coeffsDict_;
//- Lower flamability limit
//- Lower flammability limit
scalar LFL_;
//- Upper flamability limit
//- Upper flammability limit
scalar UFL_;
//- Lower Su polynomial

View File

@ -3,7 +3,7 @@
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,25 +67,25 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "initContinuityErrs.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createFieldRefs.H"
#include "initContinuityErrs.H"
#include "createRhoUf.H"
#include "createControls.H"
#include "initContinuityErrs.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
@ -169,9 +169,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -2,10 +2,10 @@
bool correctPhi
(
pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
pimple.dict().lookupOrDefault("correctPhi", true)
);
bool checkMeshCourantNo
(
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
pimple.dict().lookupOrDefault("checkMeshCourantNo", false)
);

View File

@ -1,7 +1,6 @@
#include "readTimeControls.H"
#include "readTimeControls.H"
bool correctPhi =
pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
correctPhi = pimple.dict().lookupOrDefault("correctPhi", true);
bool checkMeshCourantNo =
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
checkMeshCourantNo =
pimple.dict().lookupOrDefault("checkMeshCourantNo", false);

View File

@ -0,0 +1,3 @@
XiEngineFoam.C
EXE = $(FOAM_APPBIN)/XiEngineFoam

View File

@ -0,0 +1,27 @@
EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/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 \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels

View File

@ -0,0 +1,150 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
XiEngineFoam
Description
Solver for internal combustion engines.
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
Strain effects are encorporated directly into the Xi equation
but not in the algebraic approximation. Further work need to be
done on this issue, particularly regarding the enhanced removal rate
caused by flame compression. Analysis using results of the spectral
model will be required.
For cases involving very lean Propane flames or other flames which are
very strain-sensitive, a transport equation for the laminar flame
speed is present. This equation is derived using heuristic arguments
involving the strain time scale and the strain-rate at extinction.
the transport velocity is the same as that for the Xi equation.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "engineTime.H"
#include "engineMesh.H"
#include "psiuReactionThermo.H"
#include "turbulentFluidThermoModel.H"
#include "laminarFlameSpeed.H"
#include "ignition.H"
#include "Switch.H"
#include "OFstream.H"
#include "mathematicalConstants.H"
#include "pimpleControl.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#define CREATE_TIME createEngineTime.H
#define CREATE_MESH createEngineMesh.H
#include "postProcess.H"
#include "setRootCase.H"
#include "createEngineTime.H"
#include "createEngineMesh.H"
#include "createControl.H"
#include "readCombustionProperties.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "createRhoUf.H"
#include "initContinuityErrs.H"
#include "readEngineTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
#include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
#include "readEngineTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl;
mesh.move();
#include "rhoEqn.H"
// --- Pressure-velocity PIMPLE corrector loop
while (pimple.loop())
{
#include "UEqn.H"
#include "ftEqn.H"
#include "bEqn.H"
#include "EauEqn.H"
#include "EaEqn.H"
if (!ign.ignited())
{
thermo.heu() == thermo.he();
}
// --- Pressure corrector loop
while (pimple.correct())
{
#include "pEqn.H"
}
if (pimple.turbCorr())
{
turbulence->correct();
}
}
#include "logSummary.H"
rho = thermo.rho();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -5,7 +5,7 @@ Info<< "Mean u':"
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
<< endl;
logSummaryFile
logSummaryFile()
<< runTime.theta() << tab
<< p.weightedAverage(mesh.V()).value() << tab
<< thermo.T().weightedAverage(mesh.V()).value() << tab

View File

@ -0,0 +1,100 @@
rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.transonic())
{
surfaceScalarField phid
(
"phid",
fvc::interpolate(psi)
*(
(
fvc::flux(HbyA)
+ MRF.zeroFilter
(
rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho)
)
)
)
);
fvc::makeRelative(phid, psi, U);
MRF.makeRelative(fvc::interpolate(psi), phid);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::ddt(psi, p)
+ fvm::div(phid, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
pEqn.solve(mesh.solver(p.select(pimple.finalInnerIter())));
if (pimple.finalNonOrthogonalIter())
{
phi == pEqn.flux();
}
}
}
else
{
surfaceScalarField phiHbyA
(
"phiHbyA",
(
fvc::flux(rho*HbyA)
+ MRF.zeroFilter(rhorAUf*fvc::ddtCorr(rho, U, rhoUf))
)
);
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(rhorAUf, 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"
U = HbyA - rAU*fvc::grad(p);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);
{
rhoUf = fvc::interpolate(rho*U);
surfaceVectorField n(mesh.Sf()/mesh.magSf());
rhoUf += n*(fvc::absolute(phi, rho, U)/mesh.magSf() - (n & rhoUf));
}
if (thermo.dpdt())
{
dpdt = fvc::ddt(p) - fvc::div(fvc::meshPhi(rho, U), p);
}

View File

@ -0,0 +1,19 @@
Info<< "Total cylinder mass: " << fvc::domainIntegrate(rho).value() << endl;
autoPtr<OFstream> logSummaryFile;
if (Pstream::master())
{
logSummaryFile.reset
(
new OFstream
(
runTime.rootPath()/runTime.globalCaseName()
/("logSummary." + runTime.timeName() + ".dat")
)
);
logSummaryFile()
<< "# CA" << " p" << " T" << " u'" << " c"
<< endl;
}

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
@ -65,17 +65,16 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCase.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createFieldRefs.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
@ -89,7 +88,7 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
@ -129,9 +128,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -243,7 +243,7 @@ if (ign.ignited())
rho*max
(
sigmat - sigmas,
dimensionedScalar("0", sigmat.dimensions(), 0)
dimensionedScalar(sigmat.dimensions(), Zero)
),
Xi
)

View File

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

View File

@ -7,7 +7,7 @@ autoPtr<psiuReactionThermo> pThermo
psiuReactionThermo& thermo = pThermo();
thermo.validate(args.executable(), "ha", "ea");
basicMultiComponentMixture& composition = thermo.composition();
basicSpecieMixture& composition = thermo.composition();
volScalarField rho
(
@ -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;
@ -59,21 +58,6 @@ autoPtr<compressible::turbulenceModel> turbulence
)
);
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));
Info<< "Creating field Xi\n" << endl;
volScalarField Xi
@ -139,3 +123,10 @@ if (composition.contains("ft"))
fields.add(b);
fields.add(thermo.he());
fields.add(thermo.heu());
#include "createDpdt.H"
#include "createK.H"
#include "createMRF.H"
#include "createFvOptions.H"

View File

@ -9,4 +9,4 @@
mesh.solver("Yi")
);
}
}
}

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
@ -28,23 +28,22 @@ Group
grpCombustionSolvers
Description
Solver for chemistry problems designed for use on single cell cases to
provide comparison against other chemistry solvers
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.
Note:
- single cell mesh created on-the-fly
- fields created on the fly from the initial conditions
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "psiReactionThermo.H"
#include "psiChemistryModel.H"
#include "BasicChemistryModel.H"
#include "reactingMixture.H"
#include "chemistrySolver.H"
#include "OFstream.H"
#include "thermoPhysicsTypes.H"
#include "basicMultiComponentMixture.H"
#include "cellModeller.H"
#include "basicSpecieMixture.H"
#include "hexCellFvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -52,10 +51,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"
@ -79,9 +83,7 @@ int main(int argc, char *argv[])
#include "output.H"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info << "Number of steps = " << runTime.timeIndex() << endl;

View File

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

View File

@ -1,2 +1,3 @@
Switch adjustTimeStep(runTime.controlDict().lookup("adjustTimeStep"));
scalar maxDeltaT(readScalar(runTime.controlDict().lookup("maxDeltaT")));
bool adjustTimeStep(runTime.controlDict().get<bool>("adjustTimeStep"));
scalar maxDeltaT(runTime.controlDict().get<scalar>("maxDeltaT"));

View File

@ -0,0 +1,8 @@
BasicChemistryModel<psiReactionThermo>& chemistry = pChemistry();
scalar dtChem = refCast<const BasicChemistryModel<psiReactionThermo>>
(
chemistry
).deltaTChem()[0];
basicSpecieMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
volScalarField& p = thermo.p();

View File

@ -12,7 +12,7 @@
(
"initialConditions",
runTime.constant(),
runTime,
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
@ -23,17 +23,15 @@
#include "createBaseFields.H"
Info<< nl << "Reading thermophysicalProperties" << endl;
autoPtr<psiChemistryModel> pChemistry(psiChemistryModel::New(mesh));
psiChemistryModel& chemistry = pChemistry();
scalar dtChem = refCast<const psiChemistryModel>(chemistry).deltaTChem()[0];
psiReactionThermo& thermo = chemistry.thermo();
Info<< "Reading thermophysical properties\n" << endl;
autoPtr<psiReactionThermo> pThermo(psiReactionThermo::New(mesh));
psiReactionThermo& thermo = pThermo();
thermo.validate(args.executable(), "h");
basicMultiComponentMixture& composition = thermo.composition();
PtrList<volScalarField>& Y = composition.Y();
autoPtr<BasicChemistryModel<psiReactionThermo>> pChemistry
(
BasicChemistryModel<psiReactionThermo>::New(thermo)
);
volScalarField rho
(
@ -41,32 +39,25 @@
(
"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
),
mesh,
dimensionedScalar
(
"zero",
dimensionSet(dimEnergy/dimMass/dimTemperature),
0.0
)
dimensionedScalar(dimEnergy/dimMass/dimTemperature, Zero)
);
volVectorField U
@ -75,12 +66,12 @@
(
"U",
runTime.timeName(),
runTime,
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedVector("zero", dimVelocity, Zero)
dimensionedVector(dimVelocity, Zero)
);
#include "createPhi.H"

View File

@ -1,46 +1,3 @@
Info<< "Constructing single cell mesh" << nl << endl;
labelList owner(6, label(0));
labelList neighbour(0);
pointField points(8);
points[0] = vector(0, 0, 0);
points[1] = vector(1, 0, 0);
points[2] = vector(1, 1, 0);
points[3] = vector(0, 1, 0);
points[4] = vector(0, 0, 1);
points[5] = vector(1, 0, 1);
points[6] = vector(1, 1, 1);
points[7] = vector(0, 1, 1);
const cellModel& hexa = *(cellModeller::lookup("hex"));
faceList faces = hexa.modelFaces();
fvMesh mesh
(
IOobject
(
fvMesh::defaultRegion,
runTime.timeName(),
runTime,
IOobject::READ_IF_PRESENT
),
xferMove<Field<vector>>(points),
faces.xfer(),
owner.xfer(),
neighbour.xfer()
);
List<polyPatch*> patches(1);
patches[0] = new emptyPolyPatch
(
"boundary",
6,
0,
0,
mesh.boundaryMesh(),
emptyPolyPatch::typeName
);
mesh.addFvPatches(patches);
Foam::simplifiedMeshes::hexCellFvMesh mesh(runTime);

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

@ -1,3 +1,3 @@
runTime.controlDict().lookup("adjustTimeStep") >> adjustTimeStep;
runTime.controlDict().read("adjustTimeStep", adjustTimeStep);
maxDeltaT = readScalar(runTime.controlDict().lookup("maxDeltaT"));
runTime.controlDict().read("maxDeltaT", maxDeltaT);

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,5 +1,6 @@
EXE_INC = \
-I../engineFoam \
-I. \
-I../XiFoam/XiEngineFoam \
-I../XiFoam \
-I../../compressible/rhoPimpleFoam \
-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-2017 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -45,16 +45,16 @@ Description
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 "createFvOptions.H"
#include "createFieldRefs.H"
#include "createRhoUf.H"
#include "initContinuityErrs.H"
#include "readEngineTimeControls.H"
@ -76,7 +76,7 @@ int main(int argc, char *argv[])
runTime++;
Info<< "Crank angle = " << runTime.theta() << " CA-deg"
Info<< "Engine time = " << runTime.theta() << runTime.unit()
<< endl;
mesh.move();
@ -105,9 +105,7 @@ int main(int argc, char *argv[])
#include "logSummary.H"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

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

View File

@ -1,71 +1,59 @@
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
)
);
#include "createDpdt.H"
#include "createK.H"
#include "createMRF.H"
#include "createFvOptions.H"

View File

@ -1,12 +1,20 @@
Info<< "Mean pressure:" << p.weightedAverage(mesh.V()).value() << endl;
Info<< "Mean temperature:" << T.weightedAverage(mesh.V()).value() << endl;
Info<< "Mean u':"
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
<< endl;
{
const scalar meanp = p.weightedAverage(mesh.V()).value();
const scalar meanT = T.weightedAverage(mesh.V()).value();
const scalar meanup =
(sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value();
logSummaryFile
<< runTime.theta() << tab
<< p.weightedAverage(mesh.V()).value() << tab
<< T.weightedAverage(mesh.V()).value() << tab
<< (sqrt((2.0/3.0)*turbulence->k()))().weightedAverage(mesh.V()).value()
<< endl;
if (Pstream::master())
{
Info<< "Mean pressure:" << meanp << endl;
Info<< "Mean temperature:" << meanT << endl;
Info<< "Mean u':" << meanup << endl;
logSummaryFile()
<< runTime.theta() << tab
<< meanp << tab
<< meanT << tab
<< meanup
<< endl;
}
}

View File

@ -1,9 +1,18 @@
Info<< "Total cylinder mass: " << fvc::domainIntegrate(rho).value() << endl;
OFstream logSummaryFile
(
runTime.path()/("logSummary." + runTime.timeName() + ".dat")
);
autoPtr<OFstream> logSummaryFile;
logSummaryFile
<< "# CA" << " p" << " T" << " u'" << endl;
if (Pstream::master())
{
logSummaryFile.reset
(
new OFstream
(
runTime.rootPath()/runTime.globalCaseName()
/("logSummary." + runTime.timeName() + ".dat")
)
);
logSummaryFile()
<< "# CA" << " p" << " T" << " u'" << endl;
}

View File

@ -1,27 +0,0 @@
EXE_INC = \
-I$(FOAM_SOLVERS)/combustion/XiFoam \
-I$(LIB_SRC)/finiteVolume/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 \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels

View File

@ -1,153 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
engineFoam
Group
grpCombustionSolvers
Description
Solver for internal combustion engines.
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
Strain effects are encorporated directly into the Xi equation
but not in the algebraic approximation. Further work need to be
done on this issue, particularly regarding the enhanced removal rate
caused by flame compression. Analysis using results of the spectral
model will be required.
For cases involving very lean Propane flames or other flames which are
very strain-sensitive, a transport equation for the laminar flame
speed is present. This equation is derived using heuristic arguments
involving the strain time scale and the strain-rate at extinction.
the transport velocity is the same as that for the Xi equation.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "engineTime.H"
#include "engineMesh.H"
#include "psiuReactionThermo.H"
#include "turbulentFluidThermoModel.H"
#include "laminarFlameSpeed.H"
#include "ignition.H"
#include "Switch.H"
#include "OFstream.H"
#include "mathematicalConstants.H"
#include "pimpleControl.H"
#include "fvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createEngineTime.H"
#include "createEngineMesh.H"
pimpleControl pimple(mesh);
#include "readCombustionProperties.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createRhoUf.H"
#include "initContinuityErrs.H"
#include "readEngineTimeControls.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
#include "startSummary.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
#include "readEngineTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
Info<< "Crank angle = " << runTime.theta() << " CA-deg" << endl;
mesh.move();
#include "rhoEqn.H"
// --- Pressure-velocity PIMPLE corrector loop
while (pimple.loop())
{
#include "UEqn.H"
#include "ftEqn.H"
#include "bEqn.H"
#include "EauEqn.H"
#include "EaEqn.H"
if (!ign.ignited())
{
thermo.heu() == thermo.he();
}
// --- Pressure corrector loop
while (pimple.correct())
{
#include "pEqn.H"
}
if (pimple.turbCorr())
{
turbulence->correct();
}
}
#include "logSummary.H"
rho = thermo.rho();
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

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