Commit Graph

263 Commits

Author SHA1 Message Date
95d146ecdf Rationalized the indentation of C-preprocessor directives 2016-02-29 15:42:03 +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
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
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
263864984e OpenFOAM/matrices/solution: Simplify debug messages for consistency 2016-02-12 14:45:53 +00:00
aa38e25c92 Info -> InfoInFunction and updated comments 2016-01-20 17:51:15 +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
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
c4d5f65a10 Completed update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-11 09:03:39 +00:00
dc43311e62 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
78d7482e5b SolverPerformance: Complete the integration of the templated SolverPerformance<Type>
Now solvers return solver performance information for all components
with backward compatibility provided by the "max" function which created
the scalar solverPerformance from the maximum component residuals from
the SolverPerformance<Type>.

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

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

This development started from patches provided by Bruno Santos, See
http://www.openfoam.org/mantisbt/view.php?id=1824
2015-11-10 08:50:11 +00:00
a4ab3f61db 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
42fb1b9e8e Updated notImplemented -> NotImplemented
The new NotImplemented macro uses __PRETTY_FUNCTION__ for GNU compatible
compilers otherwise __func__ to provide the function name string.
2015-11-01 10:26:37 +00:00
94401af010 Resolved issues with virtual function inheritance and warning from clang
Also removed __GNUC__ conditional compilation statements which are no
longer needed.
2015-07-17 12:11:37 +01:00
72300041df Removed use of the deprecated "register" keyword
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/n4340.html
2015-06-30 10:26:44 +01:00
20eab963cb GAMG solver: Set the following defaults:
cacheAgglomeration true;
    agglomerator    faceAreaPair;
    nCellsInCoarsestLevel 10;
    mergeLevels     1;
2015-05-03 18:11:25 +01:00
43958a70ec RectangularMatrix: Corrected documentation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1535
2015-02-17 10:48:36 +00:00
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
66cb99e696 Updated headers to ensure the class name declared to Doxygen is in the appropriate namespace
Also moved global classes which should be in the Foam namespace into it.
2015-02-09 14:43:11 +00:00
3588970280 LduMatrixOperations: Added support for scaling symmetric matrices
Note: non-uniform scaling of a symmetric matrix generates an asymmetric matrix
2015-01-02 19:20:19 +00:00
56192f21b9 lduMatrixOperations: Added support for scaling symmetric matrices
Note: non-uniform scaling of a symmetric matrix generates an asymmetric matrix
2015-01-02 15:38:52 +00:00
ded2f25726 Updated headers 2014-12-31 19:08:15 +00:00
325b003b6e 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
f4596ad247 Resolve issues relating to compilation with clang-3.5.0 2014-12-15 22:38:10 +00:00
cad94eb90e fvSolution: fields and equations entries in relaxationFactors are now individually optional 2014-02-03 18:05:09 +00:00
e7effbebb0 ENH: snappyHexMesh: reset precision 2014-02-03 13:48:49 +00:00
364cfd76d2 GAMGSolverSolve: scale coarsest level if using interpolation 2014-01-08 16:48:09 +00:00
78f700c2aa ENH: Updated usage for Info() 2014-01-02 18:20:09 +00:00
661304b55d Update headers 2013-12-11 17:28:50 +00:00
79614840b3 All ldu solvers: new optional parameter "minIter"
to specify the minimum number of iterations the solver should perform.
2013-12-11 17:27:27 +00:00
2a6bbf3e56 Corrected docs 2013-12-04 09:32:00 +00:00
34c274761c solution: added set/unset to field relaxation diagnostics 2013-11-06 09:56:23 +00:00
029f881827 STYLE: solution: moved debug printing 2013-10-03 10:49:10 +01:00
3650d79f59 BUG: lduAddressing: profile calculation 2013-08-14 11:55:54 +01:00
4347659947 ENH: cyclicSlip: GAMG support 2013-07-18 13:05:57 +01:00
e82549728c ENH: GAMGAgglomeration: added profile printing 2013-07-17 11:05:55 +01:00
2496b4ed91 ENH: lduAddressing: added profile calculation 2013-07-16 21:29:41 +01:00
cf12df4564 Merge remote-tracking branch 'origin/master' into feature/procAgglom 2013-07-16 09:08:22 +01:00
d5d242a630 BUG: GAMG: revert to non-energy preserving when processor agglomerating 2013-07-16 09:07:38 +01:00
b38086352c Merge branch 'master' of /home/dm4/OpenFOAM/OpenFOAM-dev 2013-07-15 15:33:31 +01:00
b1025f1849 ENH: GAMG: support for cyclicSlip 2013-07-15 15:33:08 +01:00
0b7a873c07 fvMatrixSolve: print solver messages only if the SolverPerformance debug switch is set
etc/controlDict: Set SolverPerformance debug switch default to 1
2013-07-03 22:16:40 +01:00
2d124e8e8b Removed blank-line 2013-06-20 10:40:01 +01:00
818f6a549f pairGAMGAgglomeration: Support reverse cell-scanning without reversing the order of the generated agglomeration
Gives better cache coherency
2013-06-12 12:57:50 +01:00
43ac607386 GAMGSolverInterpolate: Correct interpolate for conservation
such that the sum of the values in the fines cells is equal to the value in the coarse cell
2013-06-12 12:53:47 +01:00
f5bfc5d2e7 ENH: scalarMatrices: Add determinant calculation 2013-06-07 08:57:04 +01:00
9ba219d0f3 ENH: MGridGen: enforce all coarse cells to be single connected region 2013-06-06 06:04:00 +01:00
fa45dde21d ENH: GAMGAgglomeration: use float for average in table 2013-06-03 13:30:14 +01:00