Compare commits

...

748 Commits

Author SHA1 Message Date
0326b6211f DOC: Removing pdf files from git repo 2016-07-01 09:09:36 +01:00
ff0557cf22 BUG: ensight output - corrected mask 2016-06-30 23:05:23 +01:00
eb6cf446fc STYLE: wrong permissions on some tutorial files 2016-06-30 15:39:38 +02:00
bde2fb728f Merge remote-tracking branch 'origin/develop' into develop 2016-06-30 15:34:06 +02:00
6d71d03f44 ENH: default to collateTimes on for ensight output
- the uncollated version becomes quite difficult to process.

  Caveat: cannot use "collateTimes true" for non-static geometries
2016-06-30 15:32:21 +02:00
da6820c300 ENH: Added Pawan's sineWaveDamping tutorial to test new acousticDamping fvOption 2016-06-30 12:48:50 +01:00
a60b1ddd6e ENH: acousticDamping - updated blending factor 2016-06-30 12:46:46 +01:00
f2d05873b8 BUG: cshrc - corrected version back to 'plus' 2016-06-30 11:23:34 +01:00
eff10b0f96 BUG: acousticDamping - set the blending factor after reading the coefficients 2016-06-30 11:22:50 +01:00
3be20b492d Merge remote-tracking branch 'origin/develop' into develop
- conflicts resolved:
    src/conversion/ensight/file/ensightGeoFile.C
2016-06-30 01:05:35 +02:00
c133f98dda BUG: corrupt keywords in ensight binary
- regression introduced by ef9a14b288
2016-06-30 00:52:49 +02:00
ad4e8a1f76 ENH: cleaner output directory for ensight surfaces
- similar to foamToEnsightParts, provide a data/ subdirectory to hold
  the time-varying field information (collated output only).

