Commit Graph

17400 Commits

Author SHA1 Message Date
Henry Weller
e69aaae548 Identity: Added cast to scalar 2016-03-22 08:22:21 +00:00
Henry Weller
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
mattijs
493d9c8c95 ENH: genericPolyPatch: filter out duplicates when writing 2016-03-21 12:30:34 +00:00
Henry Weller
445ce0f2ce Test-Matrix: Removed timing test 2016-03-20 19:50:23 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
1d456a6698 Updated header 2016-03-20 10:35:35 +00:00
Henry Weller
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
Henry Weller
a7e410396a sampledSet/midPoint, midPointAndFace: Improved robustness of the mid-point cell seaching and selecting 2016-03-19 21:22:09 +00:00
Henry Weller
649128313b sampledSet/face: Improved robustness of face selection 2016-03-19 21:21:23 +00:00
Henry Weller
1b93e52c79 Field: Added zero() constructor 2016-03-19 21:20:33 +00:00
Henry Weller
5afe3027d1 Updated header 2016-03-19 21:20:18 +00:00
Henry Weller
1f89e65624 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
Henry Weller
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
Henry Weller
1346cc9c9d SphericalTensor/Identity: Added dual form 2016-03-18 21:52:00 +00:00
Henry Weller
f8b486ae35 Update header 2016-03-18 11:47:59 +00:00
Henry Weller
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
Henry Weller
9c0c6c5f00 SpatialVector: Added component access member functions
wx(), wy(), wz(), lx(), ly() and lz()
2016-03-17 22:12:48 +00:00
Henry Weller
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
Henry Weller
07041365cc primitives/transform: Added functios to generate rotation tensor about the given axis 2016-03-17 18:09:04 +00:00
Henry Weller
fa83f2a97d primitives/transform: Added functions to generate rotation tensors about the individual axes 2016-03-17 18:05:11 +00:00
Henry Weller
02f8a02955 SpatialTensor: Added constructor from 4 Tensor blocks 2016-03-17 09:14:25 +00:00
Henry Weller
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
Henry Weller
818d5450f8 thermoSingleLayer: Output the mean film temperature in addition to max and min 2016-03-16 15:34:57 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
d7d331f471 MatrixSpace::Block: Added "dereference" operator for conversion to sub-tensor 2016-03-15 22:36:56 +00:00
Henry Weller
01cdde52b9 driftFluxFoam/relativeVelocityModels/general/general:: Corrected construction of residualAlpha 2016-03-15 20:33:06 +00:00
Henry Weller
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
Henry Weller
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
Andrew Heather
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
Henry Weller
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
Henry Weller
4f262eb3a2 VectorSpace: Changes loop logic to avoid warning from gcc-4.5 2016-03-14 15:36:42 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
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
Henry Weller
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
Henry Weller
e1d67b244d Corrected typo 2016-03-11 09:46:48 +00:00
Henry Weller
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
sergio
5a49c7d903 ENH: Adding functionality to incompressibleTwoPhaseMixture 2016-03-10 11:51:25 -08:00
Henry Weller
a018e83e75 floatTensor: Tensor<float> 2016-03-10 12:45:42 +00:00
Henry Weller
2ddcb12c67 VectorSpace: Change template parameter from nCmpt to Ncmpts for consistency with other template classes 2016-03-10 12:44:53 +00:00
Henry Weller
7c692c18d8 Vector: Add constructor from Foam::zero 2016-03-10 12:44:25 +00:00
mattijs
6cbdd17337 Merge remote-tracking branch 'origin/develop' into feature-shared-file 2016-03-09 14:38:34 +00:00
mattijs
ffa7dc7d6b ENH: IOWarningIn: use new ..InFunction macros 2016-03-09 14:36:25 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
80c3bcff48 bin/tools/foamConfigurePaths: foamCompiler -> WM_COMPILER_TYPE 2016-03-09 09:05:07 +00:00
Henry Weller
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
Henry Weller
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