Matrix3.h File Reference

Detailed Description

Implementation of a 3x3 matrix.

Author
Klaus Iglberger
Florian Schornbaum flori.nosp@m.an.s.nosp@m.chorn.nosp@m.baum.nosp@m.@fau..nosp@m.de
#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.nosp@m.rik..nosp@m.henni.nosp@m.g@fa.nosp@m.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...
 

Macro Definition Documentation

◆ HIGH

#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.