- widen data mask to avoid possible overflows with many time steps
2016-06-30 00:44:14 +02:00
a4f6836f3e BUG: avoid duplicate ensight surface mesh/geometries (issue #167)
- ensight does supports geometry in a separate file, but for the
  surface writer we claim that this is not true. This allows
  the field writers to control where the mesh/case files land.

  With 'true', the uncollated output would incidentally create
  things like this:

  Previous (w/ fields)        | Now (w/ fields)
  ----------------------------+----------------------
    0.05/surf.case            |
    0.05/surf.mesh            |
    0.05/p/surf.case          |  0.05/p/surf.case
    0.05/p/surf.mesh          |  0.05/p/surf.mesh
    0.05/p/surf.0000.p        |  0.05/p/surf.0000.p

  Previous (w/o fields)       | Now (w/o fields)
  ----------------------------+----------------------
    0.05/surf.case            | 0.05/surf.mesh
    0.05/surf.case            | 0.05/surf.mesh

  Move the separateGeometry() flag to the *.C code, where it is less
  likely to be mistakenly altered.
2016-06-29 23:11:27 +02:00
4b266671a3 Merge branch 'feature-noise' into 'develop'
Feature noise

New functionality includes:
- run-time selectable noise models: point|surface
- run-time selectable window models: Hanning (+ options symmetric, extended), uniform
- calculates PSD (Pa^2/Hz) and dB/HZ; SPL (Pa^2) and dB
- calculates 1/3 octave data, with centre frequency 1kHz

surfaceNoise only:
- reads ascii/binary ensight surface data (requires collateTimes option)
- generates graphs for surface average quantities
- operates in parallel

See merge request !50
2016-06-29 21:44:36 +01:00
038356cdda Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-29 21:37:10 +01:00
208de6b320 ENH: Added new mapFields function object 2016-06-29 21:34:33 +01:00
5062c50ebc ENH: surfaceNoise - using mean for surface average 2016-06-29 21:16:59 +01:00
a0b598a5e4 COMP: Created conditional Allwmake scripts for FFTW dependent applications 2016-06-29 20:50:49 +01:00
7972d0b0e3 ENH: Noise functionality library and application updates 2016-06-29 20:46:20 +01:00
fe13ff56fc ENH: Updated ensight surface file reading 2016-06-29 20:43:20 +01:00
a415752eb5 ENH: window models - updated and added uniform window 2016-06-29 20:40:29 +01:00
0efe8b8ffa ENH: FFT - replaced Numerical Recipes-based FFT by the FFTW library 2016-06-29 20:37:39 +01:00
45198c5884 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-29 18:00:52 +01:00
5c673119ad BUG: ensightFile: does not handle writeKeyword since no virtual for const word&
Related to #132.
2016-06-29 17:58:38 +01:00
2058ae5a85 ENH: TurbulentDFSEM - increment eddy OBJ file index to avoid over-writing 2016-06-29 17:13:01 +01:00
b2234f19e5 BUG: could not set system clang (issue #166)
- gcc/g++ always being used

STYLE: spurious unsetenv WM_COMPILER_TYPE (csh only)

- more stringent cleanup of ThirdParty settings for wmUNSET
2016-06-29 16:06:48 +02:00
5de8c1538f BUG: motorBike: starting off with correct controlDict 2016-06-29 14:34:35 +01:00
6e6ed0ca94 STYLE: cleanup rhoPorousSimpleFoam tutorial case
- better cleanup, avoid collisions between implicit and explicit cases
2016-06-29 14:21:02 +02:00
820f809bd5 STYLE: cleanup handling of 0.org directories (in parallel)
- remove duplicate 0/ files from the repository
2016-06-29 13:34:36 +02:00
8bdc7e01bf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-29 10:43:51 +01:00
49e4475b46 STYLE: redistributePar: indentation 2016-06-29 10:43:36 +01:00
cc36db19de GIT: Resolved conflict 2016-06-28 16:59:01 +01:00
f0375fc35c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-28 16:53:35 +01:00
0f6f3e3c90 COMP: TensorI.H - provide default case to suppress compiler warning 2016-06-28 16:53:21 +01:00
dd3fb6225f ENH: Tutorials - added new channel tutorial to show turbulence DFSEM inlet behaviour 2016-06-28 15:49:18 +01:00
8752f77ab9 ENH: adjust output format of profiling (issue #157)
- output as dictionary format instead of PtrList.
  Makes it easier to manipulate (changeDictionaryDict, foamInfoExec).
2016-06-28 15:52:58 +02:00
b9bb92b65d ENH: provide configuration settings for FFTW 2016-06-28 15:27:11 +02:00
8549012947 ENH: Added new syntheic turbulence inlet boundary condition for LES/DES
Reference:
    Poletto, R., Craft, T., and Revell, A.,
    "A New Divergence Free Synthetic Eddy Method for the
    Reproduction of Inlet Flow Conditions for LES",
    Flow Turbulence Combust (2013) 91:519-539
2016-06-28 14:23:17 +01:00
c233552dda ENH: cachedRandom - added 'shuffle' function to shuffle list inplace
BUG: cachedRandom - updated how generator is (re)initialied
2016-06-28 13:55:58 +01:00
1988e4bb60 STYLE: avoid backticks for getApplication 2016-06-27 17:50:55 +02:00
dd60cfcd06 FIX: provide restore0Dir function to fix issue #159
- makes it easier to ensure the correct behaviour, consistently
2016-06-27 16:33:55 +02:00
ca9923932a BUG: decomposePar: force creation of uniform dir. Fixes #163 2016-06-27 11:18:06 +01:00
cbc169adba ENH: insideCells: does not run parallel. Fixes #162. 2016-06-27 10:14:18 +01:00
704cfa1e0a ENH: add timing/memory info to foamToEnsight, foamToEnsightParts, foamToVTK
- useful for performance comparisons
2016-06-26 15:39:43 +02:00
8ba70962b2 Merge branch '3rdparty-updates' into 'develop'
3rdparty updates



See merge request !49
2016-06-24 10:09:19 +01:00
4b7056acf9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-23 15:46:30 +01:00
92f833db75 ENH: snappyHexMesh: walk through faceZones without attached cellZone
If a side is not yet assigned to a cellZone (but the neighbour is)
and the surface is not related to a faceZone, assign the neighbour cellZone.
Fixes #156
2016-06-23 15:44:41 +01:00
32a6697728 Merge remote-tracking branch 'origin/develop' into develop 2016-06-23 16:16:38 +02:00
95c9e53a14 STYLE: remove echo to stdout for profiling::writeNow() 2016-06-23 16:15:27 +02:00
53d1084723 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-23 14:54:07 +01:00
4d95d6e8d9 BUG: Continuation of #155 - further fix for accessing data object 2016-06-23 14:53:50 +01:00
ea58a523da ENH: use long for number of calls in profiling (issue #157)
- provide a static profiling::print(Ostream&) method to output
  values to a log file.
2016-06-23 14:34:45 +02:00
eb3ba2479a BUG: disturbing warning about multiple initialization of profiling
- For example, decomposePar use multiple simultaneous Times.
  So permit multiple initialization without a warning. (issue #157)
2016-06-23 14:18:17 +02:00
08be9fcb5d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-22 09:19:36 -07:00
36ad131dc9 ENH: Correcting T.particles outlet BC for fluidsedBed 2016-06-22 09:18:58 -07:00
9aa3681dcc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-22 16:52:39 +01:00
cc68190167 BUG: runTimePostProcessing - set the appropriate cell or point data type. Fixes #155 2016-06-22 16:52:16 +01:00
85e246b8f2 BUG: profiling dictionary could be binary/compressed (fixed #157)
BUG: memInfo not activated by -profiling option (fixed #157)
2016-06-22 17:20:15 +02:00
2ca4082852 ENH: snappyHexMesh: add profiling of snappyHexMesh 2016-06-22 16:12:18 +01:00
3cf049a88b Merge branch 'feature-AMIMethod' into 'develop'
mapNearestAMI: move normalisation to AMIMethod.

Avoids cells shared among processors to be counted multiple times and having
weights > 1.

See merge request !37
2016-06-22 14:59:09 +01:00
b0b25c5f7e Merge branch 'feature-mapFields' into 'develop'
mapping constraint patches



See merge request !48
2016-06-22 14:48:45 +01:00
a8b0552338 Merge branch 'feature-profiling' into 'develop'
high-level profiling/timing functionality



See merge request !47
2016-06-22 14:46:50 +01:00
b10a913332 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-22 11:25:18 +01:00
b8edbb9fe1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-22 11:24:30 +01:00
bcb17b23b1 ENH: createPatch: removed createPatch after snappyHexMesh to remove zero-sized patches
This is now handled inside snappyHexMesh with the keepPatches setting.
2016-06-22 11:21:00 +01:00
606b952246 ENH: wallBoiling: underrelax mass transfer, solve intermediates tighter
Fixes wallBoiling mentioned in #141
2016-06-22 10:20:42 +01:00
72652f2781 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-22 10:06:21 +01:00
facb1457f2 ENH: snappyHexMesh: move locationInMesh away from rotor.
snappyHexMesh filters out zero-sized patches so no more createPatches.
Fixes part of #152
2016-06-22 10:04:48 +01:00
48edad64e5 ENH: Improving BC description 2016-06-21 08:45:02 -07:00
c1a3ad4f00 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-21 08:24:20 -07:00
244ec265e2 BUG: Setting transient to true when cloud is not active. 2016-06-21 08:10:21 -07:00
b4997ae091 CONFIG: only need one library variant for third-party openmpi
- in 3rd-party we always build into lib$WM_COMPILER_LIB_ARCH and
  thus only need this one in LD_LIBRARY_PATH.
2016-06-21 12:23:44 +02:00
db467dbcf8 BUG: foamToVTK produces invalid files (fixes #154)
- broken by commit 2027059b (2016-03-09) where the pTraits
  nComponents type was changed from int to Foam::direction
2016-06-21 10:21:17 +02:00
3fc2ec183d ENH: potentialFoam: construct Phi with only types() so does not work
for initialising 'complex' bcs. Instead now 'clone' from p. Fixes #153.
2016-06-20 20:57:47 +01:00
cbc4e0d96f ENH: add maxMem information to profiling
- value corresponds to the max memory when the corresponding profiling
  is started.
  Only used when the top-level profiling has memInfo active.

- memInfo is disabled by default, since the new maxMem functionality
  otherwise adds overhead with every call.

tutorial:
    /lagrangian/reactingParcelFoam/verticalChannelLTS
2016-06-20 21:21:43 +02:00
37bf28c249 STYLE: rename Profiling -> profiling 2016-06-20 21:20:31 +02:00
5583b78d9d ENH: snappyHexMesh: revert zoneing back to e8d73e5546
since growing single cells just makes the zoneing inconsistent with the
surface intersections (so you don't have a patch when converting surface
intersections to baffles)
2016-06-20 16:39:34 +01:00
b1d755aca1 ENH: mapFieldsPar: map (global) constraint patches 2016-06-20 11:25:38 +01:00
ae74a9ba6c COMP: solidChemistryModel: accessing tmp 2016-06-20 11:21:51 +01:00
726aa8cdb9 ENH: out of source build for paraview plugins
- more consistent with the rest of the OpenFOAM source tree

- improve wmake / wclean behaviour
2016-06-20 11:18:24 +02:00
f317958d5a BUG: wclean all does not use Allwclean in subdirectories (fixes #150)
- also reported as http://bugs.openfoam.org/view.php?id=2125
2016-06-20 11:04:25 +02:00
e86d3f2e0e ENH: add preliminary profiling items into snappyHexMesh
- needs more refinement, but provides the general idea.
2016-06-18 01:00:55 +02:00
be73d81a22 ENH: support '-profiling' command-line option
- this option overrides any controlDict settings as a convenient means
  to selecting profiling without messing with the controlDict.

- provide Profiling::writeNow() to emit profiling for utilities that
  don't have any natural time increment mechanism to trigger it.
2016-06-17 23:45:03 +02:00
b2b4123164 STYLE: minor config file details
- move unset mpi buffer size from config.csh/settings -> config.csh/mpi

- wmUNSET now also unalias wmREFRESH

Note: unsetenv WM_COMPILER_TYPE in csh variant?

- drop reference to paraview-3 in config files.
  Cannot say anything definite about support for versions
  this old (2012)
2016-06-17 19:56:19 +02:00
e57a0e68a2 ENH: (further) Doxygen documentation updates for module support 2016-06-17 17:41:04 +01:00
d31adaeb5e ENH: (further) Doxygen documentation updates for module support 2016-06-17 17:41:04 +01:00
c740656eb4 ENH: replace SOURCE_CGAL_VERSIONS_ONLY workaround (fixes #148)
- replace with an alternative workaround.

  Unset the _foamAddLib function prior to sourcing config.sh/CGAL:

  - LD_LIBRARY_PATH will not be adjusted.
  - cgal_version/boost_version variables will be retained.

Note: for ThirdParty builds, it is important that the boost and CGAL
paths are added into LD_LIBRARY_PATH even if before they are created.
This ensures that the OpenFOAM environment is functional after the
build.

The '*-none' and '*-system' specifications can still be used to avoid
setting them at all.
2016-06-17 16:53:14 +02:00
b6ad46e139 GIT: Resolved conflict 2016-06-17 14:20:45 +01:00
9e84deeb09 STYLE: Updated template code 2016-06-17 14:11:59 +01:00
86cb17b443 ENH: Doxygen documentation updates for module support 2016-06-17 11:53:31 +01:00
97943ed819 COMP: improve robustness and warning messages when building paraview plugins 2016-06-17 09:31:41 +02:00
98e951e8ba COMP: downgrade error to warning when building run-time post-pro
- although the build is not 100% complete, it is only the run-time
  post-processing with VTK that is affected.

- improve robustness and warning messages

COMP: adjust build order (solvers, utilities)

- as per http://bugs.openfoam.org/view.php?id=2116
2016-06-16 19:58:55 +02:00
5ac7a846ed CONFIG: adjust csh compiler settings to be closer to sh version
- makes it easier to ensure consistent setups
2016-06-16 17:22:30 +02:00
bbf20318e0 ENH: support use of system gmp/mpfr/mpc with ThirdParty gcc
- not previously possible to configure a third-party gcc
  with system gmp/mpfr/mpc.
  This makes it easier to switch between compilers for testing.

- use system libraries by default
2016-06-16 16:49:28 +02:00
62f634c014 BUG: missing library arch on 3rd party gmp/mpfr/mpc paths issue #148
STYLE: drop conditional check on mpc.

- was for older gcc, but is a requisite for gcc >= 4.5
2016-06-16 15:54:06 +02:00
a39ffa66f2 STYLE: remove unneeded sourcing of scotch 2016-06-16 10:22:58 +02:00
ad73063ebd Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-15 17:01:27 -07:00
6f9a8f5b5a BUG: Fixing wideBandDiffusiveRadiationMixed in calculation of incident radiation on wall for wide band model. 2016-06-15 17:00:30 -07:00
2dc31390df ENH: add some system information when outputting profiling
- basic cpuInfo (model identification, MHz, etc)
- process memInfo

- profiling is activated via the case system/controlDict by
  adding a "profiling" sub-dictionary.

  Simply add the following (everything enabled):

      profiling
      {}

  Which corresponds to the longer form:

      profiling
      {
          active      true;  // default: true
          cpuInfo     true;  // default: true
          memInfo     true;  // default: true
          sysInfo     true;  // default: true
      }

  This can be used to selectively disable any extra information
  (eg, you don't want anyone else to know what hardware was used).
2016-06-15 20:17:44 +02:00
f029bda6d2 Merge branch 'feature-conservativeACMI' into 'develop'
BUG: cyclicACMI: make conservative and remove faceAreas0

Need to review cyclicACMI patch non-overlap values
- values here preserve initial values only
- snGrad - used?
- wall functions - no longer call updateCoeffs with ACMI weights (?)

See merge request !46
2016-06-15 16:16:43 +01:00
afbca24927 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-15 15:51:42 +01:00
3819cf1659 BUG: streamlines: failure on muttley, not on local machine.
The problem was the demand-loading of the functionObjectProperties
IOdictionary which can cause parallel communication (if timeStampMaster
it scatters the headerOk status). So call setProperty on all processors!
Fixes #118.
2016-06-15 15:48:38 +01:00
c7b27f5af9 ENH: provide basic cpu-information
- can be useful later when trying to interpret run-times etc.

  Contains only the most basic information.
2016-06-15 12:38:46 +02:00
e2d01c02e3 GIT: remove stray (unused) memInfoIO.C file 2016-06-15 11:29:11 +02:00
6905a80c15 Reordering interDyFoam cases for RAS and laminar 2016-06-14 15:09:59 -07:00
acc0e56c78 ENh: Updating windshieldDefrost case set up 2016-06-14 15:01:56 -07:00
91aa4c5f71 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-14 09:30:59 -07:00
97585e2952 BUG: Fixing error in using reference to tmp in pEqn.H for chtMultiRegionFoam 2016-06-14 09:30:14 -07:00
d5d0174b01 CONFIG: adjust for updated ThirdParty
- also update settings to include newer compiler versions
2016-06-14 10:46:20 +02:00
3732d5a9cb COMP: rigidBodyMeshMotion: had FULLDEBUG switched on 2016-06-13 15:15:07 +01:00
ef9a14b288 ENH: ensightFile: make interface consistent with Ostream::writeKeyword
Test with #122
2016-06-13 14:51:10 +01:00
4aafaf9bb8 BUG: surfaceBooleanFeatures: uses triSurfaceMesh so does not need path
Fixes the simpleShapes failure in #141
2016-06-13 13:14:48 +01:00
d571e6cfcc BUG: externalSolarLoad: boundaryRadiationProperties : uniform emissivity etc. 2016-06-13 13:12:20 +01:00
ea1ede26be Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-13 11:50:53 +01:00
60042b1685 BUG: snappyHexMesh: fix faceZone splitting of surfaces
This is a bit complicated. When allocating cells to zones
(meshRefinementBaffles::zonify) in finishes with findCellTopo which
tried to fix the odd cell which wasn't put into the correct region. This
was actually modifying whole regions to be a certain cellZone so if
there was some 'bleeding' it would re-assign a whole region to be e.g.
background and get deleted. Instead it now will only reassign single
cells if these are
- unassigned
- inbetween multiple, differing cellZones

Fixes the simpleFoam/rotorDisk meshing (gitlab #141)
2016-06-13 11:46:08 +01:00
136c0000b2 BUG: cyclicACMI: partial reverted updateCoeffs structure
- cyclicACMIFvPatchField::updateCoeffs() now again redirects to
fvPatchField::updateCoeffs(const scalarField& weights);
- which redirects to fvPatchField::updateCoeffs();
- except on wall functions where the weights are used to switch off
  turbulence generation
- renamed the updateCoeffs on the fixedFluxPressure bc to updateSnGrad.
2016-06-13 10:40:19 +01:00
7572c99c79 GIT: Resolve conflict 2016-06-10 16:05:48 +01:00
1fd05b2d1b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-10 15:40:45 +01:00
49b67312d2 Merge branch 'runTimePostProcessing_bugFix' into 'master'
Multiple updates for run-time post-processing functionality



See merge request !39
2016-06-10 15:27:00 +01:00
151bcc8018 ENH: Run time post-processing updates and bug fixing. Fixes #128 #121 #99 2016-06-10 15:23:56 +01:00
430b6208e6 BUG: Run time post-processing - corrected surfaces rendered by colour. Fixes #97 2016-06-10 15:21:48 +01:00
4ba2b7bec7 Improved mesh motion in pyrolyis region. Fixed energy Eq in pyrolysis model
and adding tutorial
2016-06-09 15:38:13 +01:00
f3ac9b771e STYLE: dead timer pointers left behind in profiling lookup
- not de-referenced and no current issues, but cleaner this way
2016-06-09 10:49:04 +01:00
e31ad7be29 STYLE: improve consistency in pointer casts 2016-06-09 10:10:26 +01:00
ef34e60e2d ENH: add profiling code from Bernhard Gschaider
- activate via the case's <system/controlDict>:

      profiling   yes;
2016-06-08 16:38:10 +01:00
9ab102bce3 STYLE: reduce code duplication in Time.C 2016-06-08 16:33:46 +01:00
ac6f01ed7a Merge branch 'feature-MPPICInterFoam' into 'develop'
Feature mppic inter foam

New MPPICInterFoam solver. Add MPPIC cloud to a VOF approach. Particles volume are considered into transport Eq fluxes.
    Solves for 2 incompressible, isothermal immiscible fluids using a VOF
    (volume of fluid) phase-fraction based interface capturing approach.
    The momentum and other fluid properties are of the "mixture" and a single
    momentum equation is solved.

Solver:
/applications/solvers/multiphase/MPPICInterFoam
Tutorial:
/tutorials/multiphase/MPPICInterFoam/twoPhasePachuka

See merge request !41
2016-06-08 14:04:49 +01:00
f9e10f1a95 Merge branch 'feature-interCondensatingEvaporatingFoam' into 'develop'
ENH: Adding interCondensingEvaporatingFoam and tutorial

    Solver for 2 incompressible, isothermal immiscible fluids using a VOF
    (volume of fluid) phase-fraction based interface capturing approach.
    The momentum and other fluid properties are of the "mixture" and a single
    momentum equation is solved.

Solver:
   /applications/solvers/multiphase/interCondensingEvaporatingFoam
Tutorial:
  /tutorials/multiphase/interCondensingEvaporatingFoam/condensatingVessel


See merge request !43
2016-06-08 14:00:39 +01:00
b6c45cd08e Merge branch 'feature-boundaryRadiationProperties' into 'develop'
Feature boundary radiation properties

Change of the frame work for the specification of radiation properties

See merge request !42
2016-06-08 13:58:14 +01:00
86bdabccb5 GIT: Resolved conflict 2016-06-08 13:57:05 +01:00
d79fa1f813 Merge remote-tracking branch 'origin/develop' into develop 2016-06-08 12:42:29 +01:00
3eb6cb89e7 Adding comment on limitations on using cachedDiv option in FvDom and
changing tutorial settings to cachedDiv = false
2016-06-08 12:06:28 +01:00
f1f3f34b16 STY: Adding description to movingMesh flag in reactingOneDim pyrolysis model 2016-06-08 12:04:56 +01:00
55e6a4f6e4 BUG: Fix pyrolysis energy eq in reactingOneDim. Fix moving mesh approach for
solving pyrolysis Eqs.
2016-06-08 11:59:22 +01:00
1452cc0827 BUG: ensight writers not catching special reserved characters (fixes #122)
- most notably the '%' which is used as a separator in places
  caused problems.

EHN: only use valid ensight file/variable names for writers

- fixed:   foamToEnsightParts, ensightSurfaceWriter
- pending: foamToEnsight

BUG: no geometry written for foamToEnsightParts with moving mesh (fixes #142)

- an incorrect path was causing the issue
2016-06-07 17:16:09 +01:00
9066ecfdf3 ENH: optional flag to suppress stripping in fileName constructor
- increases flexibility and adds consistency with the word class.
2016-06-08 10:13:19 +01:00
72b0779847 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-07 12:45:57 +01:00
b6472f3f7c BUG: cavity: fixes the running of the cavity case #141 2016-06-07 12:44:34 +01:00
a53e579f80 BUG: interpolation2DTable<Type>::write does not compile (issue #140) 2016-06-06 15:42:01 +01:00
f063546b07 BUG: interpolation2DTable<Type>::write does not compile (issue #140) 2016-06-06 15:42:01 +01:00
c4b5880f9c BUG: cyclicACMI: make conservative. Remove faceAreas0 2016-06-06 14:30:00 +01:00
a8e9c35cb5 BUG: Fixing valueDiff calculation 2016-06-06 10:15:04 +01:00
af648d7c89 Changing header in tutorial files and updating pEq.H 2016-06-03 09:31:56 -07:00
feab373f69 Merge branch 'feature-reactionSensitivity' into 'develop'
reactionSensitivityAnalysis FO

 This function object creates four data files named:

    "consumption"    :   consumption rate
    "production"     :   destruction rate
    "productionInt"  :   integral between dumps of the production rate
    "consumptionInt" :   integral between dumps of the consumption rate

    The function object indicates reaction rates of creation or destruction of species in each reaction.

code:
        src/postProcessing/functionObjects/utilities/reactionSensitivityAnalysis/
tutorial:
         /tutorials/combustion/chemFoam/gri

The output format file is (consumption.dat):

time :        1e-2
dellat T:   1e-5
Reaction         specie1  specie2 ....
1                          RR11       RR12
2                          RR21       RR22
.
.



See merge request !44
2016-06-03 17:21:46 +01:00
e1f2329222 STY: Updating function in pEq, ErrorInFunction and tutorial web site name 2016-06-03 09:16:34 -07:00
0c17c152d8 STY: Fixing style 2016-06-03 08:46:19 -07:00
700222e642 STY: Fixing style 2016-06-03 08:46:19 -07:00
1a6e8c569e Merge branch 'feature-lagrangian' into 'develop'
Feature lagrangian

Minor adjustments to static information attached to lagrangian parcels/particles.
Fixes #108 (duplicate of http://www.openfoam.org/mantisbt/view.php?id=1990), #109, #110, #111.

Future reworking would require a better mechanism to also deal with dynamic information such as particle collisions etc.


See merge request !34
2016-06-03 16:14:49 +01:00
2ac7b2f592 Merge branch 'tut_allToAll' into 'master'
ENH: Update tutorial for features directionalPressureGradient, Global file handling

- Activate directionalPressureGradient source
- Check for Global/Share file handling

See merge request !45
2016-06-03 15:44:34 +01:00
4b807b580c ENH: Global file handling - update initial Solver control 2016-06-03 17:10:37 +05:30
ec5a0e75b4 ENH: Update tutorial for features directionalPressureGradient, Global file handling 2016-06-03 16:38:34 +05:30
da6675803b BUG: Fixing area weighted pressure difference calculation for pressured based mode 2016-06-02 15:48:17 -07:00
efccbb5c2b ENh: Adding reactionSensitivityAnalysis FO and adding it to utorials/combustion/chemFoam/gri/ test case 2016-06-02 10:31:31 -07:00
6a49568b8d ENh: Adding reactionSensitivityAnalysis FO and adding it to utorials/combustion/chemFoam/gri/ test case 2016-06-02 10:31:31 -07:00
ab2f17e6fb Changed tutorial location 2016-06-02 10:27:25 -07:00
9b0cd898a6 BUG: Fixed parallel operation of activePressureForceBaffle 2016-06-02 09:44:40 -07:00
73a1156689 Merge branch 'feature-alltoall' into 'develop'
Feature alltoall

Added the on-the-fly creation of communication schedule

See merge request !40
2016-06-02 16:54:13 +01:00
56615ec465 Merge remote-tracking branch 'origin/develop' into feature-alltoall
Conflicts:
	src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionaryIO.C
	src/OpenFOAM/db/IOstreams/Pstreams/Pstream.H
	src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.C
	src/OpenFOAM/db/IOstreams/Pstreams/PstreamBuffers.H
	src/OpenFOAM/db/IOstreams/Pstreams/UPstream.C
	src/OpenFOAM/db/IOstreams/Pstreams/UPstream.H
	src/OpenFOAM/db/IOstreams/Pstreams/combineGatherScatter.C
	src/OpenFOAM/db/IOstreams/Pstreams/exchange.C
	src/OpenFOAM/db/IOstreams/Pstreams/gatherScatter.C
	src/OpenFOAM/db/IOstreams/Pstreams/gatherScatterList.C
	src/OpenFOAM/db/regIOobject/regIOobjectRead.C
	src/Pstream/dummy/UPstream.C
	src/Pstream/mpi/UPstream.C
	src/lagrangian/basic/Cloud/Cloud.C
	src/meshTools/regionSplit/regionSplit.C
2016-06-02 15:07:51 +01:00
5d29b49811 BUG: UOPstream indexes out of bounds after whitespace stripping (fixes #134)
- only affects transfer of C-style string with a single character
  remaining after whitespace stripping. Test added into Test-parallel.

- Note some idiosyncrasies in the behaviour:

      send                   |    receives
    -------------------------+-------------------------
        string("a b c")      |    string "a b c"
        string("a")          |    string "a"
        "a b c"              |    word   "abc"
        'd'                  |    char   'd'
        "d"                  |    char   'd'
        "d   "               |    char   'd'
2016-06-02 09:45:04 +02:00
45264f1b2d Deleting files from tutorial 2016-06-01 11:45:17 -07:00
6c92bfdf5a Deleting files from tutorial 2016-06-01 11:37:40 -07:00
00d4761aa8 MPPICInterFoam and tutorial 2016-06-01 11:08:06 -07:00
2a07e34fb0 ENH: vtkSurfaceWriter: user-specifiable precision.
Partly solves #65. Ensight writer is fixed but all the other ones probably
need doing as well.
2016-06-01 17:43:14 +01:00
8a7880af2e BUG: ensightBinaryStream: avoid overflow. Fixes #132 2016-06-01 14:44:30 +01:00
8c35c8b611 BUG: Allwmake: using old Make/ location 2016-06-01 13:31:07 +01:00
42519734c7 ENH: snappyHexMeshDict: improved comment 2016-06-01 12:52:09 +01:00
d141b3c9b5 ENH: Adding interCondensingEvaporatingFoam and tutorial 2016-05-31 14:41:47 -07:00
c9e872b3bc ENH: Changing boundaryRadiationProperties to read an scalar when a lookup mode is used for boudanry radiation properties.
Tutorials updated accordingly
2016-05-31 08:42:07 -07:00
91d4bab09c BUG: When cloud is inactive, the transient flag needs to be read to avoid default value false and the unnecassary massFlowRate input 2016-05-26 11:19:48 -07:00
47036d4fd4 BugFix: viewAngle reset in static camera mode 2016-05-25 18:09:13 +05:30
9b14a94898 Fixes #99 #127 #128 #138 2016-05-25 14:54:31 +05:30
15192e732b BUG: -case argument support and nFrames > 1 warning for static mode 2016-05-19 18:00:58 +05:30
e8d73e5546 BUG: snappyHexMesh: zoning would set unset regions to back ground region
instead of removing them. Now done similar to 23x:
- in 'removing unreachable parts of mesh' keep regions unset (so they get removed)
- in final zoning set to background region

See Gitlab #66.
2016-05-18 14:14:41 +01:00
bda3d11072 Merge remote-tracking branch 'origin/develop' into feature-AMIMethod
Conflicts:
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.C
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIInterpolation.H
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIMethod/AMIMethod/AMIMethod.H
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIMethod/faceAreaWeightAMI/faceAreaWeightAMI.H
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIMethod/mapNearestAMI/mapNearestAMI.C
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIMethod/mapNearestAMI/mapNearestAMI.H
	src/meshTools/AMIInterpolation/AMIInterpolation/AMIMethod/partialFaceAreaWeightAMI/partialFaceAreaWeightAMI.H
2016-05-18 13:08:52 +01:00
ecdc2b2a60 Merge branch 'feature-iotweaks' into 'develop'
Feature iotweaks

Enhancements for #114 and #115. Tagged as WIP, since there may be some need for discussion/rework prior to merging.

See merge request !35
2016-05-13 06:52:11 +01:00
a2be9acca4 BUG: mapNearestAMI: move normalisation to AMIMethod.
Avoids cells shared among processors to be counted multiple times and having
weights > 1.
2016-05-11 10:40:51 +01:00
5f73cb6170 Merge branch 'merge-foundation' into 'develop'
Merge foundation

Integrating latest code from the OF Foundation - main changes:

Lots of renaming/refactoring:
- to retrieve reference from tmp, now need to use tmp.ref() as opposed to tmp()
- fvc::flux function to replace fvc::interpolate(<field>) & mesh.Sf()
- integration of new c++ features: no more spaces between closing template braces, e.g. class1<class2<Type> > becomes class1<class2<Type>>
- DataEntry renamed to Function1

New functionality:
- Updated 6DoF
- fvOptions support in turbulence models

See merge request !33
2016-05-10 14:33:15 +01:00
26e1b299f6 Merge branch 'RunFunctions' into 'merge-foundation'
ENH: added -decomposeParDict as argument to getNumberOfProcessors()

Continuing discussion at 
1507178a1b (note_1093)

Now the Allrun script could be
```
runParallel -decomposeParDict system/decomposeParDict-6 snappyHexMesh -overwrite
```

Thanks @Mattijs 


See merge request !36
2016-05-06 11:04:45 +01:00
e0a0f94e6f ENH: added -decomposeParDict as argument to getNumberOfProcessors() 2016-05-06 11:25:11 +05:30
62144e4dd7 Revert "Change boundaryRadiationProperties and boundaryRadiationPropertiesPatch to mesh object and changing tutorials accordingly"
This reverts commit 662f9242e9.

Note: functionality moved to feature-boundaryRadiationProperties branch
2016-05-05 12:21:23 +01:00
f4af153381 BUG: bashrc: correct WM_PROJECT, set WM_MPLIB to SYSTEMOPENMPI, 2016-05-05 11:26:08 +01:00
b6270e821c COMP: metisDecomp: change processor weights to float 2016-05-05 11:22:22 +01:00
9ce96f3c48 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

Conflicts:
	src/OpenFOAM/meshes/polyMesh/globalMeshData/globalMeshData.C
2016-05-03 15:49:52 +01:00
1c198c52da BUG: incorrect switch output for 'prime2Mean' in fieldAverage (item #137)
- incorrect variable referenced in output of "prime2Mean" switch setting.
2016-06-02 14:50:08 +02:00
713f71088c Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-04-29 15:53:31 -07:00
a15b03e5e2 source scotch in etc/bashrc 2016-04-29 15:53:07 -07:00
b7ee80c926 GIT: Resolve conflict when applying Sergio's updates to new local branch 2016-04-29 15:51:08 -07:00
662f9242e9 Change boundaryRadiationProperties and boundaryRadiationPropertiesPatch to mesh object and changing tutorials accordingly 2016-04-29 15:51:08 -07:00
c91712fbc3 ENH: foamHelp solver - added option to read solver type from the system/controlDict. Fixes #37 2016-04-29 16:05:47 +01:00
1b8017697c STYLE: Minor code style correction 2016-04-29 15:56:07 +01:00
93566da71d STYLE: Updated header documentation 2016-04-29 15:55:44 +01:00
123ca7b2ce BUG: SpalartAllmarasDES - updated for SP build. Fixes #98 2016-04-29 15:54:46 +01:00
48caf88af9 STYLE: corrected header 2016-04-29 15:47:35 +01:00
79254ff222 BUG: bashrc - added missing _foamSource scotch 2016-04-29 08:55:53 +01:00
51ea7379d6 STYLE: boundaryRadiationProperties updates 2016-04-28 17:24:50 +01:00
57d0c9bdda STYLE: boundaryRadiationProperties updates 2016-04-28 17:24:50 +01:00
53d7c8121f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-04-28 14:23:53 +01:00
cfcaaa85e4 BUG: forces/forceCoeffs - corrected behaviour for case that input fields are not available. Fixes #107 2016-04-28 14:23:38 +01:00
97eb58fa74 STYLE: Minor code clean-up 2016-04-28 14:18:17 +01:00
158a925235 ENH: Updated xxx::zero->Zero 2016-04-28 14:17:06 +01:00
af14c117a9 ENH: Integration updates 2016-04-28 09:57:03 +01:00
4228873d7f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-04-27 12:17:26 -07:00
fd27dafcc6 ENH: Adding option for closing or opening wall/cyclic double baffle in activePressureForceBaffleVelocityFvPatchVectorField 2016-04-27 12:15:31 -07:00
f0b404748d ENH: Further tutorial update 2016-04-27 09:41:27 +01:00
d1e4b6dbec ENH: More tuorial updates 2016-04-26 16:57:35 +01:00
1d5854a4b1 Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-04-26 15:06:56 +01:00
58513c63bb ENH: Tutorial updates 2016-04-26 15:04:42 +01:00
41f52d8425 ENH: Tutorial updates 2016-04-26 15:04:42 +01:00
639c798250 BUG: boundaryRadiationProperties - updated to use caseConstant() for parallel usage and updated style 2016-04-26 14:35:01 +01:00
f84c4ba8a2 BUG: boundaryRadiationProperties - updated to use caseConstant() for parallel usage and updated style 2016-04-26 14:35:01 +01:00
90ee8d433f ENH: Integration updates 2016-04-26 14:34:27 +01:00
9a0bd5831a ENH: runTimePostProcessing - updated to use c++0x and replaced DataEntry by Function1 2016-04-26 14:33:21 +01:00
16dfd33db8 ENH: Tutorials - updates 2016-04-26 14:32:19 +01:00
a7dcf8fc61 ENH: Tutorials - updated use of -log to use -s 2016-04-26 09:31:44 +01:00
51380edd52 Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-04-25 17:30:58 +01:00
b9313ef2fe ENH: Consistency updates after Foundation merge and code tidying 2016-04-25 16:46:56 +01:00
d3157ac905 ENH: snappyHexMesh: Renamed auto* to snappy* to be consistent with latest Foundation changes 2016-04-25 11:52:18 +01:00
fd9d801e2d GIT: Initial commit after latest foundation merge 2016-04-25 11:40:48 +01:00
cb0668170a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-04-25 11:25:04 +01:00
200c490f44 Merge branch 'bugFixes' into 'master'
bugFixes- various issues

#101 
#21 
#46 

See merge request !32
2016-04-25 11:22:02 +01:00
fd9dc2515f Merge remote-tracking branch 'origin/master' into bugFixes 2016-04-25 11:47:57 +05:30
69ae5a9a78 GIT: Resolve merge conflict 2016-04-22 13:31:37 +01:00
7854e426cc BUG: runTimePostProcessing - updated warning message for #99 2016-04-22 13:13:20 +01:00
a592347b91 BUG: functionObjectState required update when accessed via execFlowFunctionObjects- fixes #54 2016-04-22 13:01:21 +01:00
cdec7b0e1a bugFixes 2016-04-22 12:11:10 +05:30
e5a029c187 tutorials/multiphase/interDyMFoam/ras/damBreakWithObstacle: Added alphaPhi to correctFluxes
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2062
2016-04-21 21:19:01 +01:00
294379d421 tutorials/incompressible/pisoFoam/les/motorBike: Corrected typos
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2061
2016-04-21 21:13:10 +01:00
870d75c2d3 dictionary: Corrected topDict()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2060
2016-04-21 21:08:56 +01:00
9d0f4997d3 Tensor, SymmTensor: Simplified invariantII
Now the calculation of the 2nd-invariant is more efficient and
accumulates less round-off error.
2016-04-21 21:07:39 +01:00
5f13806591 Updated headers 2016-04-21 21:07:28 +01:00
0aaf154100 utilities/mesh/manipulation: Rationalized "End" message 2016-04-21 21:06:45 +01:00
d57464a99d transformPoints: Added "End" message
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2059
2016-04-21 21:05:47 +01:00
ef29ad4ca1 Merge branch 'feature-AMIMethod' into 'develop'
ENH: cyclicAMI: added 'method' specification



See merge request !31
2016-04-21 15:09:25 +01:00
a661bf281e BUG: Function objects - added missing Make entry for residuals function object - fixes #94 2016-04-21 15:07:41 +01:00
810e847265 BUG: runTimePostProcessing - corrected handling of position in scene.C - fixes #99 2016-04-21 15:04:43 +01:00
9b3009e25f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-04-21 13:03:10 +01:00
b846422eec ENH: Updates to applyBoundaryLayer utility
Old:
- Previous versions created k and epsilon fields by default, and
  then processed omega and nuTilda fields if present.
- Depending on the choice of turbulence model, not all of these fields
  would be used, and could lead to errors when running some utilities
  due to erroneous values.
- If the omega field did not exist, it would be derived from the epsilon
  field, and also inherit the epsilon boundary conditions (wall
  functions)

New:
- This version will only update fields that already exist on file, i.e.
  will not generate any new fields, and will preserve the boundary
  conditions
2016-04-21 12:46:23 +01:00
4f50e3030a ENH: cyclicAMI: added 'method' specification 2016-04-21 08:50:13 +01:00
b6ca9887b0 ENH: add parcel property types (fixes #109)
- assists in decoding what the binary IO content means

ENH: use label instead of bool for the KinematicParcel active state (fixes #111)

- avoids internal padding of the data structure and simplifies
  downstream use.

ENH: make particle sizeofFields public (fixes #110)

Also fixes #108 (missing faceI and stepFraction entries) which had
also been fixed in the upstream as well.
2016-04-21 08:47:50 +02:00
40e13d2a1a ENH: Changing header information in turbulentTemperatureCoupledBaffleMixedFvPatchScalarField & turbulentTemperatureRadCoupledMixedFvPatchScalarField 2016-04-20 11:08:17 -07:00
1197304b1e README.org: Added link to the OpenFOAM C++ Style Guide 2016-04-20 18:23:59 +01:00
8ad0f550ba BUG: AMIInterpolation: tgtMagSf not adapted for sent over patches 2016-04-20 17:26:14 +01:00
49ddb1d1a8 ENH: changeDictionary: do not allow adding to boundary file (as a special case).
Fixes #103
2016-04-20 11:01:48 +01:00
3639f36d37 codingStyleGuide: Corrected sectioning 2016-04-20 10:33:19 +01:00
90f5cc6b9d rigidBodyDynamics: Generalized the interface to the restraints
Now internal forces and restraints may be applied between bodies within
the articulated structure.
2016-04-19 21:58:10 +01:00
d5b9eeaad3 ENH: Change header with correct information 2016-04-19 09:53:56 -07:00
9b68e6d80c src/Allwmake: Added the new rigidBodyMeshMotion library 2016-04-19 11:11:22 +01:00
bbc05bdf7e tutorials/multiphase/interDyMFoam/ras/DTCHull: Updated to use the rigidBodyDynamics solver 2016-04-19 10:35:09 +01:00
125a986467 rigidBodyDynamics: Added support for running in parallel
The joint-space dynamics is solved on the master processor only and the
resulting joint-state distributed to the slave processors on which the
body-state is then updated.  This guarantees consistency of the body
position and orientation on all processors.
2016-04-19 10:32:25 +01:00
a1f209c482 doc/codingStyleGuide.org: Added specification references in class headers 2016-04-19 10:02:14 +01:00
d0b5bef948 tutorials/multiphase/interDyMFoam/ras/floatingObject: Updated to use rigidBodyDynamics 2016-04-18 15:41:10 +01:00
792b42e76b Updated header 2016-04-18 15:40:57 +01:00
e60f9f457f src/rigidBodyDynamics/rigidBodyMotion: Added support for acceleration relaxation 2016-04-18 15:40:23 +01:00
da7c56674d rigidBodyDynamics/bodies/sphere: Added support for the centre of mass being offset from the centre of rotation 2016-04-18 15:39:07 +01:00
39d7706ec9 rigidBodyDynamics/bodies/cuboid: New body shape
Calculate the inertia from the lengths of the sides
2016-04-18 15:37:57 +01:00
e7ef7ed4e6 src/OpenFOAM/primitives: inherit operator=(const Foam::zero) from base class where appropriate 2016-04-17 21:02:57 +01:00
e47179a70d applications/test/rigidBodyDynamics/pendulumAndSpring: Another slightly more complex test 2016-04-17 15:47:03 +01:00
312d613f73 rigidBodyMeshMotion: Read initial state and g from dictionary if present 2016-04-17 15:46:22 +01:00
0ea229ccc8 PtrListIO: Indent list elements on output.
Particularly useful for lists of dictionaries.
2016-04-17 15:45:29 +01:00
6862e3d76e BrownianMotionForce: Corrected expression for s0
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:39:09 +01:00
2e990f19d8 Updated references
See also http://www.openfoam.org/mantisbt/view.php?id=2036
2016-04-17 15:29:51 +01:00
2797ec2d27 externalWallHeatFluxTemperatureFvPatchScalarField: Corrected handling of QrPrevious_
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2052
2016-04-16 18:43:51 +01:00
8c6fa81eba vector::zero -> Zero 2016-04-16 18:34:41 +01:00
69e877a53a rigidBodyMeshMotion: displacementMotionSolver for the mesh-motion of multiple articulated rigid-bodies
The motion of the bodies is integrated using the rigidBodyDynamics
library with joints, restraints and external forces.

The mesh-motion is interpolated using septernion averaging.

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

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

Additionally "septernion::transform" has been renamed
"septernion::transformPoint" to clarify that it transforms coordinate
points rather than displacements or other relative vectors.
2016-04-15 11:27:18 +01:00
69fde6b831 ENH: provide Ostream virtual methods beginBlock, endBlock (fixes #112)
- eases creation of dictionary-like output.

- make keyWord() method virtual to allow adaptation for alternative
  outputs
2016-04-15 11:04:13 +02:00
e0e7c58b49 ENH: Adding zeroGradient BC's for k and epsilon in the DES/LES framework. 2016-04-12 15:02:31 -07:00
b66675ed58 rigidBodySolver: Updated comments 2016-04-12 22:23:04 +01:00
a0170df6c1 rigidBodyDynamics: Removed quaternion counter and index: 'nw', 'wIndex'
Replaced with 'unitQuaterion()' virtual function to indicate if the
joint uses a unit quaternion to represent rotation.
2016-04-12 22:17:52 +01:00
315a1baad3 rigidBodyDynamics: Simplify handling of quaternions by maintaining a unit quaternion in the joint state field 'q'
'w' is now obtained from 'v' using the relation w = sqrt(1 - |sqr(v)|)
and 'v' is stored in the joint state field 'q' and integrated in the
usual manner but corrected using quaternion transformations.
2016-04-12 21:44:34 +01:00
2d2ecf91dc quaternion: Added static member function to return a unit quaternion constructed from a vector
//- Return the unit quaternion (versor) from the given vector
    //  (w = sqrt(1 - |sqr(v)|))
    static inline quaternion unit(const vector& v);
2016-04-12 21:43:03 +01:00
5e6bdeea57 applications/test/rigidBodyDynamics/sphericalJoint: Test for the quaternion-based spherical joint 2016-04-12 16:37:52 +01:00
985506be28 applications/test/rigidBodyDynamics/spring: Updated comment 2016-04-12 16:37:26 +01:00
6be125814b rigidBodyDynamics/rigidBodySolvers: Added support for the integration of quaternion joints 2016-04-12 16:16:57 +01:00
948add3e10 applications/test/rigidBodyDynamics/spring: Correct typo 2016-04-12 16:16:30 +01:00
f51dfc37f2 rigidBodyDynamics: Simplified the interface to the solvers 2016-04-12 12:57:31 +01:00
3fda441e45 Updated header 2016-04-12 11:36:59 +01:00
2870be400e rigidBodyDynamics/rigidBodySolvers: Added run-time selectable solvers to integrate the rigid-body motion
Currently supported solvers: symplectic, Newmark, CrankNicolson

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

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

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

Patch contributed by Karl Meredith, FMGlobal
2016-04-12 09:03:12 +01:00
33be0fa564 rigidBodyDynamics/rigidBodyModelState: New class to hold the motion state of the rigid-body model
This is a more convenient way of maintaining the state or multiple
states (for higher-order integration), storing, retrieving and passing
between processors.
2016-04-11 19:01:16 +01:00
16868a2b7b ENH: Provides support for laminar models for hoSimpleFoam 2016-04-11 10:54:59 -07:00
5c4719dea0 rigidBodyDynamics/restraints: Added sphericalAngularDamper, spherical angular damper restraint 2016-04-11 16:12:23 +01:00
46cd2b3bed rigidBodyDynamics/restraints: Added linearAxialAngularSpring, linear axial angular spring restraint
Included for backward-compatibility with the 6-DoF solver but in the
future will be re-implemented as a joint rather than body restraint and
accumulated in tau (internal forces) rather than fx (external forces).
2016-04-11 15:14:18 +01:00
3d5410d26b Updated header 2016-04-11 14:29:00 +01:00
a108759d3e rigidBodyDynamics/restraints: Added linearDamper 2016-04-11 14:28:09 +01:00
be567300c3 rigidBodyDynamics/restraints: Complete dictionary IO 2016-04-11 11:45:51 +01:00
1f51c8a89d rigidBodyDynamics: Added support for restraints and a linear spring with damper
applications/test/rigidBodyDynamics/spring: Test of the linear spring with damper restraint
Damped simple harmonic motion of a weight on a spring is simulated and
the results compared with analytical solution

    Test-spring
    gnuplot spring.gnuplot
    evince spring.eps

This development is sponsored by Carnegie Wave Energy Ltd.
2016-04-10 23:12:07 +01:00
762aa208b1 rigidBodyDynamics/bodies/subBody: Changed "parent" to "master" to avoid confusion with the parent to which this composite body is joined 2016-04-10 23:08:45 +01:00
d87b06eadb rigidBodyDynamics/joints: Added doc for namespace 2016-04-10 23:07:45 +01:00
01d503b1c0 applications/test/rigidBodyDynamics/pendulum: Cleanup 2016-04-10 23:07:23 +01:00
6af11bfa02 spatialTransform: Added the "&&" operator to transform positions 2016-04-10 23:06:35 +01:00
8ca752eb79 applications/test/rigidBodyDynamics/pendulum/pendulum: Corrected joint type 2016-04-08 18:03:51 +01:00
81a6ea0cc9 rigidBodyModel: Add a few more comments 2016-04-08 17:25:17 +01:00
9ffaed8fd8 rigidBodyDynamics/bodies/jointBody: Special body to support elements of composite joints 2016-04-08 17:16:01 +01:00
8b6fe62f88 rigidBodyModel: Added operator<<(Ostream&, const rigidBodyModel&) 2016-04-08 17:02:02 +01:00
93f2f0d41a rigidBodyDynamics: Simplified the IO of bodies 2016-04-08 16:56:48 +01:00
1ec2507f62 rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel, bodies and joints
Added support for composite joints including a specialized 6-DoF form for floating bodies.
2016-04-08 16:35:49 +01:00
77ed073bdb rigidBodyDynamics/bodies: Complete set of clone functions to support copy construction and assignment 2016-04-07 23:04:17 +01:00
746cf915d4 rigidBodyModel: Provide support for copy-construction and assignment 2016-04-07 22:28:52 +01:00
0c7ce8938b rigidBodyDynamics: Added dictionary-based IO of the rigidBodyModel 2016-04-07 21:47:08 +01:00
9b7521ae0a List: Remove the inherited UList::shallowCopy to avoid accidental misuse 2016-04-07 21:05:26 +01:00
77b03e2e0c Specialized dotInterpolate for the efficient calculation of flux fields
e.g. (fvc::interpolate(HbyA) & mesh.Sf()) -> fvc::flux(HbyA)

This removes the need to create an intermediate face-vector field when
computing fluxes which is more efficient, reduces the peak storage and
improved cache coherency in addition to providing a simpler and cleaner
API.
2016-04-06 20:20:53 +01:00
4dedba478e surfaceInterpolationScheme: Added dotInterpolate member-function
dotInterpolate interpolates the field and "dots" the resulting
face-values with the vector field provided which removes the need to
create a temporary field for the interpolate.  This reduces the peak
storage of OpenFOAM caused by the divergence of the gradient of vector
fields, improves memory management and under some conditions decreases
run-time.

This development is based on a patch contributed by Paul Edwards, Intel.
2016-04-06 14:23:18 +01:00
52782da917 VectorI: Added dummy innerProduct for scalar
to allow the construction of vtables for virtual member functions
involving the inner-products of fields for which a "NotImplemented"
specialization for scalar is provided.
2016-04-06 14:22:33 +01:00
a8f5b45973 Updated headers 2016-04-06 14:22:24 +01:00
596bd8ba45 geometricOneField: Enhanced to provide better correspondence to GeometricField 2016-04-06 14:21:04 +01:00
fea0dc5203 src/Pstream/mpi/UPstream.C: Cast-away const-ness for backard-compatibility with OpenMPI versions < 1.7.4
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2044
2016-04-06 12:24:47 +01:00
67c2cbfe4b src/rigidBodyDynamics/bodies: Added write 2016-04-04 22:10:34 +01:00
343136e6cc applications/test/rigidBodyDynamics/pendulum: Simplified using sphere constructor and body lookup by name 2016-04-04 17:08:20 +01:00
75af861481 rigidBodyDynamics: Added sphere body to simply construction of articulated bodies containing spheres 2016-04-04 17:07:26 +01:00
071b1fd356 rigidBodyModel: Added support for body lookup by name 2016-04-04 17:06:48 +01:00
1e2ddab4e6 BUG: autoHexMesh: filtered patches mess up debug dumping 2016-04-04 14:56:58 +01:00
6d9c7112c3 Updated header 2016-04-04 13:53:51 +01:00
266651f1b9 surfaceMeshConvert: Reinstated missing error messages 2016-04-04 13:53:20 +01:00
486d856b26 src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 12:51:33 +01:00
e50d8ece57 applications/test/rigidBodyDynamics/pendulum: Add a test for merging bodies 2016-04-04 09:26:37 +01:00
a9b8bb13e0 applications/.*/Allwmake: Updated to support "stop on 1st error"
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2042
2016-04-04 09:03:40 +01:00
bc8dbb2d45 src/conversion/ensight: Specify std::isnan
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2041
2016-04-04 08:59:50 +01:00
4344a73231 applications/test/rigidBodyDynamics/pendulum: Very simple test/demonstration of the rigidBodyDynamics library
Simple swinging pendulum simulation with 1-DoF.  The motion is integrated
    using a symplectic method for just over 2-periods.
2016-04-03 22:17:10 +01:00
edfabd06ce src/Allwmake: added rigidBodyDynamics 2016-04-03 15:53:50 +01:00
55b457a0ca rigidBodyDynamics: New library providing support for the dynamics of n-DoF articulated bodies
Based on the principles, algorithms, data structures and notation
presented in the book:

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

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

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

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

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

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

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

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

2. Reversing the order of the way in which the sending is done when
   scattering information from the master processor to the other
   processors. This is done in a tree like fashion. Each processor has a
   set of processors to receive from/ send to. When receiving it will
   first receive from the processors with the least amount of
   sub-processors (i.e. the ones which return first). When sending it
   needs to do the opposite: start sending to the processor with the
   most amount of sub-tree since this is the critical path.
2016-04-02 18:32:11 +01:00
eabb03aa2a faceZoneToCell: Corrected cell selection logic
Patch contributed by Mattijs Janssens
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2038
2016-04-01 16:59:51 +01:00
5312f6c7f0 wmake/rules/linux64Icc: avoid uninteresting warning messages and change to -O3 2016-04-01 14:53:43 +01:00
8cd7097be1 spatialTransformI.H: Corrected doc 2016-04-01 14:53:23 +01:00
a2c69ae4dc Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-03-31 10:44:07 -07:00
d510c14a7a ENH: Adding new trubulent constructor for buoyantBoussinesqPimpleFoam and buoyantBoussinesqSimpleFoam 2016-03-31 10:43:30 -07:00
d28ff46476 BUG: faceZoneToCell: use of -1 cell labels 2016-03-31 08:57:34 +01:00
1c35f1a505 Updated handling of the ParaView installation path
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2034
2016-03-30 19:26:01 +01:00
f1ecdd77e6 Field: Add block member function to return sub-sets of the field as VectorSpaces 2016-03-30 18:17:51 +01:00
6e5b35bb69 spatialTransform: Include spatialTensor.H 2016-03-30 18:17:27 +01:00
a6901dd007 MatrixSpace: Add support for block conversion into VectorSpace 2016-03-30 18:16:47 +01:00
f77e26c5b9 MatrixSpace: Corrected typo 2016-03-30 18:16:20 +01:00
a7a4141c76 ENH: meshQualityDict: fixed comment 2016-03-30 11:28:39 +01:00
e0d9fc71f4 BUG: faceZoneToCell: cell next to facezone can be -1 for boundary face 2016-03-30 11:16:00 +01:00
b7924a57d5 SubField: Removed temporary Info statement 2016-03-25 22:43:40 +00:00
1a5ba9c4ff scotchDecomp, ptscotchDecomp: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2032
2016-03-25 22:36:13 +00:00
04dcee7680 RectangularMatrix: Removed the identity function (now in SquareMatrix) 2016-03-25 22:35:03 +00:00
e3f3c03ca8 sampledSet: Further improvements in robustness for midPoint and midPointAndFace 2016-03-24 23:06:10 +00:00
c05686d9bc Identity: Make cast-to-primitive operators explicit
to avoid operator resolution ambiguities when compiling single-precision
2016-03-24 23:04:53 +00:00
9f7ecd5453 LLTMatrix: Updated docs 2016-03-24 23:04:40 +00:00
b5f6e5d42a Update header 2016-03-24 19:13:36 +00:00
d4046bb85e LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
f019d1e738 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
e9199c6e14 QRMatrix: New class to provide QR-decomposition by Householder reflection
This development is sponsored by Carnegie Wave Energy Ltd.
2016-03-24 14:49:25 +00:00
9bbf09573b SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
0ce3586094 Matrix: correct docs 2016-03-24 14:48:28 +00:00
1fdcefb464 LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
1ec47384bb src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00
53d474db41 GIT: boundary: generated file 2016-03-23 15:52:14 +00:00
a08adf25de LUscalarMatrix: Updated code layout 2016-03-23 15:34:19 +00:00
0945cfd35f LLTMatrix: New matrix form to support Cholesky decomposition
of symmetric positive-definite matrices and the solution of associated
linear systems.
2016-03-23 15:33:03 +00:00
142920de9c ENH: snappyHexMeshDict: added documentation for keepPatches 2016-03-23 15:13:03 +00:00
ecc608d1c5 SquareMatrix, RectangularMatrix: Updated block handling
Added 'typeOfInnerProduct' support to ensure the correct type is
returned from the matrix product operator.
2016-03-23 12:52:35 +00:00
878866b16e MatrixBlock: Separate Matrix::Block into the separate class MatrixBlock
This avoids serious problems with template parameter deduction when
manipulating blocks of different matrix types e.g. Square and
Rectangular.
2016-03-23 12:50:34 +00:00
cfd939d4f2 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
730f89dc9d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
aa89254c79 foamNewFunctionObject: script to create template code for a new function object
Run foamNewFunctionObject -h for details
2016-03-22 17:40:03 +00:00
cb65ba71d7 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
caf8776f9b SquareMatrix, SymmetricSquareMatrix: Changed the constructor from size to require only n
This avoids the need to check that the m and n dimensions are the same.
2016-03-22 14:13:48 +00:00
082261439c Identity: Added conversion to label 2016-03-22 14:12:53 +00:00
c7e17fa6c2 RectangularMatrix: Added construction from and assignment to zero
Also added the Field outer-product operator returning a RectangularMatrix
2016-03-22 14:11:41 +00:00
961dc048da Matrix: Added support for extracting and assigning blocks
The blocks may be specified directly in terms of the size and location in the
parent matrix or with the size obtained from a template specified
VectorSpace or MatrixSpace type.
2016-03-22 14:09:24 +00:00
27ec0178dc Updated header 2016-03-22 14:09:04 +00:00
5eaa70cebc GAMGAgglomerationTemplates: Assign to Zero rather than pTraits<Type>::zero 2016-03-22 14:08:35 +00:00
14e4045702 Updated header 2016-03-22 14:08:01 +00:00
f34f9b3819 zero: Return Zero rather than zero() 2016-03-22 14:07:38 +00:00
554b965000 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:38:59 +00:00
34361493f9 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
ce81b44dc6 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:35:57 +00:00
0386551796 zero: Added support for initializing bool 2016-03-22 10:35:13 +00:00
7e5d9982a7 etc/codeTemplates/BC: Use Use 'Zero' rather than 'pTraits<Type>::zero' to initialize to 0 2016-03-22 08:33:16 +00:00
628eca41f6 Updated headers 2016-03-22 08:31:34 +00:00
402915798d fvPatchFields: Use 'Zero' rather than 'pTraits<Type>::zero' to initialize to 0
This new approach to 0 initialization is simpler, cleaner, more readable
and more efficient.  The rest of the OpenFOAM code will be updated in
due course.
2016-03-22 08:27:59 +00:00
4edb771e8a Field: Added construction from and assignment to zero 2016-03-22 08:27:31 +00:00
5c93cb5c8e Updated header 2016-03-22 08:27:11 +00:00
5ca4acadd6 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
e6e687b67d VectorSpaces and MatrixSpaces: Added construction from and assignment to zero 2016-03-22 08:25:50 +00:00
0f0e4a0c38 zero: Added cast to float and double for consistent scalar and floatScalar initialization and assignment to 0
Zero: New global instance of zero for simple and efficient initialization and assigment of primitives to 0
2016-03-22 08:23:09 +00:00
e69aaae548 Identity: Added cast to scalar 2016-03-22 08:22:21 +00:00
ea6eac35a6 etc/config.sh/CGAL: updated
Patch contributed by Bruno Santos:
 - "etc/config.sh/CGAL":
   - Indented the contents of the recently added if block.
   - Added comment about using system versions.
   - Library paths are now only added if the respective version is not "boost-system" and "cgal-system".

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

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

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

With the new addressing scheme LUsolve is 15% faster.
2016-03-20 15:00:36 +00:00
1d456a6698 Updated header 2016-03-20 10:35:35 +00:00
8f9f866c73 objectRegistry: Set the path of the Time objectRegistry
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2030
2016-03-20 10:31:48 +00:00
a7e410396a sampledSet/midPoint, midPointAndFace: Improved robustness of the mid-point cell seaching and selecting 2016-03-19 21:22:09 +00:00
649128313b sampledSet/face: Improved robustness of face selection 2016-03-19 21:21:23 +00:00
1b93e52c79 Field: Added zero() constructor 2016-03-19 21:20:33 +00:00
5afe3027d1 Updated header 2016-03-19 21:20:18 +00:00
1f89e65624 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
62b569ee39 SpatialVector: Added cross-product and dual cross-product operators
SpatialTensor: Added SpatialVector cross-product and dual cross-product -> SpatialTensor operators
2016-03-18 21:52:27 +00:00
1346cc9c9d SphericalTensor/Identity: Added dual form 2016-03-18 21:52:00 +00:00
f8b486ae35 Update header 2016-03-18 11:47:59 +00:00
6ab92370fb Identity: special type derived from SphericalTensor to provide the concept of identity (I)
Allows efficient operators to be defined for the interaction between
types and the equivalent identity.
2016-03-18 11:45:45 +00:00
9c0c6c5f00 SpatialVector: Added component access member functions
wx(), wy(), wz(), lx(), ly() and lz()
2016-03-17 22:12:48 +00:00
9a04ebae98 spatialTransform: Compact representation of the Plücker spatial transformation tensor
in terms of the rotation tensor \c E and translation vector \c r .

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

    This work is sponsored by Carnegie Wave Energy Ltd

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

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

This work is sponsored by Carnegie Wave Energy Ltd
2016-03-15 18:14:03 +00:00
ffa9d235ea RowVector: New 3D row-vector class derived from MatrixSpace
The transpose '.T()' of a RowVector returns a Vector and vice versa.
2016-03-15 15:13:41 +00:00
53eadb0254 Merge branch 'feature-shared-file' into 'develop'
Feature shared file

This contains the functionality from dev to do with (processor-)global/local file marking.
global files are those that are the same on all processors (e.g. dictionaries) and so can be read on the master processor only.  'local' files are specific to the processor (e.g. fields).


See merge request !30
2016-03-14 17:35:40 +00:00
fa5867137d transformPoints, surfaceTransformPoints: Updated quaternion construction from Euler-angles
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2024
2016-03-14 16:40:35 +00:00
4f262eb3a2 VectorSpace: Changes loop logic to avoid warning from gcc-4.5 2016-03-14 15:36:42 +00:00
e57874859a Updated Doxygen documentation and files
Contributed by Bruno Santos
Resolves patch report http://www.openfoam.org/mantisbt/view.php?id=2023

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

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

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

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

and conversion to Euler-angles:

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

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

Tensor is now a 3x3 specialization of MatrixSpace.

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

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

Henry G. Weller
CFD Direct
2016-03-12 10:41:18 +00:00
e1d67b244d Corrected typo 2016-03-11 09:46:48 +00:00
97489df33d Matrix: Switch n() and m() so that now m() = number of rows and n() = number of columns
For consistency with current references and other numerics libraries
2016-03-10 22:53:09 +00:00
5a49c7d903 ENH: Adding functionality to incompressibleTwoPhaseMixture 2016-03-10 11:51:25 -08:00
a018e83e75 floatTensor: Tensor<float> 2016-03-10 12:45:42 +00:00
2ddcb12c67 VectorSpace: Change template parameter from nCmpt to Ncmpts for consistency with other template classes 2016-03-10 12:44:53 +00:00
7c692c18d8 Vector: Add constructor from Foam::zero 2016-03-10 12:44:25 +00:00
6cbdd17337 Merge remote-tracking branch 'origin/develop' into feature-shared-file 2016-03-09 14:38:34 +00:00
ffa7dc7d6b ENH: IOWarningIn: use new ..InFunction macros 2016-03-09 14:36:25 +00:00
2027059b63 src/OpenFOAM: changed template rank type from int to Foam::direction
Foam::direction is an unsigned type which makes it easier for the
compiler to pickup and report errors in the instantiation of
VectorSpaces and associated types.
2016-03-09 10:10:28 +00:00
c28a0c0d94 etc/cshrc, etc/config.csh: foamCompiler -> WM_COMPILER_TYPE
for consistency with etc/bashrc and etc/config.sh

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    \heading Patch usage

    Example of the boundary condition specification:
    \verbatim
    myPatch
    {
        type            SRFWallVelocity;
        value           uniform (0 0 0);    // Initial value
    }
    \endverbatim
2016-03-07 15:25:52 +00:00
d62351f53c Tensor: Added inv() member function 2016-03-07 15:25:27 +00:00
0e1787e44a polyMeshFilter.H: Updated indentation 2016-03-06 21:35:02 +00:00
ed2cff905c tutorials/incompressible/porousSimpleFoam/straightDuctImplicit/Allrun.pre: Updated for latest version of collapseEdges 2016-03-06 21:34:31 +00:00
ef86cd63d1 Update "wrmdep -update" to remove dead symbolic links
Patch provided by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2016
2016-03-06 19:13:45 +00:00
4bc77e6aff Sprucing up the tutorials folder and adding -dict to "collapseEdges"
Patch provided by Bruno Santos
Resolves patch application request http://www.openfoam.org/mantisbt/view.php?id=2015
2016-03-06 19:06:44 +00:00
7fc1915e1d Vector: added operator=(scalar) 2016-03-06 19:05:34 +00:00
e7bac07e14 Tensor: Added operator&= 2016-03-06 19:05:14 +00:00
e18ac8ff50 Matrix: Improved readability of the code 2016-03-06 19:04:53 +00:00
0f5059927c reactingTwoPhaseEulerFoam: Corrected mass exchange terms in the face-momentum equation
Thanks to Juho Peltola for the patch
2016-03-06 19:02:43 +00:00
9a8a1c83b0 messageStream: Added DebugInfo and DebugInFunction:
DebugInfo:
    Report an information message using Foam::Info if the local debug
    switch is true

DebugInFunction:
    Report an information message using Foam::Info for FUNCTION_NAME in
    file __FILE__ at line __LINE__ if the local debug switch is true
2016-03-04 11:30:13 +00:00
0e7278ad5b StaticAssert: Avoid unused typedef messages from gcc 2016-03-04 11:29:37 +00:00
0f49eb44d5 CocoParserErrors.H: No longer used 2016-03-04 11:29:14 +00:00
d6396ec5d2 DynamicList: Added initialized constructor and STL erase function 2016-03-04 11:28:35 +00:00
d4ae0eac10 COMP: options: add indirect linkage 2016-03-02 11:15:56 +00:00
c35544f9cb Merge remote-tracking branch 'origin/develop' into feature-shared-file 2016-03-02 09:54:15 +00:00
2bbc844ea0 Rationalize the autoMesh library: autoHexMesh -> snappyHexMesh
autoRefine -> snappyRefine
autoLayer -> snappyLayer
autoSnap -> snappySnap
2016-03-01 16:21:31 +00:00
eb5d349242 Rationalize the autoMesh library: autoMesh -> snappyHexMesh 2016-03-01 16:01:42 +00:00
3d295e9eff src/OpenFOAM: Removed unused files 2016-03-01 12:29:33 +00:00
5db3116a74 src/OpenFOAM: Moved function documentation comments into .H files and removed duplicates 2016-03-01 12:29:01 +00:00
3963149c05 src/OpenFOAM: Moved function documentation comments into .H files and removed duplicates 2016-02-29 21:21:41 +00:00
1317a716e1 src/finiteVolume: Moved function documentation comments into .H files and removed duplicates 2016-02-29 19:58:50 +00:00
8b9fd56439 OpenFOAM: Added experimental version of 'tmp' which does not use reference counting 2016-02-29 18:36:37 +00:00
7ba41e0095 Removed duplicate, inconsistent and spurious comments in .C files 2016-02-29 18:33:54 +00:00
77c030f4a6 BUG: applyBoundaryLayer utility: enable proc patches are updated appropriately 2016-02-29 17:31:03 +00:00
9de0772454 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-02-29 17:23:40 +00:00
34bd3b59cb BUG: Fan boundary condition - write phiName and rhoName if required 2016-02-29 17:22:14 +00:00
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
1277b4b8c4 sampledSets: use smallDist consistently between getTrackingPoint and other tracking functions
Use different hit-tolerances between sampling methods to account for the
difference in the "offset" definition.
2016-02-29 12:09:46 +00:00
dac76d680c tmp: encapsulate refCount to enable the option for tmp to use a specific version 2016-02-28 22:50:24 +00:00
eb1498f4c7 ConeNozzleInjection: Corrected copy constructor
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2010
2016-02-28 18:22:38 +00:00
0db8ff34fd src/OpenFOAM/containers: Updated formatting and comments 2016-02-28 18:21:58 +00:00
0830ace954 tmp: Limit the number of references to a temporary object to 2
which reduces the number of potential problems with the reuse of
temporary objects.

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

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
f4ba71ddd0 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
e1405f2260 FieldField, DimensionedField, GeometricField: Simplified tmp reuse and cleanup 2016-02-25 18:29:00 +00:00
cabd03d05c ENH: Updated noise utility header documentation 2016-02-25 15:18:40 +00:00
939a42df6d BUG: Corrected error macro usage 2016-02-25 15:18:09 +00:00
85fa6c2649 Field: Simplified tmp reuse and cleanup 2016-02-25 15:07:14 +00:00
c520c3b62b ENH: Updated noise utility to use new noise models 2016-02-25 12:56:25 +00:00
7c66e69136 ENH: Refactored and improved noiseFFT library 2016-02-25 12:55:41 +00:00
02ae553099 ENH: Added new surfaceNoise model to process surface data 2016-02-25 12:54:43 +00:00
39aa4f3a4e ENH: Added new pointNoise model to process point data to replicate old behaviour 2016-02-25 12:54:17 +00:00
4bf509df42 ENH: Added new structure for run-time selectable noiseModels 2016-02-25 12:53:23 +00:00
225cd918bb ENH: Added surfaceReaders to sampling library Make/files 2016-02-25 12:46:30 +00:00
9eef6f5c22 ENH: Added new Hanning window model 2016-02-25 12:31:38 +00:00
92c831250a ENH: Added new structure for run-time selectable data windowing functions 2016-02-25 12:31:20 +00:00
ec182c5f50 ENH: Added surfaceReaders from old internal development line 2016-02-25 12:25:30 +00:00
dfa89cf8ee tmp: Improved diagnostics in case of inappropriate reuse 2016-02-25 11:48:15 +00:00
acac7d786b tutorials: Added missing 'value' entry for 'calculatedFvPatchField's 2016-02-24 16:21:50 +00:00
271935c1bf calculatedFvPatchField: 'value' entry is now required to avoid problems with non-initialization 2016-02-24 16:01:40 +00:00
65edfca2f9 wallDist: Updated for new 'tmp' 2016-02-24 15:57:17 +00:00
37c1c04487 reactingTwoPhaseEulerFoam/Make/options: Removed temporary debug option 2016-02-24 14:05:20 +00:00
c02bf70ea7 tmp: Improved reference count checks to provide better error diagnostics
in case of tmp misuse.

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

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

The turbulence libraries have been upgraded and '-DCONST_TMP' option
specified in the 'options' file to switch to the new 'tmp' behavior.
2016-02-24 12:47:36 +00:00
5a74397fe4 refineMesh: Added customizable direction fields to multiDirRefinement
Contribution provided by Bruno Santos
Resolves feature request http://www.openfoam.org/mantisbt/view.php?id=2004
2016-02-22 17:06:18 +00:00
15b7e87da7 tmp: Updated to store and preserve the const-ness of the reference to a constant object
This change requires that the de-reference operator '()' returns a
const-reference to the object stored irrespective of the const-ness of
object stored and the new member function 'ref()' is provided to return
an non-const reference to stored object which throws a fatal error if the
stored object is const.

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

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

Henry G. Weller
CFD Direct
2016-02-22 16:23:21 +00:00
b3bea42ada Migrated pointToPointPlanarInterpolation updates from old development line 2016-02-22 12:15:34 +00:00
de6313e4ce ENH: Migrated eigen vector/value updates from old development line and updated dependencies 2016-02-22 12:14:53 +00:00
1bb86b47a6 BUG: utility FOs - commented premature addition of new mapFields FO 2016-06-28 09:35:47 +01:00
c35bcc05f4 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-27 23:22:54 +01:00
7d389bcead STYLE: Consistency in Copyright statement 2016-06-27 22:38:50 +01:00
efb39a8790 ENH: (further) Doxygen documentation updates for module support 2016-06-27 20:34:19 +01:00
4a0c74d292 ENH: readFields function object - read fields on construction 2016-06-27 20:32:12 +01:00
d328fba605 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-06-27 11:36:25 -07:00
248af9e43a Fixing set up for verticalChannelLTS 2016-06-27 11:33:32 -07:00
d13b2aac5d STYLE: renamed autoRefineMesh->snappyRefineMesh 2016-06-27 19:32:13 +01:00
ae11551ed2 ENH: fvOptions - added new acousticDampingSource to damp spurious pressure perturbations 2016-06-27 19:31:45 +01:00
ec18c92f92 COMP: Updated version tag plus->stage 2016-02-22 10:25:44 +00:00
96b0f62d04 surfaceCoarsen: Changed List<::... to List< ::... for gcc-4.5 2016-02-21 09:03:39 +00:00
99a10ecea6 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

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

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

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
979e1ee191 tutorials/combustion/reactingFoam: ras -> laminar 2016-02-19 15:13:52 +00:00
46df3ab456 kineticTheoryModel: Corrected handling of the SuSp term in the Theta equation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2002
2016-02-19 13:26:41 +00:00
e12e1b172d tutorials/.*/bubbleColumn: Corrected name of temperature fields
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2003
2016-02-19 12:19:32 +00:00
907c362754 BUG: Adding correct turbulent in applyBoundaryLayer 2016-02-18 14:13:15 -08:00
8b71babfdd interFoam, interMixingFoam, interPhaseChangeFoam: construct rho with calculated BCs
Avoids problems with inherited complex BCs for which the controlling
fields and parameters are not initialized.
2016-02-18 21:26:25 +00:00
9162fedfc4 chemFoam: use default (empty) BCs for U rather than inheriting from p 2016-02-18 21:18:54 +00:00
f8aa84e5c1 tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff: Updated for change in U boundary condition update order 2016-02-18 21:15:57 +00:00
aa81dee52d sprayEngineFoam: Corrected included pEqn.H
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2000
2016-02-18 08:27:21 +00:00
6e829fb32e ENH: renaming epsilon field in applyBoundaryLayer 2016-02-17 15:16:57 -08:00
c6eb7091d6 PengRobinsonGas: Added thermodynamic departure functions 2016-02-17 15:17:52 +00:00
6a5d0b57ca Updated headers 2016-02-17 10:53:57 +00:00
e77938ac02 thermophysicalModels: Added support for thermodynamic departure functions 2016-02-17 10:48:30 +00:00
154fb5012f etc/config.sh/paraview: Reformatted
Patch provided by Bruno Santos
See http://www.openfoam.org/mantisbt/view.php?id=1232
2016-02-16 08:48:02 +00:00
caed25f447 Code templates: Updated headers 2016-02-15 20:53:21 +00:00
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
b98a5c1041 BUG: Renaming k field in applyBoundaryLayer.C (fixes #70) 2016-02-15 10:10:57 -08:00
0196822968 MPPICFoam PackingModels: Implicit: Added limiting to the calculation of the correction flux.
Vastly reduces the scattering and churning behaviour of packed beds.

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

See also http://www.openfoam.org/mantisbt/view.php?id=1994
2016-02-15 18:00:20 +00:00
d2d007f00e foamRunTutorials: Removed redundant code and simplified 2016-02-15 16:36:58 +00:00
4bb7f08e8c constrainPressure: Updated to use the more efficient patch-based MRF::relative function 2016-02-15 15:53:04 +00:00
618bf48a61 MRFZone: Added patch-based "relative" function 2016-02-15 15:52:33 +00:00
cfa7678ba8 foamRunTutorials: Rationalized support for the "-test" option
RunFunctions: Added "isTest()" argument parsing function
tutorials: Updated Allrun scripts to propagate the "-test" option
tutorials: Removed the lower Alltest scripts and updated the Allrun to
    use the "isTest()" function to handle test-specific operation
2016-02-15 15:49:05 +00:00
f8ab380174 ENH: Doxygen - updated path to source files on develop.openfoam.com 2016-02-15 10:29:22 +00:00
3faa7e2284 fixedMeanFvPatchField: Updated reading of "meanValue"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1995
2016-02-14 20:16:32 +00:00
caf3c353d3 tutorials: Simplified the Allrun and Allclean scripts 2016-02-14 18:32:34 +00:00
9cf419dc22 tutorials/multiphase/interFoam/ras/damBreakPorousBaffle: Use PIMPLE outer correctors to improve stability 2016-02-14 10:44:34 +00:00
fc2ce73723 Solvers: Added support for extrapolated pressure boundary conditions
The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
function which applies the velocity boundary values for patches for which the
velocity cannot be modified by assignment and pressure extrapolation is
not specified via the new
"fixedFluxExtrapolatedPressureFvPatchScalarField".

The new function "constrainPressure" sets the pressure gradient
appropriately for "fixedFluxPressureFvPatchScalarField" and
"fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
ensure the evaluated flux corresponds to the known velocity values at
the boundary.

The "fixedFluxPressureFvPatchScalarField" boundary condition operates
exactly as before, ensuring the correct flux at fixed-flux boundaries by
compensating for the body forces (gravity in particular) with the
pressure gradient.

The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
condition may be used for cases with or without body-forces to set the
pressure gradient to compensate not only for the body-force but also the
extrapolated "HbyA" which provides a second-order boundary condition for
pressure.  This is useful for a range a problems including impinging
flow, extrapolated inlet conditions with body-forces or for highly
viscous flows, pressure-induced separation etc.  To test this boundary
condition at walls in the motorBike tutorial case set

    lowerWall
    {
        type            fixedFluxExtrapolatedPressure;
    }

    motorBikeGroup
    {
        type            fixedFluxExtrapolatedPressure;
    }

Currently the new extrapolated pressure boundary condition is supported
for all incompressible and sub-sonic compressible solvers except those
providing implicit and tensorial porosity support.  The approach will be
extended to cover these solvers and options in the future.

Note: the extrapolated pressure boundary condition is experimental and
requires further testing to assess the range of applicability,
stability, accuracy etc.

Henry G. Weller
CFD Direct Ltd.
2016-02-13 17:48:26 +00:00
e405c69c39 tutorials/incompressible/icoFoam: Simplified the handling of the wall BCs in cavityClipped 2016-02-12 18:09:21 +00:00
0315d654d9 tutorials: Add pFinal to PISO settings in icoFoam and mhdFoam tutorials 2016-02-12 15:48:10 +00:00
263864984e OpenFOAM/matrices/solution: Simplify debug messages for consistency 2016-02-12 14:45:53 +00:00
0326cbbd57 etc/config.*/paraview: Set ParaView-5.0.0 as the default for OpenFOAM-dev
to encourage testing and feedback
2016-02-12 14:28:12 +00:00
be0008b39a fvPatchFields: Added "assignable()" attribute
which returns true if the fvPatchField type provides an assignment operator
2016-02-12 14:26:49 +00:00
eef9853a23 valuePointPatchField: Change assignment to use the object's internalField rather than that of the argument
Avoids dependency on the state of the argument pointPatchField the
internalField of which may have been de-allocated
2016-02-12 14:12:05 +00:00
12b30732e1 GeometricField: Added another constructor from tmp<GeometricField>
which supports re-using the internalField storage
2016-02-12 14:11:04 +00:00
6fde55cbd6 tmp: Added assignment to pointer operator to initialize null-tmp to an allocated object
This is a convenient method to set a null-constructed tmp in a
conditional statement.
2016-02-12 14:08:38 +00:00
566512bc28 driftFluxFoam: Set Udm BCs to type calculated 2016-02-11 08:48:15 +00:00
01d8544916 etc/config.sh/paraview: Reset the default ParaView version to 4.4.0 2016-02-10 22:44:19 +00:00
69b59b6586 Renamed PV4Readers -> PVReaders to avoid confusion when compiling the reader for ParaView-5 2016-02-10 21:12:49 +00:00
629508a85a etc/README.org: Added mpi 2016-02-10 20:49:04 +00:00
177d3ecfe7 Update docs 2016-02-10 20:47:51 +00:00
9a7c6287a8 etc/config.*: Separate MPI settings into separate files and upgrade OpenMPI to 10.0.2 2016-02-10 20:46:24 +00:00
45253d6204 Update header 2016-02-10 16:20:46 +00:00
f9d61d7e3c Updates for changes to etc/config structure 2016-02-10 16:20:19 +00:00
bbcfb50965 particle: Updated property list
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=1990
2016-02-10 15:43:31 +00:00
60281da466 Function1Types::Square: New square-wave Function1 with the same controls as Sine
with optional specification of the mark/space ratio

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

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

    where

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

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

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

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

Resolves feature request to simplify support for other shells in
http://www.openfoam.org/mantisbt/view.php?id=1232
2016-02-10 10:22:25 +00:00
3b3bb7173c variableHeightFlowRateInletVelocityFvPatchVectorField: Changed the flow-rate to a Function1
to support time-variation
2016-02-10 09:46:37 +00:00
e37da9fe41 turbulentInletFvPatchField: Minor update 2016-02-10 09:46:23 +00:00
9beda11f6f translatingWallVelocityFvPatchVectorField: Changed the translation velocity to a Function1
to support time-variation
2016-02-10 09:44:55 +00:00
5c6b378382 rotatingWallVelocityFvPatchVectorField: Minor update 2016-02-10 09:44:38 +00:00
502de5e8e8 flowRateInletVelocity: Minor update 2016-02-10 09:44:18 +00:00
d9c7c671d6 Function1: Simplified files 2016-02-10 09:43:45 +00:00
0431d4e67c surfaceNormalFixedValueFvPatchVectorField: Corrected mapping constructor 2016-02-09 20:09:45 +00:00
daf44fda3d tutorials and templates: Updated wall BC for velocity to noSlip 2016-02-09 20:08:34 +00:00
9233361899 noSlip: New wall boundary condition for velocity
noSlip is equivalent to fixedValue with a value of (0 0 0) but is
simpler to specify e.g.

     upperWall
     {
         type            noSlip;
     }
2016-02-09 18:45:13 +00:00
905eaa01e6 movingWallVelocityFvPatchVectorField: Updated to obtain the velocity field from the dimensionedInteralField
rather than by "lookup" from the database.
2016-02-09 18:43:48 +00:00
ca679a8634 fvPatchFields: Added Function1Types to SeeAlso as appropriate 2016-02-09 15:42:13 +00:00
668a2684f4 fftRenumber: Corrected namespace 2016-02-09 15:41:52 +00:00
399c724eff Function1/makeDataEntries: Introduced macro to simplify instantiation of Function1Types 2016-02-09 15:26:02 +00:00
011177665f porousBlockage: New pisoFoam tutorial to demonstrate the porosity source fvOption
To see the different behavior of flow through and around the blockage
change D in constant/fvOptions:

        // D 100;  // Very little blockage
        // D 200;  // Some blockage but steady flow
        // D 500;  // Slight waviness in the far wake
        D 1000; // Fully shedding behavior
2016-02-09 13:42:39 +00:00
b2e90de694 fixedMeanFvPatchField: Added support for time-varying mean-value 2016-02-09 12:24:18 +00:00
81b3c28f70 flowRateInletVelocityFvPatchVectorField: Minor updates 2016-02-09 12:24:04 +00:00
49f1c7e29a oscillatingFixedValue BC replaced by uniformFixedValue with the new Function1Types::Sine
For example the sinusoidal motion of the floating object in the
potentialFreeSurfaceFoam/oscillatingBox tutorial is now specified thus

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

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

        value           uniform (0 0 0);
    }

rather than using

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

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

        value           uniform (0 0 0);
    }
2016-02-09 08:57:42 +00:00
ef649ba984 Function1: Rationalized the stream output 2016-02-08 21:43:56 +00:00
15cd7c14fc Function1Types::Sine: Changed parameters to be of type Function1 for greater flexibility
Templated sine function with support for an offset level.

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

    where

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

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

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

    where

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

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

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

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

PV4 -> PV

or

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

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

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

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1987
2016-02-04 17:28:18 +00:00
427b3704b4 BUG: fixedFluxPressure: map if no internal field. Fixes #61 2016-02-04 14:57:44 +00:00
34d2890952 foamyHexMeshBackgroundMesh: Updated to compile 2016-02-03 21:24:38 +00:00
aca5a68dc4 fieldAverage: Updated documentation 2016-02-03 20:56:27 +00:00
9ab6aa9e97 fieldAverage: Name the field averaging properties file "<functionObject name>Properties"
rather than the fixed name "fieldAveragingProperties" to allow for the
same field to be averaged more than once.

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

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

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

Based on patch provided by Armin Wehrfritz

Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=978
2016-02-02 18:59:44 +00:00
463296eb40 Adding corrections folder to fvOptions library (Fixes #63) 2016-02-02 09:10:52 -08:00
65f94fbcdb patchMeanVelocityForce: Add support for processorCyclic patches
If the mean velocity force is applied to a cyclic patch for parallel
    runs include contributions from processorCyclic patches generated
    from the decomposition of the cyclic patch
2016-02-01 10:36:58 +00:00
43dbe9ec0a fieldAverage: Minor update to the documentation 2016-01-30 11:26:31 +00:00
451cc4e620 fieldAverage: Added periodicRestart option and rationalized naming of restart options
When restarting form a previous calculation, the averaging is continuous or
    may be restarted using the \c restartOnRestart option.

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

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

    \heading Function object usage
    \table
        Property        | Description           | Required    | Default value
        type            | type name: fieldAverage | yes |
        restartOnRestart  | Restart the averaging on restart | no | no
        restartOnOutput   | Restart the averaging on output | no | no
        periodicRestart | Periodically restart the averaging | no | no
        restartPeriod   | Periodic restart period | conditional |
        fields          | list of fields and averaging options | yes |
    \endtable
2016-01-30 11:23:38 +00:00
6644f8343b coordinateSystems/coordinateRotation: Corrected e1, e2 and e3 and updated documentation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1982
2016-01-29 09:56:59 +00:00
21bc7a0c39 ENH: utilities: small merge of dev functionality 2016-01-28 15:36:42 +00:00
fffb871d71 BUG: distributedTriSurfaceMesh: no need for messing with fileModificationChecking 2016-01-28 09:43:06 +00:00
a3815ee24a pisoControl: Corrected handling of final inner (PISO) iteration control 2016-01-28 09:02:25 +00:00
0af509c22d BUG: injectors: positions are a global quantity. 2016-01-28 09:00:04 +00:00
70525fe75e ENH: include file tracking: missed out adding files to list of files to check 2016-01-27 17:35:46 +00:00
b3d47f0423 bin/tools/RunFunctions: runParallel now obtains the number of processors from numberOfSubdomains
in decomposeParDict.

This default number of processors may be overridden by the new "-np"
option to runParallel which must be specified before the application
name e.g.:

runParallel -np 4 pisoFoam
2016-01-27 14:19:25 +00:00
d7ac243dfc Merge remote-tracking branch 'origin/develop' into feature-shared-file 2016-01-25 16:36:42 +00:00
9e3ce4ec7f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus into feature-shared-file
Conflicts:
	applications/utilities/mesh/advanced/refinementLevel/refinementLevel.C
	applications/utilities/mesh/generation/foamyMesh/conformalVoronoiMesh/initialPointsMethod/pointFile/pointFile.C
	applications/utilities/miscellaneous/foamHelp/helpTypes/helpBoundary/helpBoundary.C
	applications/utilities/postProcessing/graphics/PV3Readers/PV3FoamReader/vtkPV3Foam/vtkPV3FoamUpdateInfo.C
	applications/utilities/postProcessing/graphics/PV4Readers/PV4FoamReader/vtkPV4Foam/vtkPV4FoamUpdateInfo.C
	applications/utilities/postProcessing/turbulence/createTurbulenceFields/createTurbulenceFields.C
	applications/utilities/postProcessing/velocityField/Co/Co.C
	applications/utilities/postProcessing/velocityField/Pe/Pe.C
	applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C
	applications/utilities/preProcessing/changeDictionary/changeDictionary.C
	applications/utilities/preProcessing/setFields/setFields.C
	applications/utilities/surface/surfaceMeshConvert/surfaceMeshConvert.C
	applications/utilities/surface/surfaceMeshExport/surfaceMeshExport.C
	applications/utilities/surface/surfaceMeshImport/surfaceMeshImport.C
	applications/utilities/surface/surfaceRedistributePar/surfaceRedistributePar.C
	src/OpenFOAM/db/IOobject/IOobject.C
	src/OpenFOAM/db/IOobjects/CompactIOList/CompactIOList.C
	src/OpenFOAM/db/IOobjects/IOField/IOField.C
	src/OpenFOAM/db/IOobjects/IOList/IOList.C
	src/OpenFOAM/db/IOobjects/IOPtrList/IOPtrList.C
	src/OpenFOAM/db/IOobjects/IOdictionary/IOdictionary.C
	src/OpenFOAM/db/Time/findInstance.C
	src/OpenFOAM/db/regIOobject/regIOobject.C
	src/OpenFOAM/db/regIOobject/regIOobjectI.H
	src/OpenFOAM/db/regIOobject/regIOobjectRead.C
	src/OpenFOAM/db/regIOobject/regIOobjectWrite.C
	src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.C
	src/OpenFOAM/meshes/polyMesh/polyBoundaryMesh/polyBoundaryMesh.C
	src/OpenFOAM/meshes/polyMesh/zones/ZoneMesh/ZoneMesh.C
	src/dynamicMesh/fvMeshDistribute/IOmapDistributePolyMesh.C
	src/dynamicMesh/motionSolver/componentDisplacement/componentDisplacementMotionSolver.C
	src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/hexRef8Data.C
	src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8/refinementHistory.C
	src/dynamicMesh/polyTopoChange/polyTopoChanger/polyTopoChanger.C
	src/edgeMesh/edgeMeshFormats/edgeMesh/edgeMeshFormat.C
	src/edgeMesh/extendedEdgeMesh/extendedEdgeMeshFormats/extendedEdgeMeshFormat/extendedEdgeMeshFormat.C
	src/edgeMesh/extendedEdgeMesh/extendedFeatureEdgeMesh/extendedFeatureEdgeMesh.C
	src/fvMotionSolver/fvMotionSolvers/displacement/interpolation/displacementInterpolationMotionSolver.C
	src/fvMotionSolver/pointPatchFields/derived/uniformInterpolatedDisplacement/uniformInterpolatedDisplacementPointPatchVectorField.C
	src/lagrangian/basic/Cloud/CloudIO.C
	src/meshTools/sets/cellSources/fieldToCell/fieldToCell.C
	src/postProcessing/foamCalcFunctions/basic/addSubtract/addSubtract.C
	src/postProcessing/functionObjects/field/fieldCoordinateSystemTransform/fieldCoordinateSystemTransformTemplates.C
	src/postProcessing/functionObjects/field/readFields/readFieldsTemplates.C
	src/thermophysicalModels/radiation/radiationModels/fvDOM/radiativeIntensityRay/radiativeIntensityRay.C
	src/triSurface/triSurface/surfacePatch/surfacePatchIOList.C
2016-01-25 16:29:04 +00:00
e424059208 ENH: glboal file handling: initial commit
Moved file path handling to regIOobject and made it type specific so
now every object can have its own rules. Examples:
- faceZones are now processor local (and don't search up anymore)
- timeStampMaster is now no longer hardcoded inside IOdictionary
  (e.g. uniformDimensionedFields support it as well)
- the distributedTriSurfaceMesh is properly processor-local; no need
  for fileModificationChecking manipulation.
2016-01-25 13:03:15 +00:00
e00acab949 BUG: autoHexMesh: merging faceZones with layers added
- was merging all boundary points originating from the same point
- which caused merging of multiple extruded points (since all originating
  from the same point)
- there is no more addressing available from addPatchCell layer so
  instead do a geometric merge
- additional bug: calculating weights if faceZone on processor patch
2016-01-25 10:06:16 +00:00
cd265693f5 wmake: Update comments 2016-01-24 14:37:39 +00:00
c3a03105c4 wmake: Add support for compiler type default rules
which may be optionally overridden by version-specific rules.

For example the default rules for gcc on GNU/Linux x86_64 are in the
wmake/rules/linux64Gcc directory.  If there is a need to change any of
the rules for a specific version of gcc, e.g. gcc-4.8.4 the directory
wmake/rules/linux64Gcc48 may be created into which any of the language
files may be provided containing the rules to override the defaults.
2016-01-24 14:10:07 +00:00
55f8712e4e etc/config/settings.*: Add -std=c++0x to formally enable support for of C++11 features
when building ThirdParty packages.
c++0x is used rather than c++11 to support gcc-4.5.?
2016-01-23 15:18:38 +00:00
cbf62fcba2 sampledSet: Relax hit tolerance to handle warped faces 2016-01-23 15:16:51 +00:00
e852970330 ENH: motorBike: tutorial with dynamic refinement across snappyHexMesh mesh 2016-01-21 17:46:40 +00:00
466ae811bd interRegionExplicitPorositySource: Corrected initialization of firstIter_ 2016-01-20 20:51:09 +00:00
aa38e25c92 Info -> InfoInFunction and updated comments 2016-01-20 17:51:15 +00:00
5779e4fd16 Info -> InfoInFunction and updated comments 2016-01-20 16:21:37 +00:00
34d4cfaca3 Make disallowed member functions private
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1977
2016-01-20 10:41:14 +00:00
19f62b4f0d interRegionExplicitPorositySource: Corrected initialization of firstIter_
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1978
2016-01-20 10:20:54 +00:00
68e86f97fe Info -> InfoInFunction and updated comments 2016-01-20 10:18:13 +00:00
1bd1a49306 Updated header 2016-01-19 21:58:32 +00:00
5728c1f173 Info -> InfoInFunction 2016-01-19 21:58:11 +00:00
3205337e81 scalarTransportFoam: Added support for steady-state solution and all fvOptions
Optional under-relaxation is provided for steady-state solution.
Added missing fvOptions.constrain and fvOptions.correct calls.
2016-01-19 21:20:03 +00:00
9de3a4280e foamToVTK: Default to ASCII format when WM_LABEL_SIZE=64
Based on patch provided by Alexey Matveichev
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1975
2016-01-19 16:28:23 +00:00
bbb5a8086a reactingEulerFoam/interfacialModels/wallLubricationModels: Apply zero-gradient condition at walls 2016-01-19 15:26:42 +00:00
1896599d8b Add support for flex-2.6
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1974
2016-01-18 19:44:38 +00:00
e3a80e909d sampledSetsFunctionObject/sampledSetsDict: Added an example of sampling on a line 2016-01-18 18:22:42 +00:00
5de9c43fb8 etc/config/paraview.*: Update include/lib directory name seaching to paraview-3.0 for ParaView-4.? 2016-01-18 18:15:29 +00:00
14aee79198 STYLE: Corrected typos in file header - fixes #57 2016-01-18 09:02:14 +00:00
59b578f155 Provide consistency in assignment operators
Always return void to avoid various bugs associated with automatic
type conversion.

Resolves request http://openfoam.org/mantisbt/view.php?id=1973
2016-01-17 18:56:28 +00:00
8effc018c1 reactingEulerFoam,twoPhaseEulerFoam: Corrected pressure equations for transonic operation
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1971
2016-01-17 11:02:21 +00:00
fa191d3456 functionObjects/utilities/scalarTransport: Set UName_ during construction for boundaryTypes()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1972
2016-01-15 14:47:56 +00:00
3ce8fabeda CONTRIBUTION: Parallel: optimisation of comm structures
- Enhancements provided by Y. Inoue at RIST (http://www.hpci-office.jp)
- Uses on-the-fly calculation of communication structure
2016-01-14 17:36:45 +00:00
36fc8595db reactionThermo/functionObjects/moleFractions/moleFractions: New functionObject to calculate and write mole-fraction fields
This function object calculates mole-fraction fields from the mass-fraction
    fields of the psi/rhoReactionThermo and caches them for output and further
    post-processing.

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

    Example of function object specification:

        moleFractions
        {
            type psiReactionThermoMoleFractions;
        }

     or

        moleFractions
        {
            type rhoReactionThermoMoleFractions;
        }

    depending on the thermodynamics package used in the solver.
2016-01-14 16:34:37 +00:00
a6ae4f19aa mixedUnburntEnthalpyFvPatchScalarField: Corrected formatting 2016-01-14 16:34:15 +00:00
56bb5fffbb Merge remote-tracking branch 'origin/develop' into feature-alltoall 2016-01-14 09:52:58 +00:00
97a1043112 CONTRIBUTION: Parallel: optimisation of all-to-all communication
- Enhancements provided by Y. Inoue at RIST (http://www.hpci-office.jp)
- Exchanging local sizes-to-receive only
- Reversing order of receive
2016-01-14 09:39:29 +00:00
392310db22 Update headers 2016-01-11 13:02:52 +00:00
f19f48132e Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
4eba393fe1 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
acb9ec8b46 wmake/rules: Add -std=c++0x to formally enable support for of C++11 features
The c++0x is used rather than c++11 to support gcc-4.5.?
2016-01-10 19:17:31 +00:00
33c99cc918 etc/config/paraview.*: Update include directory name which is 3.0 rather than 4.0 even for ParaView-4 2016-01-10 19:16:27 +00:00
d41014938c Update headers 2016-01-10 12:50:58 +00:00
b31ea4fa22 etc/config/settings.*: Update gcc versions 2016-01-10 12:50:41 +00:00
fbae6721c6 Update headers 2016-01-10 12:50:32 +00:00
9439d83f39 Make private member functions private
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1969
2016-01-10 12:49:35 +00:00
75cf86b769 Correct formatting: "forAll (" -> "forAll("
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1967
2016-01-09 23:10:16 +00:00
1eca13aeb9 CleanFunctions: Check the constant directory exists before cleaning it 2016-01-09 23:09:08 +00:00
533bae38b2 foamCreateVideo: add option to specify first image number 2016-01-08 17:49:39 +00:00
e75ac08da1 Updated header 2016-01-07 11:45:13 +00:00
946f62d65d laplacianScheme: make private member functions private
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1965
2016-01-07 11:44:14 +00:00
bb7aef5f28 Updated header 2016-01-05 07:31:48 +00:00
01d5da5ae3 README.org: Added link to http://www.openfoam.org/dev.php
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1962
2016-01-05 07:30:52 +00:00
27dda5a092 ENH: exchange: use all-to-all comms
Determine sparse receive sizes instead of full matrix
2016-01-04 10:30:06 +00:00
a9888b215d patchInteractionDataList: treat cyclicAMIPolyPatch as a coupled patch
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1949
2016-01-03 15:39:44 +00:00
97301ef754 LISAAtomization: Corrected Ks expression
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1957
2016-01-03 12:04:51 +00:00
41f9e71c71 dynamicMesh/meshCut: Improved diagnostics and documentation
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1960
2016-01-03 11:43:10 +00:00
65c98f27d6 externalCoupledMixedFvPatchField.H: Updated documentation
Patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1961
2016-01-02 21:40:49 +00:00
779aa398ae src/regionModels/regionCoupling/Make/options: Removed redundant -I option
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1958
2016-01-01 21:29:21 +00:00
4ccdd833d3 IOdsmcFields.C: Not used, removed.
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1959
2016-01-01 21:21:15 +00:00
f5fd3227b9 temperatureDependentAlphaContactAngleFvPatchScalarField: Temperature-dependent constant alphaContactAngle scalar boundary condition
Evaluates the contact angle as a function of the optionally specified
temperature field (defaults to T).  The "theta0" function is provided as
a DataEntry currently supporting:
    CompatibilityConstant
    constant
    csvFile
    polynomial
    table
    tableFile
2015-12-20 19:12:11 +00:00
94ed45c162 alphaContactAngleFvPatchScalarField, constantAlphaContactAngleFvPatchScalarField: minor update 2015-12-20 18:16:15 +00:00
f0e0fe6935 supersonicFreestreamFvPatchVectorField: Corrected documentation 2015-12-20 18:12:58 +00:00
639563b550 fanFvPatchField: Minor reorganization 2015-12-20 18:12:35 +00:00
93ed8c0a0b prghPressureFvPatchScalarField: Updated rho name specification
for consistency with prghPressureFvPatchScalarField
2015-12-17 12:23:29 +00:00
5c6d420ca0 prghPressureFvPatchScalarField: Updated documentation
Corrected rho name specification.
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1956
2015-12-17 12:20:10 +00:00
77090f2ad9 turbulenceModels/RAS/v2f: removed the fvOptions source from the f-equation
It is not clear what form an fvOptions source should take as f is not a
transported dynamic field. For the moment the fvOptions source from the
f-equation has been removed until there is a specific need which will
show what the form should be.

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

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

The "Usage" entry in the headers is now consistently formatted in all
scripts.
2015-12-16 18:31:02 +00:00
2647d178fa solvers: Change from pure RAS to any turbulence model
Provides support for running laminar.
2015-12-16 10:13:09 +00:00
4976c6e522 SRFSimpleFoam: Change from pure RAS to any turbulence model
Provides support for running laminar.
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1951
2015-12-15 19:05:08 +00:00
d112699c9f Updated header 2015-12-15 15:40:06 +00:00
416b0a6f2a wmakeLnIncludeAll: Start messages with capital 2015-12-15 15:39:26 +00:00
3713b9e19b Updated header 2015-12-15 15:39:19 +00:00
4b7c3ea5a5 wmakeLnInclude: Use xargs with find 2015-12-15 15:38:59 +00:00
ea4936fd4e wcleanPlatform: Updated version of wcleanMachine and wcleanAll
wcleanPlatform is a more general and cleaner version of wcleanMachine
supporting the "-all" option to provide the equivalent of wcleanAll.

Both wcleanMachine and wcleanAll are now deprecated and will be removed
for the next major release.
2015-12-15 12:12:06 +00:00
92ab896216 wmake/makeWmake: Removed
Legacy script which is no longer used
2015-12-14 18:23:50 +00:00
13094c2ab3 wcleanAll, wrmdep: Updated check for the WM_PROJECT_DIR 2015-12-14 17:49:02 +00:00
3de4dcd838 AllwmakeParseArguments: Added "-update" option
Updates lnInclude directories and dep files before compilation.  This is
useful to apply following a "git pull" to ensure consistency between the
source files, dep files and links.
2015-12-14 11:03:16 +00:00
f23ab37eca tutorials/incompressible/pimpleDyMFoam/wingMotion/Allrun: Updated to handle missing polyMesh dir 2015-12-14 10:22:06 +00:00
201366f7f2 PairCollision: Reduce division stabilization to SMALL 2015-12-14 10:21:22 +00:00
fe1dc82e5a wrmdep: Update documentation 2015-12-13 21:23:04 +00:00
f56a738f14 wrmdep: Added "update" option
Searches all the "src" and "application" directories of the project for
broken symbolic links for source code files and then remove all .dep
files that relate to the files that no longer exist.  Must be executed
in main project source code folder: $WM_PROJECT_DIR

Patch provided by Bruno Santos

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

Patch provided by Bruno Santos
2015-12-13 20:55:24 +00:00
a55d5a9b55 OSspecific/POSIX: Dynamically resize the path buffer in cwd
Starting from an initial buffer size of 256 it is incremented in steps
of 256 upto the maximum of 4096 as required.
Based on patch provided by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1944
2015-12-13 18:33:01 +00:00
107b9370f0 PairCollision: stabilize normalization of the force direction for low force
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1948
2015-12-12 09:00:42 +00:00
aacaa9c0d7 foamSequenceVTKFiles: Avoid the -s and -a options for basename
Only recent GNU/Linux distributions support this functionality
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1947
2015-12-11 14:21:02 +00:00
40ff6c30e3 Updated header 2015-12-11 13:12:19 +00:00
8899f9ec28 foamSequenceVTKFiles, mpirunDebug: Correct call to "usage"
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1946
2015-12-11 13:11:54 +00:00
fc4e7db579 compressibleInterFoam: updated tutorials with 0.org directory 2015-12-11 12:55:46 +00:00
9639259350 LimitFuncs: Update function specializations to satisfy gcc, clang and icpc 2015-12-09 22:37:43 +00:00
d1941723db src/finiteVolume/interpolation: Modified code to conform to OpenFOAM coding standards
declaring the namespace in function definitions in C files
2015-12-09 22:23:38 +00:00
fc98b1f6dc reactingEulerFoam/interfacialModels/dragModels/TomiyamaKataokaZunSakaguchi: New drag model
Drag model for gas-liquid system of Tomiyama et al.

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

Provided by Alberto Passalacq
2015-12-09 16:51:46 +00:00
4930a5169a reactingMultiphaseEulerFoam: Correct and test LTS support 2015-12-09 15:39:45 +00:00
1d893a0bd6 reactingEulerFoam: Move LTS controls maxCo, maxDeltaT and rDeltaTSmoothingCoeff into the PIMPLE sub-dictionary
For consistency with all other solvers supporting the LTS option
2015-12-09 15:38:09 +00:00
67a9b8df73 metisDecomp: Changed to use scalar rather than float
Requires that metis is compiled with REALTYPEWIDTH set to 32 for SP and 64 for DP.
2015-12-09 09:16:08 +00:00
fb871828a5 fvPatchFields, fvsPatchFields, pointPatchFields: specifically declare namespace of functions
It is better to declare the namespace of each function in the C file
rather than "open" the namespace as this may lead to inconsistencies
between the declaration in the H files and definition in the C file.
2015-12-08 22:29:05 +00:00
4aa6052a66 uniformInletOutletFvPatchField: Update refValue in updateCoeffs
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1943
2015-12-08 14:24:12 +00:00
f89d44292e fanFvPatchField, freestreamPressureFvPatchScalarField: added write function
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1942
2015-12-08 11:57:37 +00:00
80a0fbcb79 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2015-12-07 22:39:06 +00:00
ce7b33b77e fvcAverage: Removed temporary Info statement 2015-12-07 22:38:33 +00:00
cc996852a7 foamNewApp: corrected template case 2015-12-07 17:28:40 +00:00
b52f7571b9 foamNewApp: added execution and clock times to template 2015-12-07 14:15:14 +00:00
17cc8483ef saturationModels/Antoine: Corrected dimensions in Tsat
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1940
2015-12-05 16:12:57 +00:00
a3e555e72c foamNewBC: script to create template code for a new boundary condition
Run foamNewBC -h for details
2015-12-04 14:33:56 +00:00
e356211140 foamNewApp: script to create template for a new application
Creates a directory containing source .C file and Make directory
Will deprecate foamNewSource with App argument in due course
2015-12-04 14:20:23 +00:00
4025d6ebdd reactingTwoPhaseEulerFoam/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels: Added support for fvOptions 2015-12-03 16:39:13 +00:00
297dc6ce8e TurbulenceModels/phaseCompressible/LES/SmagorinskyZhang: Added support for fvOptions 2015-12-03 16:39:00 +00:00
12c4ba267e TurbulenceModels/phaseCompressible/LES/continuousGasKEqn: Added support for fvOptions 2015-12-03 16:38:43 +00:00
d577e47b40 TurbulenceModels/phaseCompressible/LES/Niceno: Added support for fvOptions 2015-12-03 16:18:04 +00:00
cdb7b896bf TurbulenceModels/phaseCompressible/RAS/continuousGasKEpsilon: Added support for fvOptions 2015-12-03 16:17:40 +00:00
352f4ab80b TurbulenceModels/phaseCompressible/RAS/kOmegaSSTSato: Added support for fvOptions 2015-12-03 16:17:23 +00:00
934aa987d9 TurbulenceModels/phaseCompressible/RAS/mixtureKEpsilon: Added support for fvOptions 2015-12-03 15:43:27 +00:00
fde2866a8b TurbulenceModels/phaseCompressible/RAS/LaheyKEpsilon: Added support for fvOptions 2015-12-03 15:37:05 +00:00
da2c319a8d turbulenceModels/LES/DeardorffDiffStress: Added support for fvOptions 2015-12-03 14:53:27 +00:00
154893db0f turbulenceModels/LES/SpalartAllmarasDES: Added support for fvOptions 2015-12-03 14:53:12 +00:00
1ae82d6e0c turbulenceModels/LES/dynamicLagrangian: Added support for fvOptions 2015-12-03 14:52:48 +00:00
2485269283 turbulenceModels/LES/dynamicKEqn: Added support for fvOptions 2015-12-03 13:48:42 +00:00
cb31786753 turbulenceModels/LES/WALE: Added support for fvOptions 2015-12-03 13:48:20 +00:00
2ddf4b7793 turbulenceModels/LES/Smagorinsky: Added support for fvOptions 2015-12-03 13:40:32 +00:00
e8f532f857 turbulenceModels/LES/kEqn: Added support for fvOptions 2015-12-03 13:39:55 +00:00
05fa38f5e3 SSG: Added support for fvOptions 2015-12-03 13:12:27 +00:00
a6f4bf60b8 LRR: Added support for fvOptions 2015-12-03 13:12:10 +00:00
5f7ad8b82b v2f: Added support for fvOptions 2015-12-03 13:11:49 +00:00
a749019302 LaunderSharmaKE: Added support for fvOptions 2015-12-03 13:11:27 +00:00
95687c59ec wallShearStress: Now may be used with any turbulence model (laminar, RAS or LES/DES)
Resolves feature-request http://www.openfoam.org/mantisbt/view.php?id=1939
2015-12-03 09:15:09 +00:00
8d9f56d1b7 SpalartAllmaras: Added support for fvOptions 2015-12-03 08:43:31 +00:00
e94f1385e5 realizableKE: Added support for fvOptions 2015-12-03 08:42:08 +00:00
5e5e22f5f0 RNGkEpsilon: Added support for fvOptions 2015-12-03 08:41:39 +00:00
820529b0e6 foamInstallationTest: Updated help message 2015-12-03 08:40:56 +00:00
c005f6d68c kOmegaSST: Added support for fvOptions 2015-12-02 20:33:43 +00:00
1a71623b46 kOmega: Added support for fvOptions 2015-12-02 20:33:28 +00:00
642690db30 kEpsilon: Minor update of the lookup of fvOptions 2015-12-02 20:33:00 +00:00
633e2b1255 Minor updates to aid porting to FreeBSD
Based on patches provided by Jason Bacon
2015-12-02 18:18:06 +00:00
a52cae9102 reactingEulerFoam: Lookup fvOptions from the mesh rather than construct a local copy 2015-12-02 15:39:45 +00:00
5178 changed files with 112813 additions and 47046 deletions

6
.gitignore vendored
View File

@ -58,8 +58,8 @@ doc/Doxygen/DTAGS
# Untracked configuration files
/etc/prefs.csh
/etc/prefs.sh
/etc/config/prefs.csh
/etc/config/prefs.sh
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
# Source packages - anywhere
*.tar.bz2
@ -83,5 +83,3 @@ doc/Doxygen/DTAGS
# Ignore the test directory
/tutorialsTest
# end-of-file

View File

@ -43,4 +43,4 @@ then
fi
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -20,8 +20,8 @@ wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
set -x
wmake -all utilities $*
wmake -all solvers $*
wmake -all utilities $*
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

@ -0,0 +1,14 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
if [ -f "$FFTW_ARCH_PATH/include/fftw3.h" ] || \
[ "${FFTW_ARCH_PATH##*-}" = system -a -f "/usr/include/fftw3.h" ]
then
wmake
else
echo
echo "Skipping dnsFoam solver (no FFTW)"
echo
fi
#------------------------------------------------------------------------------

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
@ -91,16 +91,17 @@ int main(int argc, char *argv[])
{
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rAUf*fvc::ddtCorr(U, phi)
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAUf);
fvScalarMatrix pEqn
(
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)

View File

@ -13,7 +13,7 @@ volVectorField U
);
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), vector::zero);
U = dimensionedVector("0", U.dimensions(), Zero);
surfaceScalarField phi
(
@ -25,13 +25,13 @@ surfaceScalarField phi
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fvc::interpolate(U) & mesh.Sf()
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::interpolate(U) & mesh.Sf();
phi = fvc::flux(U);
}
@ -93,21 +93,48 @@ if (args.optionFound("writep"))
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
autoPtr<volScalarField> PhiPtr;
IOobject io
(
IOobject
(
"Phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
"Phi",
runTime.timeName(),
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
p.boundaryField().types()
IOobject::MUST_READ,
IOobject::NO_WRITE
);
if (io.typeHeaderOk<volScalarField>())
{
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)
{
bPhi.set(patchI, bp[patchI].clone(PhiPtr().dimensionedInternalField()));
}
}
volScalarField& Phi = PhiPtr();
label PhiRefCell = 0;
scalar PhiRefValue = 0;
setRefCell

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
@ -172,8 +172,7 @@ int main(int argc, char *argv[])
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr((fvc::interpolate(U) & mesh.Sf()) - phi)))
/sum(mesh.magSf())).value()
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
// Write U and phi

View File

@ -91,10 +91,10 @@ int main(int argc, char *argv[])
fvOptions(T)
);
TEqn.relax();
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
runTime.write();

View File

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

View File

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

View File

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

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -55,7 +55,7 @@ PDRkEpsilon::PDRkEpsilon
const word& modelName
)
:
Foam::RASModels::kEpsilon<EddyDiffusivity<compressible::turbulenceModel> >
Foam::RASModels::kEpsilon<EddyDiffusivity<compressible::turbulenceModel>>
(
geometricOneField(),
rho,
@ -161,9 +161,9 @@ void PDRkEpsilon::correct()
- fvm::Sp(C2_*betav*rho_*epsilon_/k_, epsilon_)
);
epsEqn().relax();
epsEqn.ref().relax();
epsEqn().boundaryManipulate(epsilon_.boundaryField());
epsEqn.ref().boundaryManipulate(epsilon_.boundaryField());
solve(epsEqn);
bound(epsilon_, epsilonMin_);
@ -182,7 +182,7 @@ void PDRkEpsilon::correct()
- fvm::Sp(betav*rho_*epsilon_/k_, k_)
);
kEqn().relax();
kEqn.ref().relax();
solve(kEqn);
bound(k_, kMin_);

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -108,7 +108,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
dimensionedScalar("XiEq", dimless, 0.0)
)
);
volScalarField& xieq = tXiEq();
volScalarField& xieq = tXiEq.ref();
forAll(xieq, celli)
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/
#include "XiEqModel.H"
#include "zeroGradientFvPatchFields.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -111,39 +110,30 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
false
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0),
zeroGradientFvPatchVectorField::typeName
dimensionedScalar("zero", Nv.dimensions(), 0.0)
)
);
volScalarField& N = tN();
volScalarField& N = tN.ref();
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
tmp<volSymmTensorField> tns
volSymmTensorField ns
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
pTraits<symmTensor>::zero
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
);
volSymmTensorField& ns = tns();
ns.internalField() = nsv.internalField()*pow(mesh.V(), 2.0/3.0);
const volVectorField Uhat

View File

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

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
@ -259,7 +259,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
)
);
volScalarField& Su0 = tSu0();
volScalarField& Su0 = tSu0.ref();
forAll(Su0, celli)
{
@ -306,7 +306,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
)
);
volScalarField& Su0 = tSu0();
volScalarField& Su0 = tSu0.ref();
forAll(Su0, celli)
{
@ -358,7 +358,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
)
);
volScalarField& ma = tMa();
volScalarField& ma = tMa.ref();
forAll(ma, celli)
{

View File

@ -1,9 +1,7 @@
rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = invA & UEqn.H();
volVectorField HbyA(constrainHbyA(invA & UEqn.H(), U, p));
if (pimple.transonic())
{
@ -12,7 +10,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
/fvc::interpolate(rho)
)
@ -43,7 +41,7 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
)
);

View File

@ -2,9 +2,7 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.transonic())
{
@ -54,6 +52,9 @@ else
fvc::makeRelative(phiHbyA, rho, U);
MRF.makeRelative(phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

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

View File

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

View File

@ -80,8 +80,7 @@
IOobject::NO_WRITE
),
mesh,
dimensionedVector("zero", dimVelocity, vector::zero),
p.boundaryField().types()
dimensionedVector("zero", dimVelocity, Zero)
);
#include "createPhi.H"

View File

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

View File

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

View File

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

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
@ -44,7 +44,6 @@ Description
#include "psiCombustionModel.H"
#include "pimpleControl.H"
#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,9 +2,7 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
@ -12,7 +10,7 @@ surfaceScalarField phiHbyA
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
@ -20,16 +18,8 @@ surfaceScalarField phiHbyA
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (pimple.momentumPredictor())
{
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
K = 0.5*magSqr(U);

View File

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

View File

@ -3,15 +3,13 @@ rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
volScalarField rAU(1.0/UEqn().A());
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
if (pimple.transonic())
@ -21,7 +19,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
@ -53,13 +51,16 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -3,14 +3,13 @@ rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
volScalarField rAU(1.0/UEqn().A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volScalarField rAU(1.0/UEqn.A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
if (pimple.transonic())
@ -20,7 +19,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
/fvc::interpolate(rho)
)
@ -64,7 +63,7 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
)
);
@ -76,6 +75,9 @@ else
volScalarField rhorAtU("rhorAtU", rho*rAtU);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -7,9 +7,7 @@
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
@ -17,7 +15,7 @@
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
@ -25,16 +23,8 @@
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
fvScalarMatrix p_rghDDtEqn
(

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,6 @@ Description
#include "multivariateScheme.H"
#include "pimpleControl.H"
#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
#include "localEulerDdtScheme.H"
#include "fvcSmooth.H"

View File

@ -5,11 +5,9 @@
// pressure solution - done in 2 parts. Part 1:
thermo.rho() -= psi*p;
volScalarField rAU(1.0/UEqn().A());
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.transonic())
{
@ -17,7 +15,7 @@
(
"phiHbyA",
(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
@ -58,13 +56,16 @@
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
fvScalarMatrix pDDtEqn
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p))

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2013-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2013-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -24,7 +24,7 @@ License
\*---------------------------------------------------------------------------*/
{
volScalarField& rDeltaT = trDeltaT();
volScalarField& rDeltaT = trDeltaT.ref();
const dictionary& pimpleDict = pimple.dict();

View File

@ -6,4 +6,4 @@ wclean libso BCs
wclean
wclean rhoCentralDyMFoam
# ----------------------------------------------------------------- end-of-file
#------------------------------------------------------------------------------

View File

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

View File

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

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
@ -101,9 +101,9 @@ public:
);
//- Construct and return a clone
virtual tmp<fvPatchField<Type> > clone() const
virtual tmp<fvPatchField<Type>> clone() const
{
return tmp<fvPatchField<Type> >
return tmp<fvPatchField<Type>>
(
new mixedFixedValueSlipFvPatchField<Type>(*this)
);
@ -117,12 +117,12 @@ public:
);
//- Construct and return a clone setting internal field reference
virtual tmp<fvPatchField<Type> > clone
virtual tmp<fvPatchField<Type>> clone
(
const DimensionedField<Type, volMesh>& iF
) const
{
return tmp<fvPatchField<Type> >
return tmp<fvPatchField<Type>>
(
new mixedFixedValueSlipFvPatchField<Type>(*this, iF)
);
@ -130,6 +130,15 @@ public:
// Member functions
// Access
//- Return false: this patch field is not altered by assignment
virtual bool assignable() const
{
return false;
}
// Mapping functions
//- Map (and resize as needed) from self given a mapping object
@ -170,7 +179,7 @@ public:
// Evaluation functions
//- Return gradient at boundary
virtual tmp<Field<Type> > snGrad() const;
virtual tmp<Field<Type>> snGrad() const;
//- Evaluate the patch field
virtual void evaluate
@ -179,7 +188,7 @@ public:
);
//- Return face-gradient transform diagonal
virtual tmp<Field<Type> > snGradTransformDiag() const;
virtual tmp<Field<Type>> snGradTransformDiag() const;
//- Write

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,7 @@ Description
This boundary condition provides a fixed density inlet condition for
compressible solvers, where the density of calculated using:
\f{
\f[
\rho = \psi p
\f]

View File

@ -95,7 +95,7 @@ surfaceScalarField neg
dimensionedScalar("neg", dimless, -1.0)
);
surfaceScalarField phi("phi", mesh.Sf() & fvc::interpolate(rhoU));
surfaceScalarField phi("phi", fvc::flux(rhoU));
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::turbulenceModel> turbulence

View File

@ -3,14 +3,14 @@ namespace Foam
//- Interpolate field vf according to direction dir
template<class Type>
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> interpolate
(
const GeometricField<Type, fvPatchField, volMesh>& vf,
const surfaceScalarField& dir,
const word& reconFieldName = word::null
)
{
tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > tsf
tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tsf
(
fvc::interpolate
(
@ -22,7 +22,7 @@ tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > interpolate
)
);
GeometricField<Type, fvsPatchField, surfaceMesh>& sf = tsf();
GeometricField<Type, fvsPatchField, surfaceMesh>& sf = tsf.ref();
sf.rename(vf.name() + '_' + dir.name());

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
@ -37,7 +37,6 @@ Description
#include "dynamicFvMesh.H"
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "zeroGradientFvPatchFields.H"
#include "fixedRhoFvPatchScalarField.H"
#include "directionInterpolate.H"
#include "motionSolver.H"
@ -212,7 +211,7 @@ int main(int argc, char *argv[])
"sigmaDotU",
(
fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
+ (mesh.Sf() & fvc::interpolate(tauMC))
+ fvc::dotInterpolate(mesh.Sf(), tauMC)
)
& (a_pos*U_pos + a_neg*U_neg)
);

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
@ -36,7 +36,6 @@ Description
#include "fvCFD.H"
#include "psiThermo.H"
#include "turbulentFluidThermoModel.H"
#include "zeroGradientFvPatchFields.H"
#include "fixedRhoFvPatchScalarField.H"
#include "directionInterpolate.H"
#include "localEulerDdtScheme.H"
@ -205,9 +204,9 @@ int main(int argc, char *argv[])
"sigmaDotU",
(
fvc::interpolate(muEff)*mesh.magSf()*fvc::snGrad(U)
+ (mesh.Sf() & fvc::interpolate(tauMC))
+ fvc::dotInterpolate(mesh.Sf(), tauMC)
)
& (a_pos*U_pos + a_neg*U_neg)
& (a_pos*U_pos + a_neg*U_neg)
);
solve

View File

@ -1,5 +1,5 @@
{
volScalarField& rDeltaT = trDeltaT();
volScalarField& rDeltaT = trDeltaT.ref();
scalar rDeltaTSmoothingCoeff
(

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (pimple.momentumPredictor())
{
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
K = 0.5*magSqr(U);

View File

@ -3,15 +3,13 @@ rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
volScalarField rAU(1.0/UEqn().A());
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
if (pimple.transonic())
@ -21,7 +19,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);
@ -53,13 +51,16 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -3,14 +3,13 @@ rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
volScalarField rAU(1.0/UEqn().A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volScalarField rAU(1.0/UEqn.A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
if (pimple.transonic())
@ -20,7 +19,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
/fvc::interpolate(rho)
)
@ -64,7 +63,7 @@ else
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ fvc::interpolate(rho*rAU)*fvc::ddtCorr(rho, U, phi)
)
);
@ -76,6 +75,9 @@ else
volScalarField rhorAtU("rhorAtU", rho*rAtU);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -3,15 +3,13 @@ rho = max(rho, rhoMin);
rho = min(rho, rhoMax);
rho.relax();
volScalarField rAU(1.0/UEqn().A());
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
if (pimple.transonic())
@ -21,7 +19,7 @@ if (pimple.transonic())
"phid",
fvc::interpolate(psi)
*(
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho)
)
);
@ -53,13 +51,16 @@ else
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ 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())
{
// Pressure corrector

View File

@ -1,5 +1,5 @@
{
volScalarField& rDeltaT = trDeltaT();
volScalarField& rDeltaT = trDeltaT.ref();
const dictionary& pimpleDict = pimple.dict();
@ -38,7 +38,7 @@
surfaceScalarField phid
(
"phid",
fvc::interpolate(psi)*(fvc::interpolate(U) & mesh.Sf())
fvc::interpolate(psi)*fvc::flux(U)
);
rDeltaT.dimensionedInternalField() = max

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,11 +10,12 @@
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);

View File

@ -69,9 +69,9 @@ dimensionedScalar rhoMin
);
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::New<compressible::RASModel>
compressible::turbulenceModel::New
(
rho,
U,

View File

@ -1,9 +1,8 @@
{
volScalarField rAU(1.0/UEqn().A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
tUEqn.clear();
bool closedVolume = false;
@ -13,7 +12,7 @@
(
"phid",
fvc::interpolate(psi)
*(fvc::interpolate(HbyA) & mesh.Sf())
*fvc::flux(HbyA)
);
MRF.makeRelative(fvc::interpolate(psi), phid);
@ -23,7 +22,7 @@
fvScalarMatrix pEqn
(
fvm::div(phid, p)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);
@ -43,22 +42,20 @@
}
else
{
surfaceScalarField phiHbyA
(
"phiHbyA",
fvc::interpolate(rho*HbyA) & mesh.Sf()
);
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAUf, MRF);
while (simple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvc::div(phiHbyA)
- fvm::laplacian(rho*rAU, p)
- fvm::laplacian(rhorAUf, p)
==
fvOptions(psi, p, rho.name())
);

View File

@ -1,10 +1,7 @@
volScalarField rAU(1.0/UEqn().A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn().H1()));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
volScalarField rAU(1.0/UEqn.A());
volScalarField rAtU(1.0/(1.0/rAU - UEqn.H1()));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
tUEqn.clear();
bool closedVolume = false;
@ -14,7 +11,7 @@ if (simple.transonic())
(
"phid",
fvc::interpolate(psi)
*(fvc::interpolate(HbyA) & mesh.Sf())
*fvc::flux(HbyA)
);
MRF.makeRelative(fvc::interpolate(psi), phid);
@ -55,12 +52,7 @@ if (simple.transonic())
}
else
{
surfaceScalarField phiHbyA
(
"phiHbyA",
fvc::interpolate(rho*HbyA) & mesh.Sf()
);
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p);
@ -70,6 +62,9 @@ else
volScalarField rhorAtU("rhorAtU", rho*rAtU);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, rho, U, phiHbyA, rhorAtU, MRF);
while (simple.correctNonOrthogonal())
{
fvScalarMatrix pEqn

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,8 +10,9 @@
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
// Include the porous media resistance and solve the momentum equation
// either implicit in the tensorial resistance or transport using by
@ -22,18 +23,18 @@
if (pressureImplicitPorosity)
{
tmp<volTensorField> tTU = tensor(I)*UEqn().A();
pZones.addResistance(UEqn(), tTU());
tmp<volTensorField> tTU = tensor(I)*UEqn.A();
pZones.addResistance(UEqn, tTU.ref());
trTU = inv(tTU());
trTU().rename("rAU");
trTU.ref().rename("rAU");
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
volVectorField gradp(fvc::grad(p));
for (int UCorr=0; UCorr<nUCorr; UCorr++)
{
U = trTU() & (UEqn().H() - gradp);
U = trTU() & (UEqn.H() - gradp);
}
U.correctBoundaryConditions();
@ -41,14 +42,14 @@
}
else
{
pZones.addResistance(UEqn());
pZones.addResistance(UEqn);
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
trAU = 1.0/UEqn().A();
trAU().rename("rAU");
trAU = 1.0/UEqn.A();
trAU.ref().rename("rAU");
}

View File

@ -68,9 +68,9 @@ dimensionedScalar rhoMin
);
Info<< "Creating turbulence model\n" << endl;
autoPtr<compressible::RASModel> turbulence
autoPtr<compressible::turbulenceModel> turbulence
(
compressible::New<compressible::RASModel>
compressible::turbulenceModel::New
(
rho,
U,

View File

@ -1,27 +1,22 @@
{
const volScalarField& psi = thermo.psi();
volVectorField HbyA("HbyA", U);
tmp<volVectorField> tHbyA;
if (pressureImplicitPorosity)
{
HbyA = trTU() & UEqn().H();
tHbyA = constrainHbyA(trTU()&UEqn.H(), U, p);
}
else
{
HbyA = trAU()*UEqn().H();
tHbyA = constrainHbyA(trAU()*UEqn.H(), U, p);
}
volVectorField& HbyA = tHbyA.ref();
UEqn.clear();
tUEqn.clear();
bool closedVolume = false;
surfaceScalarField phiHbyA
(
"phiHbyA",
fvc::interpolate(rho*HbyA) & mesh.Sf()
);
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(rho*HbyA));
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
closedVolume = adjustPhi(phiHbyA, U, p);
@ -51,13 +46,15 @@
);
}
tpEqn().setReference(pRefCell, pRefValue);
fvScalarMatrix& pEqn = tpEqn.ref();
tpEqn().solve();
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
if (simple.finalNonOrthogonalIter())
{
phi = phiHbyA - tpEqn().flux();
phi = phiHbyA - pEqn.flux();
}
}

