Implementation of a 3x3 matrix.
#include "FPClassify.h"
#include "MathTrait.h"
#include "Vector3.h"
#include "core/debug/Debug.h"
#include "core/mpi/Datatype.h"
#include "core/mpi/RecvBuffer.h"
#include "core/mpi/SendBuffer.h"
#include <type_traits>
#include <algorithm>
#include <array>
#include <cmath>
#include <iostream>
#include <limits>
Classes | |
class | walberla::math::Matrix3< Type > |
Efficient, generic implementation of a 3x3 matrix. More... | |
struct | walberla::VectorTrait< Matrix3< T > > |
struct | walberla::mpi::BufferSizeTrait< walberla::math::Matrix3< VT > > |
struct | walberla::MPITrait< Matrix3< T > > |
Namespaces | |
walberla | |
\file TimestepTracker.h \ingroup lbm \author Frederik Hennig frede rik. henni g@fa u.de | |
walberla::math | |
walberla::debug | |
walberla::debug::check_functions_detail | |
walberla::mpi | |
Macros | |
#define | HIGH typename MathTrait<Type,Other>::High |
High-order return value. More... | |
Functions | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::operator- (const Matrix3< Type > &rhs) |
Negation operator for the negation of one matrix. More... | |
template<> | |
bool | walberla::debug::check_functions_detail::check_float_equal (const math::Matrix3< real_t > &lhs, const math::Matrix3< real_t > &rhs) |
template<> | |
bool | walberla::debug::check_functions_detail::check_float_equal_eps (const math::Matrix3< real_t > &lhs, const math::Matrix3< real_t > &rhs, const real_t epsilon) |
template<typename T , typename G , typename MT > | |
mpi::GenericSendBuffer< T, G > & | walberla::mpi::operator<< (mpi::GenericSendBuffer< T, G > &buf, const Matrix3< MT > &m) |
template<typename T , typename MT > | |
mpi::GenericRecvBuffer< T > & | walberla::mpi::operator>> (mpi::GenericRecvBuffer< T > &buf, Matrix3< MT > &m) |
Matrix3 operators | |
template<typename Type > | |
std::ostream & | walberla::math::operator<< (std::ostream &os, const Matrix3< Type > &m) |
Global output operator for 3x3 matrices. More... | |
template<typename Type > | |
bool | walberla::math::isnan (const Matrix3< Type > &m) |
Checks the given matrix for not-a-number elements. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::abs (const Matrix3< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::fabs (const Matrix3< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type , typename Other > | |
std::enable_if< std::is_arithmetic< Other >::value, const Matrix3< typename MathTrait< Type, Other >::High > >::type | walberla::math::operator* (Other scalar, const Matrix3< Type > &matrix) |
Multiplication operator for the multiplication of a scalar value and a matrix. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::skewSymCrossProduct (const Matrix3< Type > &mat, const Vector3< Type > &vec) |
Cross product (outer product) between a matrix and a vector ( \( R = M \cdot r^{\times} \)). More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::skewSymCrossProduct (const Vector3< Type > &vec, const Matrix3< Type > &mat) |
Cross product (outer product) between a vector and a matrix ( \( R = r^{\times} \cdot M \)). More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::dyadicProduct (const Vector3< Type > &vec1, const Vector3< Type > &vec2) |
Dyadic product of two vectors ( \( M = u \otimes v \)). More... | |
template<typename Type > | |
bool | walberla::math::isinf (const Matrix3< Type > &m) |
Checks the given matrix for infinite elements. More... | |
template<typename T0 , typename T1 > | |
Matrix3< typename MathTrait< T0, T1 >::High > | walberla::math::tensorProduct (Vector3< T0 > v0, Vector3< T1 > v1) |
template<typename Type > | |
Matrix3< Type > | walberla::math::transformMatrixRART (const Matrix3< Type > &R, const Matrix3< Type > &A) |
Equivalent to R*A*R.getTranspose(). More... | |
Matrix3 operators | |
template<typename Type > | |
std::ostream & | walberla::math::operator<< (std::ostream &os, const Matrix3< Type > &m) |
Global output operator for 3x3 matrices. More... | |
template<typename Type > | |
bool | walberla::math::isnan (const Matrix3< Type > &m) |
Checks the given matrix for not-a-number elements. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::abs (const Matrix3< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::fabs (const Matrix3< Type > &m) |
Returns a matrix containing the absolute values of each single element of m. More... | |
template<typename Type , typename Other > | |
std::enable_if< std::is_arithmetic< Other >::value, const Matrix3< typename MathTrait< Type, Other >::High > >::type | walberla::math::operator* (Other scalar, const Matrix3< Type > &matrix) |
Multiplication operator for the multiplication of a scalar value and a matrix. More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::skewSymCrossProduct (const Matrix3< Type > &mat, const Vector3< Type > &vec) |
Cross product (outer product) between a matrix and a vector ( \( R = M \cdot r^{\times} \)). More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::skewSymCrossProduct (const Vector3< Type > &vec, const Matrix3< Type > &mat) |
Cross product (outer product) between a vector and a matrix ( \( R = r^{\times} \cdot M \)). More... | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::dyadicProduct (const Vector3< Type > &vec1, const Vector3< Type > &vec2) |
Dyadic product of two vectors ( \( M = u \otimes v \)). More... | |
template<typename Type > | |
bool | walberla::math::isinf (const Matrix3< Type > &m) |
Checks the given matrix for infinite elements. More... | |
template<typename T0 , typename T1 > | |
Matrix3< typename MathTrait< T0, T1 >::High > | walberla::math::tensorProduct (Vector3< T0 > v0, Vector3< T1 > v1) |
template<typename Type > | |
Matrix3< Type > | walberla::math::transformMatrixRART (const Matrix3< Type > &R, const Matrix3< Type > &A) |
Equivalent to R*A*R.getTranspose(). More... | |
#define HIGH typename MathTrait<Type,Other>::High |
High-order return value.
Abbreviation for the evaluation of the higher-order data type in a numerical operation.