Commit graph

423 commits

Author SHA1 Message Date
Henry Weller
84bad0b2f1 Update header 2016-03-24 19:13:36 +00:00
Henry Weller
ff8e666099 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
Henry Weller
95dda0efc0 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
Henry Weller
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
Henry Weller
21b5ffb6ee SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
Henry Weller
121c4e3a28 Matrix: correct docs 2016-03-24 14:48:28 +00:00
Henry Weller
495e09714a LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
Henry Weller
60c430b0ae src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00
Henry Weller
12e59d3553 LUscalarMatrix: Updated code layout 2016-03-23 15:34:19 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
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
Henry Weller
019bf94006 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
Henry Weller
44c73bfbe1 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
Henry Weller
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
Henry Weller
feada18b40 Identity: Added conversion to label 2016-03-22 14:12:53 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
5f9b1d1681 Updated header 2016-03-22 14:09:04 +00:00
Henry Weller
a16fff88f7 GAMGAgglomerationTemplates: Assign to Zero rather than pTraits<Type>::zero 2016-03-22 14:08:35 +00:00
Henry Weller
da347abc51 Updated header 2016-03-22 14:08:01 +00:00
Henry Weller
050ee51ad8 zero: Return Zero rather than zero() 2016-03-22 14:07:38 +00:00
Henry Weller
89fa292968 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:38:59 +00:00
Henry Weller
ffe2c2ac46 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
Henry Weller
983b3e2ca4 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:35:57 +00:00
Henry Weller
b49a71a402 zero: Added support for initializing bool 2016-03-22 10:35:13 +00:00
Henry Weller
6f70b18bd2 Field: Added construction from and assignment to zero 2016-03-22 08:27:31 +00:00
Henry Weller
042a9d96fd Updated header 2016-03-22 08:27:11 +00:00
Henry Weller
d880a76409 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
Henry Weller
c55d554050 VectorSpaces and MatrixSpaces: Added construction from and assignment to zero 2016-03-22 08:25:50 +00:00
Henry Weller
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
Henry Weller
ec045baafe Identity: Added cast to scalar 2016-03-22 08:22:21 +00:00
Henry Weller
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
Henry Weller
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
Henry Weller
59c9f3594e Updated header 2016-03-20 10:35:35 +00:00
Henry Weller
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
Henry Weller
712b07d478 Field: Added zero() constructor 2016-03-19 21:20:33 +00:00
Henry Weller
248d6065eb Updated header 2016-03-19 21:20:18 +00:00
Henry Weller
9dc14af017 SubList, SubField: Added assignment to UList 2016-03-19 21:19:14 +00:00
Henry Weller
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
Henry Weller
e3bbe40748 SphericalTensor/Identity: Added dual form 2016-03-18 21:52:00 +00:00
Henry Weller
0a0e282090 Update header 2016-03-18 11:47:59 +00:00
Henry Weller
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
Henry Weller
f528f844db SpatialVector: Added component access member functions
wx(), wy(), wz(), lx(), ly() and lz()
2016-03-17 22:12:48 +00:00
Henry Weller
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
Henry Weller
e2d1156ddd primitives/transform: Added functios to generate rotation tensor about the given axis 2016-03-17 18:09:04 +00:00
Henry Weller
69dd56b9dd primitives/transform: Added functions to generate rotation tensors about the individual axes 2016-03-17 18:05:11 +00:00
Henry Weller
8eb32a21d7 SpatialTensor: Added constructor from 4 Tensor blocks 2016-03-17 09:14:25 +00:00
Henry Weller
fa1dfa813b MatrixSpace::Block: Added "dereference" operator for conversion to sub-tensor 2016-03-15 22:36:56 +00:00
Henry Weller
05455d50ea 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