Commit Graph

2325 Commits

Author SHA1 Message Date
95dda0efc0 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
523b01c1b2 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
21b5ffb6ee SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
121c4e3a28 Matrix: correct docs 2016-03-24 14:48:28 +00:00
495e09714a LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
60c430b0ae src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00
12e59d3553 LUscalarMatrix: Updated code layout 2016-03-23 15:34:19 +00:00
ddbd5f3d11 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
536402d4f5 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
d70c62bba2 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
019bf94006 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
fa8929df6d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
44c73bfbe1 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
055a113f10 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
feada18b40 Identity: Added conversion to label 2016-03-22 14:12:53 +00:00
22b2e397b2 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
c33961f3ad 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
5f9b1d1681 Updated header 2016-03-22 14:09:04 +00:00
a16fff88f7 GAMGAgglomerationTemplates: Assign to Zero rather than pTraits<Type>::zero 2016-03-22 14:08:35 +00:00
da347abc51 Updated header 2016-03-22 14:08:01 +00:00
050ee51ad8 zero: Return Zero rather than zero() 2016-03-22 14:07:38 +00:00
89fa292968 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:38:59 +00:00
ffe2c2ac46 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
983b3e2ca4 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:35:57 +00:00
b49a71a402 zero: Added support for initializing bool 2016-03-22 10:35:13 +00:00
68f37e710f Updated headers 2016-03-22 08:31:34 +00:00
beb00e22d6 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
6f70b18bd2 Field: Added construction from and assignment to zero 2016-03-22 08:27:31 +00:00
042a9d96fd Updated header 2016-03-22 08:27:11 +00:00
d880a76409 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
c55d554050 VectorSpaces and MatrixSpaces: Added construction from and assignment to zero 2016-03-22 08:25:50 +00:00
bf6f2b3ed1 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
ec045baafe Identity: Added cast to scalar 2016-03-22 08:22:21 +00:00
64d256f79e 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
c13421b10a 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
767ffc3c7b 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
59c9f3594e Updated header 2016-03-20 10:35:35 +00:00
9209192b65 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
3c3a02e61c sampledSet/midPoint, midPointAndFace: Improved robustness of the mid-point cell seaching and selecting 2016-03-19 21:22:09 +00:00
9f80c727e5 sampledSet/face: Improved robustness of face selection 2016-03-19 21:21:23 +00:00
712b07d478 Field: Added zero() constructor 2016-03-19 21:20:33 +00:00
248d6065eb Updated header 2016-03-19 21:20:18 +00:00
9dc14af017 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
e809171540 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
e3bbe40748 SphericalTensor/Identity: Added dual form 2016-03-18 21:52:00 +00:00
0a0e282090 Update header 2016-03-18 11:47:59 +00:00
4ab535bdda 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
f528f844db SpatialVector: Added component access member functions
wx(), wy(), wz(), lx(), ly() and lz()
2016-03-17 22:12:48 +00:00
4cc909f1ed 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
e2d1156ddd primitives/transform: Added functios to generate rotation tensor about the given axis 2016-03-17 18:09:04 +00:00