Commit Graph

16699 Commits

Author SHA1 Message Date
Henry Weller
d4046bb85e LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent 'solve' interface 2016-03-24 19:13:04 +00:00
Henry Weller
f019d1e738 LLTMatrix, LUscalarMatrix, QRMatrix: Provided consistent construction, decomposition and solution interface 2016-03-24 18:05:18 +00:00
Henry Weller
e9199c6e14 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
9bbf09573b SquareMatrix: Add setSize and assignment to identity 2016-03-24 14:48:59 +00:00
Henry Weller
0ce3586094 Matrix: correct docs 2016-03-24 14:48:28 +00:00
Henry Weller
1fdcefb464 LLTMatrix: Add support for updating the decomposition from a new matrix 2016-03-24 14:47:41 +00:00
Henry Weller
1ec47384bb src/OpenFOAM/matrices: Reformatted for-loops consistently 2016-03-23 18:27:04 +00:00
Henry Weller
a08adf25de LUscalarMatrix: Updated code layout 2016-03-23 15:34:19 +00:00
Henry Weller
0945cfd35f 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
ecc608d1c5 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
878866b16e 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
cfd939d4f2 Matrices: Rename private member 'nRows_' -> 'mRows_' for consistency with access member function 'm()' 2016-03-23 12:49:03 +00:00
Henry Weller
730f89dc9d Use Zero rather than pTraits<Type>::zero unless a static typed '0' is required 2016-03-22 17:46:52 +00:00
Chris Greenshields
aa89254c79 foamNewFunctionObject: script to create template code for a new function object
Run foamNewFunctionObject -h for details
2016-03-22 17:40:03 +00:00
Henry Weller
cb65ba71d7 Made all template declarations consistent using 'class' rather than 'typename' 2016-03-22 15:02:55 +00:00
Henry Weller
caf8776f9b 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
082261439c Identity: Added conversion to label 2016-03-22 14:12:53 +00:00
Henry Weller
c7e17fa6c2 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
961dc048da 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
27ec0178dc Updated header 2016-03-22 14:09:04 +00:00
Henry Weller
5eaa70cebc GAMGAgglomerationTemplates: Assign to Zero rather than pTraits<Type>::zero 2016-03-22 14:08:35 +00:00
Henry Weller
14e4045702 Updated header 2016-03-22 14:08:01 +00:00
Henry Weller
f34f9b3819 zero: Return Zero rather than zero() 2016-03-22 14:07:38 +00:00
Henry Weller
554b965000 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:38:59 +00:00
Henry Weller
34361493f9 src/OpenFOAM: Use Zero rather than pTraits<Type> 2016-03-22 10:38:30 +00:00
Henry Weller
ce81b44dc6 VectorSpaces, MatrixSpaces: Allow automatic conversion from zero 2016-03-22 10:35:57 +00:00
Henry Weller
0386551796 zero: Added support for initializing bool 2016-03-22 10:35:13 +00:00
Henry Weller
7e5d9982a7 etc/codeTemplates/BC: Use Use 'Zero' rather than 'pTraits<Type>::zero' to initialize to 0 2016-03-22 08:33:16 +00:00
Henry Weller
628eca41f6 Updated headers 2016-03-22 08:31:34 +00:00
Henry Weller
402915798d 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
Henry Weller
4edb771e8a Field: Added construction from and assignment to zero 2016-03-22 08:27:31 +00:00
Henry Weller
5c93cb5c8e Updated header 2016-03-22 08:27:11 +00:00
Henry Weller
5ca4acadd6 List: Added construction from and assignment to zero 2016-03-22 08:26:50 +00:00
Henry Weller
e6e687b67d VectorSpaces and MatrixSpaces: Added construction from and assignment to zero 2016-03-22 08:25:50 +00:00
Henry Weller
0f0e4a0c38 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
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
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