View File

@ -2,16 +2,13 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phid
(
"phid",
fvc::interpolate(psi)
*(
(mesh.Sf() & fvc::interpolate(HbyA))
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);

View File

@ -2,16 +2,13 @@ rho = thermo.rho();
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phid
(
"phid",
fvc::interpolate(psi)
*(
(mesh.Sf() & fvc::interpolate(HbyA))
fvc::flux(HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, rhoUf)/fvc::interpolate(rho)
)
);

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
@ -92,7 +92,7 @@ int main(int argc, char *argv[])
"phid",
psi
*(
(fvc::interpolate(U) & mesh.Sf())
fvc::flux(U)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)/fvc::interpolate(rho)
)
);

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
@ -72,7 +72,7 @@ public:
inline magnet()
:
remanence_("Mr", dimensionSet(0, -1, 0, 0, 0, 1, 0), 0),
orientation_(vector::zero)
orientation_(Zero)
{}
//- Construct from components
@ -94,7 +94,7 @@ public:
inline magnet(Istream& is)
:
remanence_("Mr", dimensionSet(0, -1, 0, 0, 0, 1, 0), 0),
orientation_(vector::zero)
orientation_(Zero)
{
is >> *this;
}

View File

@ -9,7 +9,7 @@
surfaceScalarField* phiBPtr;
if (phiBHeader.headerOk())
if (phiBHeader.typeHeaderOk<surfaceScalarField>(true))
{
Info<< "Reading field phiB\n" << endl;
@ -40,7 +40,7 @@
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
(fvc::interpolate(B) & mesh.Sf())
fvc::flux(B)
);
}

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
@ -100,17 +100,17 @@ int main(int argc, char *argv[])
{
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rAUf*fvc::ddtCorr(U, phi)
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAUf);
while (piso.correctNonOrthogonal())
{
fvScalarMatrix pEqn
@ -150,8 +150,7 @@ int main(int argc, char *argv[])
volScalarField rAB(1.0/BEqn.A());
surfaceScalarField rABf("rABf", fvc::interpolate(rAB));
phiB = (fvc::interpolate(B) & mesh.Sf())
+ rABf*fvc::ddtCorr(B, phiB);
phiB = fvc::flux(B) + rABf*fvc::ddtCorr(B, phiB);
while (bpiso.correctNonOrthogonal())
{

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
@ -54,7 +54,6 @@ Description
#include "radiationModel.H"
#include "fvOptions.H"
#include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -47,9 +47,9 @@ volVectorField U
#include "readTransportProperties.H"
Info<< "Creating turbulence model\n" << endl;
autoPtr<incompressible::RASModel> turbulence
autoPtr<incompressible::turbulenceModel> turbulence
(
incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
incompressible::turbulenceModel::New(U, phi, laminarTransport)
);
// Kinematic density for buoyancy force

View File

@ -1,31 +1,22 @@
{
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
surfaceScalarField phig(-rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ rAUf*fvc::ddtCorr(U, phi)
+ phig
);
MRF.makeRelative(phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
while (pimple.correctNonOrthogonal())
{

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(U)
@ -10,16 +10,17 @@
==
fvOptions(U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (simple.momentumPredictor())
{
solve
(
UEqn()
UEqn
==
fvc::reconstruct
(

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
@ -54,7 +54,6 @@ Description
#include "radiationModel.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -47,9 +47,9 @@ volVectorField U
#include "readTransportProperties.H"
Info<< "Creating turbulence model\n" << endl;
autoPtr<incompressible::RASModel> turbulence
autoPtr<incompressible::turbulenceModel> turbulence
(
incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
incompressible::turbulenceModel::New(U, phi, laminarTransport)
);
// Kinematic density for buoyancy force

View File

@ -1,17 +1,16 @@
{
volScalarField rAU("rAU", 1.0/UEqn().A());
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
tUEqn.clear();
surfaceScalarField phig(-rAUf*ghf*fvc::snGrad(rhok)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
);
MRF.makeRelative(phiHbyA);
@ -20,15 +19,8 @@
phiHbyA += phig;
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);
while (simple.correctNonOrthogonal())
{

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
@ -42,7 +42,6 @@ Description
#include "radiationModel.H"
#include "fvOptions.H"
#include "pimpleControl.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -11,35 +11,25 @@
thermo.rho() -= psi*p_rgh;
volScalarField rAU(1.0/UEqn.A());
surfaceScalarField rAUf("rAUf", fvc::interpolate(rho*rAU));
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
surfaceScalarField phig(-rAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
+ rAUf*fvc::ddtCorr(rho, U, phi)
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
tmp<fvScalarMatrix> p_rghDDtEqn
(
@ -51,6 +41,7 @@
p_rghDDtEqn =
(
fvc::ddt(rho) + psi*correction(fvm::ddt(p_rgh))
+ fvc::div(phiHbyA)
==
fvOptions(psi, p_rgh, rho.name())
);
@ -61,8 +52,7 @@
fvScalarMatrix p_rghEqn
(
p_rghDDtEqn()
+ fvc::div(phiHbyA)
- fvm::laplacian(rAUf, p_rgh)
- fvm::laplacian(rhorAUf, p_rgh)
);
p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));
@ -77,7 +67,7 @@
// Correct the momentum source with the pressure gradient flux
// calculated from the relaxed pressure
U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rAUf);
U = HbyA + rAU*fvc::reconstruct((phig + p_rghEqn.flux())/rhorAUf);
U.correctBoundaryConditions();
fvOptions.correct(U);
K = 0.5*magSqr(U);

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,16 +10,17 @@
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (simple.momentumPredictor())
{
solve
(
UEqn()
UEqn
==
fvc::reconstruct
(

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
@ -39,7 +39,6 @@ Description
#include "radiationModel.H"
#include "simpleControl.H"
#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,19 +2,17 @@
rho = thermo.rho();
rho.relax();
volScalarField rAU("rAU", 1.0/UEqn().A());
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
tUEqn.clear();
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
@ -23,16 +21,8 @@
phiHbyA += phig;
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
while (simple.correctNonOrthogonal())

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
@ -49,7 +49,6 @@ Description
#include "radiationModel.H"
#include "fvOptions.H"
#include "coordinateSystem.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -41,7 +41,6 @@ Description
#include "radiationModel.H"
#include "fvOptions.H"
#include "coordinateSystem.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,14 +10,15 @@
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
solve
(
UEqn()
UEqn
==
fvc::reconstruct
(

View File

@ -4,19 +4,17 @@
rho = min(rho, rhoMax[i]);
rho.relax();
volScalarField rAU("rAU", 1.0/UEqn().A());
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
tUEqn.clear();
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
);
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
@ -25,16 +23,8 @@
phiHbyA += phig;
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
dimensionedScalar compressibility = fvc::domainIntegrate(psi);
bool compressible = (compressibility.value() > SMALL);

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::ddt(rho, U) + fvm::div(phi, U)
+ MRF.DDt(rho, U)
@ -10,16 +10,17 @@
==
fvOptions(rho, U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (momentumPredictor)
{
solve
(
UEqn()
UEqn
==
fvc::reconstruct
(

View File

@ -15,7 +15,7 @@
);
}
/*
forAll (porousFluidRegions, porousI)
forAll(porousFluidRegions, porousI)
{
CoNum = max
(

View File

@ -5,11 +5,9 @@
rho = thermo.rho();
volScalarField rAU("rAU", 1.0/UEqn().A());
volScalarField rAU("rAU", 1.0/UEqn.A());
surfaceScalarField rhorAUf("rhorAUf", fvc::interpolate(rho*rAU));
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));
surfaceScalarField phig(-rhorAUf*ghf*fvc::snGrad(rho)*mesh.magSf());
@ -17,7 +15,7 @@
(
"phiHbyA",
(
(fvc::interpolate(rho*HbyA) & mesh.Sf())
fvc::flux(rho*HbyA)
+ rhorAUf*fvc::ddtCorr(rho, U, phi)
)
+ phig
@ -25,16 +23,8 @@
MRF.makeRelative(fvc::interpolate(rho), phiHbyA);
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p_rgh.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
*rho.boundaryField()
)/(mesh.magSf().boundaryField()*rhorAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p_rgh, rho, U, phiHbyA, rhorAUf, MRF);
tmp<fvScalarMatrix> p_rghDDtEqn
(
@ -60,7 +50,7 @@
{
fvScalarMatrix p_rghEqn
(
p_rghDDtEqn
p_rghDDtEqn()
+ fvc::div(phiHbyA)
- fvm::laplacian(rhorAUf, p_rgh)
);

View File

@ -55,7 +55,7 @@
(
"zero",
tkappaByCp().dimensions(),
symmTensor::zero
Zero
),
zeroGradientFvPatchSymmTensorField::typeName
)
@ -76,7 +76,7 @@
IOobject::AUTO_WRITE
);
if (betavSolidIO.headerOk())
if (betavSolidIO.typeHeaderOk<volScalarField>(true))
{
betavSolid.set
(

View File

@ -6,7 +6,7 @@ if (finalIter)
{
for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++)
{
tmp<fvScalarMatrix> hEqn
fvScalarMatrix hEqn
(
fvm::ddt(betav*rho, h)
- (
@ -18,11 +18,11 @@ if (finalIter)
fvOptions(rho, h)
);
hEqn().relax();
hEqn.relax();
fvOptions.constrain(hEqn());
fvOptions.constrain(hEqn);
hEqn().solve(mesh.solver(h.select(finalIter)));
hEqn.solve(mesh.solver(h.select(finalIter)));
fvOptions.correct(h);
}

View File

@ -1,12 +1,14 @@
Info<< "Creating turbulence model\n" << endl;
tmp<volScalarField> talphaEff;
IOobject turbulenceHeader
IOobject turbulencePropertiesHeader
(
"turbulenceProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
);
IOobject RASHeader
@ -25,7 +27,7 @@
IOobject::MUST_READ
);
if (turbulenceHeader.headerOk())
if (turbulencePropertiesHeader.typeHeaderOk<IOdictionary>(true))
{
autoPtr<compressible::turbulenceModel> turbulence
(
@ -40,7 +42,7 @@
talphaEff = turbulence->alphaEff();
}
else if (RASHeader.headerOk())
else if (RASHeader.typeHeaderOk<IOdictionary>(true))
{
autoPtr<compressible::RASModel> turbulence
(
@ -55,7 +57,7 @@
talphaEff = turbulence->alphaEff();
}
else if (LESHeader.headerOk())
else if (LESHeader.typeHeaderOk<IOdictionary>(true))
{
autoPtr<compressible::LESModel> turbulence
(

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,7 @@ void zeroCells
{
forAll(cells, i)
{
vf[cells[i]] = pTraits<Type>::zero;
vf[cells[i]] = Zero;
}
}
@ -110,7 +110,7 @@ int main(int argc, char *argv[])
{
// Momentum predictor
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::div(phi, U)
+ turbulence->divDevReff(U)
@ -118,26 +118,25 @@ int main(int argc, char *argv[])
==
fvOptions(U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
volScalarField rAU(1.0/UEqn().A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
UEqn.clear();
surfaceScalarField phiHbyA
(
"phiHbyA",
fvc::interpolate(HbyA) & mesh.Sf()
);
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
tUEqn.clear();
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(HbyA));
adjustPhi(phiHbyA, U, p);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAU);
// Non-orthogonal pressure corrector loop
while (simple.correctNonOrthogonal())
{
@ -175,13 +174,13 @@ int main(int argc, char *argv[])
//(
// fvc::reconstruct
// (
// mesh.magSf()*(fvc::snGrad(Ua) & fvc::interpolate(U))
// mesh.magSf()*fvc::dotInterpolate(fvc::snGrad(Ua), U)
// )
//);
zeroCells(adjointTransposeConvection, inletCells);
tmp<fvVectorMatrix> UaEqn
tmp<fvVectorMatrix> tUaEqn
(
fvm::div(-phi, Ua)
- adjointTransposeConvection
@ -190,24 +189,21 @@ int main(int argc, char *argv[])
==
fvOptions(Ua)
);
fvVectorMatrix& UaEqn = tUaEqn.ref();
UaEqn().relax();
UaEqn.relax();
fvOptions.constrain(UaEqn());
fvOptions.constrain(UaEqn);
solve(UaEqn() == -fvc::grad(pa));
solve(UaEqn == -fvc::grad(pa));
fvOptions.correct(Ua);
volScalarField rAUa(1.0/UaEqn().A());
volScalarField rAUa(1.0/UaEqn.A());
volVectorField HbyAa("HbyAa", Ua);
HbyAa = rAUa*UaEqn().H();
UaEqn.clear();
surfaceScalarField phiHbyAa
(
"phiHbyAa",
fvc::interpolate(HbyAa) & mesh.Sf()
);
HbyAa = rAUa*UaEqn.H();
tUaEqn.clear();
surfaceScalarField phiHbyAa("phiHbyAa", fvc::flux(HbyAa));
adjustPhi(phiHbyAa, Ua, pa);
// Non-orthogonal pressure corrector loop

View File

@ -80,9 +80,9 @@ mesh.setFluxRequired(pa.name());
singlePhaseTransportModel laminarTransport(U, phi);
autoPtr<incompressible::RASModel> turbulence
autoPtr<incompressible::turbulenceModel> turbulence
(
incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
incompressible::turbulenceModel::New(U, phi, laminarTransport)
);

View File

@ -31,9 +31,9 @@ surfaceScalarField phi
singlePhaseTransportModel laminarTransport(U, phi);
autoPtr<incompressible::RASModel> turbulence
autoPtr<incompressible::turbulenceModel> turbulence
(
incompressible::New<incompressible::RASModel>(U, phi, laminarTransport)
incompressible::turbulenceModel::New(U, phi, laminarTransport)
);
dimensionedVector Ubar("Ubar", dimVelocity, laminarTransport);
@ -45,5 +45,5 @@ dimensionedVector gradP
(
"gradP",
dimensionSet(0, 1, -2, 0, 0),
vector::zero
Zero
);

View File

@ -3,7 +3,7 @@
label faceId(-1);
label patchId(-1);
label nWallFaces(0);
vector wallNormal(vector::zero);
vector wallNormal(Zero);
const fvPatchList& patches = mesh.boundary();

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
@ -104,18 +104,19 @@ int main(int argc, char *argv[])
while (piso.correct())
{
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)
);
adjustPhi(phiHbyA, U, p);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAU);
// Non-orthogonal pressure corrector loop
while (piso.correctNonOrthogonal())
{

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
@ -80,18 +80,19 @@ int main(int argc, char *argv[])
while (piso.correct())
{
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)
);
adjustPhi(phiHbyA, U, p);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAU);
// Non-orthogonal pressure corrector loop
while (piso.correctNonOrthogonal())
{

View File

@ -1,5 +1,5 @@
// Relative momentum predictor
tmp<fvVectorMatrix> UrelEqn
tmp<fvVectorMatrix> tUrelEqn
(
fvm::ddt(Urel)
+ fvm::div(phi, Urel)
@ -8,11 +8,12 @@
==
fvOptions(Urel)
);
fvVectorMatrix& UrelEqn = tUrelEqn.ref();
UrelEqn().relax();
UrelEqn.relax();
fvOptions.constrain(UrelEqn());
fvOptions.constrain(UrelEqn);
solve(UrelEqn() == -fvc::grad(p));
solve(UrelEqn == -fvc::grad(p));
fvOptions.correct(Urel);

View File

@ -1,11 +1,11 @@
volScalarField rAUrel(1.0/UrelEqn().A());
volScalarField rAUrel(1.0/UrelEqn.A());
volVectorField HbyA("HbyA", Urel);
HbyA = rAUrel*UrelEqn().H();
HbyA = rAUrel*UrelEqn.H();
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAUrel)*fvc::ddtCorr(Urel, phi)
);
@ -15,7 +15,7 @@ tmp<volScalarField> rAtUrel(rAUrel);
if (pimple.consistent())
{
rAtUrel = 1.0/max(1.0/rAUrel - UrelEqn().H1(), 0.1/rAUrel);
rAtUrel = 1.0/max(1.0/rAUrel - UrelEqn.H1(), 0.1/rAUrel);
phiHbyA +=
fvc::interpolate(rAtUrel() - rAUrel)*fvc::snGrad(p)*mesh.magSf();
HbyA -= (rAUrel - rAtUrel())*fvc::grad(p);
@ -23,9 +23,12 @@ if (pimple.consistent())
if (pimple.nCorrPISO() <= 1)
{
UrelEqn.clear();
tUrelEqn.clear();
}
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, Urel, phiHbyA, rAtUrel());
// Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal())
{

View File

@ -2,7 +2,7 @@
MRF.correctBoundaryVelocity(U);
tmp<fvVectorMatrix> UEqn
tmp<fvVectorMatrix> tUEqn
(
fvm::ddt(U) + fvm::div(phi, U)
+ MRF.DDt(U)
@ -10,14 +10,15 @@ tmp<fvVectorMatrix> UEqn
==
fvOptions(U)
);
fvVectorMatrix& UEqn = tUEqn.ref();
UEqn().relax();
UEqn.relax();
fvOptions.constrain(UEqn());
fvOptions.constrain(UEqn);
if (pimple.momentumPredictor())
{
solve(UEqn() == -fvc::grad(p));
solve(UEqn == -fvc::grad(p));
fvOptions.correct(U);
}

View File

@ -1,11 +1,9 @@
volScalarField rAU(1.0/UEqn().A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)
);
@ -17,7 +15,7 @@ tmp<volScalarField> rAtU(rAU);
if (pimple.consistent())
{
rAtU = 1.0/max(1.0/rAU - UEqn().H1(), 0.1/rAU);
rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU);
phiHbyA +=
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
HbyA -= (rAU - rAtU())*fvc::grad(p);
@ -25,20 +23,11 @@ if (pimple.consistent())
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAtU()));
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAtU(), MRF);
// Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal())
@ -46,7 +35,7 @@ while (pimple.correctNonOrthogonal())
// Pressure corrector
fvScalarMatrix pEqn
(
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
fvm::laplacian(rAtU(), p) == fvc::div(phiHbyA)
);
pEqn.setReference(pRefCell, pRefValue);

View File

@ -1,11 +1,9 @@
volScalarField rAU(1.0/UEqn().A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn().H();
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, Uf)
);
@ -22,7 +20,7 @@ tmp<volScalarField> rAtU(rAU);
if (pimple.consistent())
{
rAtU = 1.0/max(1.0/rAU - UEqn().H1(), 0.1/rAU);
rAtU = 1.0/max(1.0/rAU - UEqn.H1(), 0.1/rAU);
phiHbyA +=
fvc::interpolate(rAtU() - rAU)*fvc::snGrad(p)*mesh.magSf();
HbyA -= (rAU - rAtU())*fvc::grad(p);
@ -30,27 +28,18 @@ if (pimple.consistent())
if (pimple.nCorrPISO() <= 1)
{
UEqn.clear();
tUEqn.clear();
}
surfaceScalarField rAUf("rAUf", fvc::interpolate(rAtU()));
// Update the fixedFluxPressure BCs to ensure flux consistency
setSnGrad<fixedFluxPressureFvPatchScalarField>
(
p.boundaryField(),
(
phiHbyA.boundaryField()
- MRF.relative(mesh.Sf().boundaryField() & U.boundaryField())
)/(mesh.magSf().boundaryField()*rAUf.boundaryField())
);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAtU(), MRF);
// Non-orthogonal pressure corrector loop
while (pimple.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::laplacian(rAUf, p) == fvc::div(phiHbyA)
fvm::laplacian(rAtU(), p) == fvc::div(phiHbyA)
);
pEqn.setReference(pRefCell, pRefValue);

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
@ -42,7 +42,6 @@ Description
#include "pimpleControl.H"
#include "CorrectPhi.H"
#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -72,7 +72,6 @@ Description
#include "turbulentTransportModel.H"
#include "pimpleControl.H"
#include "fvOptions.H"
#include "fixedFluxPressureFvPatchScalarField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -1,10 +1,9 @@
volScalarField rAU(1.0/UEqn.A());
volVectorField HbyA("HbyA", U);
HbyA = rAU*UEqn.H();
volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p));
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)
);
@ -12,6 +11,9 @@ MRF.makeRelative(phiHbyA);
adjustPhi(phiHbyA, U, p);
// Update the pressure BCs to ensure flux consistency
constrainPressure(p, U, phiHbyA, rAU, MRF);
// Non-orthogonal pressure corrector loop
while (piso.correctNonOrthogonal())
{

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
@ -114,7 +114,7 @@ int main(int argc, char *argv[])
surfaceScalarField phiHbyA
(
"phiHbyA",
(fvc::interpolate(HbyA) & mesh.Sf())
fvc::flux(HbyA)
+ fvc::interpolate(rAU)*fvc::ddtCorr(h, hU, phi)
- phih0
);

View File

@ -1,6 +1,6 @@
// Relative momentum predictor
tmp<fvVectorMatrix> UrelEqn
tmp<fvVectorMatrix> tUrelEqn
(
fvm::div(phi, Urel)
+ turbulence->divDevReff(Urel)
@ -8,11 +8,15 @@
==
fvOptions(Urel)
);
fvVectorMatrix& UrelEqn = tUrelEqn.ref();
UrelEqn().relax();
UrelEqn.relax();
fvOptions.constrain(UrelEqn());
fvOptions.constrain(UrelEqn);
solve(UrelEqn() == -fvc::grad(p));
if (simple.momentumPredictor())
{
solve(UrelEqn == -fvc::grad(p));
fvOptions.correct(Urel);
fvOptions.correct(Urel);
}

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