Commit graph

20 commits

Author SHA1 Message Date
Henry Weller
99c000fc94 Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +00:00
Henry Weller
cd59748bdb tmp: encapsulate refCount to enable the option for tmp to use a specific version 2016-02-28 22:50:24 +00:00
Henry Weller
49c54e9070 OpenFOAM libraries: Updated to use the new const-safe tmp 2016-02-26 08:13:59 +00:00
Henry Weller
4f93551da9 Field: Simplified tmp reuse and cleanup 2016-02-25 15:07:14 +00:00
Henry Weller
3a56ebf33d tmp: Improved reference count checks to provide better error diagnostics
in case of tmp misuse.

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

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

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

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

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

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

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

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

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
Henry Weller
e029c7c1a3 Update headers 2016-01-11 13:02:52 +00:00
Henry Weller
a56ab5f863 Consistently indent continuation backslashes in macro definitions 2016-01-11 13:00:56 +00:00
Henry Weller
94c05a1e6c Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
36f2d69888 Update code to use the simpler C++11 template syntax 2016-01-10 19:20:16 +00:00
Henry Weller
cc99b65d77 src/OpenFOAM: Update ...IOErrorIn -> ...IOErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 21:13:04 +00:00
Henry Weller
d5b4448e1a src/OpenFOAM: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-08 12:23:52 +00:00
Henry Weller
e6e7820ae5 Upgrade Intel C++ compiler to icpc (ICC) 15.0.3 20150407
This resolves a whole range of issues and work-arounds with earlier
releases.  This version of icpc is more or less compatible with the
latest gcc and clang compilers and only required one hack to avoid
warnings from PackedBoolList.H.
2015-07-17 16:50:40 +01:00
Henry Weller
43030b7fbc src/OpenFOAM: Added posPart and negPart functions
posPart returns a value or field in which the value or values are set to
0 if negative

negPart returns a value or field in which the value or values are set to
0 if positive
2015-07-03 18:02:24 +01:00
Henry
9d9dbffdad symmTensor: Add support for the innerSqr function
which takes the inner product of a symmTensor with itself and returns a symmTensor
2015-02-28 16:09:55 +00:00
Henry
3745eac109 Updated headers 2014-12-31 19:08:15 +00:00
Henry
2a614865ff Added and verified support for 64bit labels
To compile with 64bit labels set

WM_LABEL_SIZE=64

in ~/OpenFOAM/dev/prefs.sh

source ~/.bashrc

then Allwmake in OpenFOAM-dev.

This will build into for example OpenFOAM-dev/platforms/linux64ClangDPInt64Opt

If WM_LABEL_SIZE is unset or set to 32:

WM_LABEL_SIZE=32

the build would be placed into OpenFOAM-dev/platforms/linux64ClangDPInt32Opt

Thus both 32bit and 64bit label builds can coexist without problem.
2014-12-31 19:02:52 +00:00
Henry
3dd3e6157c Resolve issues relating to compilation with clang-3.5.0 2014-12-15 22:38:10 +00:00
Henry
446e5777f0 Add the OpenFOAM source tree 2014-12-10 22:40:10 +00:00