waLBerla 7.2
|
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 | |
namespace | walberla |
Storage for detected contacts which can be used to perform actions for all contacts, e.g. | |
namespace | walberla::math |
namespace | walberla::debug |
namespace | walberla::debug::check_functions_detail |
namespace | walberla::mpi |
Macros | |
#define | HIGH typename MathTrait<Type,Other>::High |
High-order return value. | |
Functions | |
template<typename Type > | |
const Matrix3< Type > | walberla::math::operator- (const Matrix3< Type > &rhs) |
Negation operator for the negation of one matrix. | |
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. | |
template<typename Type > | |
bool | walberla::math::isnan (const Matrix3< Type > &m) |
Checks the given matrix for not-a-number elements. | |
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. | |
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. | |
template<typename Type , typename Other > requires ( std::is_arithmetic_v< Other > ) | |
const Matrix3< typename MathTrait< Type, Other >::High > | walberla::math::operator* (Other scalar, const Matrix3< Type > &matrix) |
Multiplication operator for the multiplication of a scalar value and a matrix. | |
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} \)). | |
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 \)). | |
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 \)). | |
template<typename Type > | |
bool | walberla::math::isinf (const Matrix3< Type > &m) |
Checks the given matrix for infinite elements. | |
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(). | |
#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.