OOFEM 3.0
Loading...
Searching...
No Matches
floatmatrixf.h File Reference
#include "oofemenv.h"
#include "contextioresulttype.h"
#include "contextmode.h"
#include "floatmatrix.h"
#include "floatarrayf.h"
#include <array>
#include <initializer_list>
#include <algorithm>
#include <utility>
#include <iosfwd>

Go to the source code of this file.

Classes

class  oofem::FloatMatrixF< N, M >

Namespaces

namespace  oofem

Macros

#define floatmatrixf_h
#define _LOOP_FLOATMATRIX(M, r, c)

Functions

template<std::size_t N, std::size_t M, std::size_t R, std::size_t C>
FloatMatrixF< N, M > oofem::assemble (const FloatMatrixF< R, C > &x, int const (&r)[R], int const (&c)[C])
 Assemble components into zero matrix.
template<std::size_t N, std::size_t M>
std::ostream & oofem::operator<< (std::ostream &out, const FloatMatrixF< N, M > &x)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::operator* (double a, const FloatMatrixF< N, M > &x)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::operator* (const FloatMatrixF< N, M > &x, double a)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::operator/ (const FloatMatrixF< N, M > &x, double a)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::operator+ (const FloatMatrixF< N, M > &x, const FloatMatrixF< N, M > &y)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::operator- (const FloatMatrixF< N, M > &x, const FloatMatrixF< N, M > &y)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > & oofem::operator+= (FloatMatrixF< N, M > &x, const FloatMatrixF< N, M > &y)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > & oofem::operator-= (FloatMatrixF< N, M > &x, const FloatMatrixF< N, M > &y)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > & oofem::operator*= (FloatMatrixF< N, M > &x, double a)
template<std::size_t N, std::size_t M>
bool oofem::isfinite (const FloatMatrixF< N, M > &mat)
 Returns true if no element is not finite (NAN or infinite).
template<std::size_t N, std::size_t NSD>
FloatMatrixF< N *3, NSD > oofem::Nmatrix (const FloatArrayF< N > &n)
FloatMatrixF< 2, 2 > oofem::local_cs (const FloatArrayF< 2 > &normal)
FloatMatrixF< 3, 3 > oofem::local_cs (const FloatArrayF< 3 > &normal)
template<std::size_t N, std::size_t M>
FloatMatrixF< M, Noofem::transpose (const FloatMatrixF< N, M > &mat)
 Constructs transposed matrix.
template<std::size_t N, std::size_t M, std::size_t P>
FloatMatrixF< N, P > oofem::dot (const FloatMatrixF< N, M > &a, const FloatMatrixF< M, P > &b)
 Computes \( a \cdot b \).
template<std::size_t N, std::size_t M, std::size_t P>
FloatMatrixF< N, P > oofem::dotT (const FloatMatrixF< N, M > &a, const FloatMatrixF< P, M > &b)
 Computes \( a \cdot b^{\mathrm{T}} \).
template<std::size_t N, std::size_t M, std::size_t P>
FloatMatrixF< N, P > oofem::Tdot (const FloatMatrixF< M, N > &a, const FloatMatrixF< M, P > &b)
 Computes \( a^{\mathrm{T}} \cdot b \).
template<std::size_t N, std::size_t M>
FloatArrayF< Noofem::dot (const FloatMatrixF< N, M > &m, const FloatArrayF< M > &x)
 Computes $ m_ij x_j = m \cdot x $.
template<std::size_t N, std::size_t M>
FloatArrayF< Noofem::dot (const FloatArrayF< M > &x, const FloatMatrixF< M, N > &m)
 Computes $ x_j m_ji = x \cdot m = m^{\mathrm{T}} \cdot x $.
template<std::size_t N, std::size_t M>
FloatArrayF< Noofem::Tdot (const FloatMatrixF< M, N > &m, const FloatArrayF< M > &x)
 Computes $ x_j m_ji = x \cdot m = m^{\mathrm{T}} \cdot x $.
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::dyad (const FloatArrayF< N > &a, const FloatArrayF< M > &b)
 Computes the dyadic product \( m_{ij} = a_i b_j \).
template<std::size_t N, std::size_t M>
FloatMatrixF< M, M > oofem::rotate (FloatMatrixF< N, N > &a, const FloatMatrixF< N, M > &r)
 Computes \( a = r^{\mathrm{T}} \cdot a \cdot r \).
template<std::size_t N, std::size_t M>
FloatMatrixF< M, M > oofem::unrotate (FloatMatrixF< N, N > &a, const FloatMatrixF< M, N > &r)
 Computes \( a = r \cdot a \cdot r^{\mathrm{T}} \).
template<std::size_t N, std::size_t M>
FloatArrayF< Noofem::column (const FloatMatrixF< N, M > &mat, std::size_t col)
FloatMatrixF< 3, 3 > oofem::from_voigt_form_9 (const FloatArrayF< 9 > &v)
FloatArrayF< 9 > oofem::to_voigt_form_33 (const FloatMatrixF< 3, 3 > &t)
FloatMatrixF< 3, 3 > oofem::from_voigt_stress_6 (const FloatArrayF< 6 > &v)
FloatArrayF< 6 > oofem::to_voigt_stress_33 (const FloatMatrixF< 3, 3 > &t)
FloatMatrixF< 3, 3 > oofem::from_voigt_strain_6 (const FloatArrayF< 6 > &v)
FloatArrayF< 6 > oofem::to_voigt_strain_33 (const FloatMatrixF< 3, 3 > &t)
template<std::size_t N>
FloatMatrixF< N, Noofem::diag (const FloatArrayF< N > &v)
template<std::size_t N>
FloatArrayF< Noofem::diag (const FloatMatrixF< N, N > &m)
template<std::size_t N, std::size_t M>
FloatArrayF< N *M > oofem::flatten (const FloatMatrixF< N, M > &m)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::zero ()
 Constructs a zero matrix (this is the default behavior when constructing a matrix, this is just for nicer syntax).
template<std::size_t N>
FloatMatrixF< N, Noofem::eye ()
 Constructs an identity matrix.
template<std::size_t N, std::size_t NSD>
FloatMatrixF< NSD, Noofem::Nmatrix (const FloatArrayF< N > &n)
template<std::size_t N>
FloatMatrixF< 6, N *3 > oofem::Bmatrix_3d (const FloatMatrixF< 3, N > &dN)
 Constructs the B matrix for 3D momentum balance problems.
template<std::size_t N>
FloatMatrixF< 3, N *2 > oofem::Bmatrix_2d (const FloatMatrixF< 2, N > &dN)
 Constructs the B matrix for plane stress momentum balance problems.
template<std::size_t N>
double oofem::trace (const FloatMatrixF< N, N > &mat)
template<std::size_t N>
double oofem::frobeniusNorm (const FloatMatrixF< N, N > &mat)
template<std::size_t N>
double oofem::norm (const FloatMatrixF< N, N > &mat, int p=1)
template<std::size_t N>
double oofem::rcond (const FloatMatrixF< N, N > &mat, int p=1)
double oofem::det (const FloatMatrixF< 2, 2 > &mat)
 Computes the determinant.
double oofem::det (const FloatMatrixF< 3, 3 > &mat)
 Computes the determinant.
FloatMatrixF< 2, 2 > oofem::inv_22 (const FloatMatrixF< 2, 2 > &mat, double)
 Computes the inverse.
FloatMatrixF< 3, 3 > oofem::inv_33 (const FloatMatrixF< 3, 3 > &mat, double)
 Computes the inverse.
template<std::size_t N>
FloatMatrixF< N, Noofem::inv (const FloatMatrixF< N, N > &mat, double zeropiv=1e-24)
 Computes the inverse.
template<std::size_t N>
std::pair< FloatArrayF< N >, FloatMatrixF< N, N > > oofem::eig (const FloatMatrixF< N, N > &mat, int nf=9)
template<std::size_t N>
std::pair< FloatArrayF< N >, FloatMatrixF< N, N > > oofem::eig_inverse (const FloatMatrixF< N, N > &mat)
template<std::size_t N>
void oofem::orthogonalize (std::array< FloatArrayF< N >, N > &x)
template<std::size_t N>
std::pair< bool, FloatArrayF< N > > oofem::solve_check (FloatMatrixF< N, N > mtrx, const FloatArrayF< N > &b, double zeropiv=1e-20)
template<std::size_t N>
FloatArrayF< Noofem::solve (FloatMatrixF< N, N > mtrx, const FloatArrayF< N > &b, double zeropiv=1e-20)
template<std::size_t N, std::size_t M>
FloatMatrixF< N, M > oofem::solve (FloatMatrixF< N, N > mtrx, const FloatMatrixF< N, M > &B, double zeropiv=1e-20)

Variables

const FloatMatrixF< 6, 6 > oofem::I_dev6
 I_dev matrix in Voigt (stress) form.
const FloatMatrixF< 6, 6 > oofem::I6_I6
 I(x)I expressed in Voigt form.

Macro Definition Documentation

◆ _LOOP_FLOATMATRIX

#define _LOOP_FLOATMATRIX ( M,
r,
c )
Value:
for(std::size_t c=0; c<M.cols(); c++) for(std::size_t r=0; r<M.rows(); r++)

Definition at line 55 of file floatmatrixf.h.

Referenced by oofem::frobeniusNorm(), oofem::operator*(), oofem::operator*=(), oofem::operator+(), oofem::operator+=(), oofem::operator-(), oofem::operator-=(), and oofem::operator/().

◆ floatmatrixf_h

#define floatmatrixf_h

Definition at line 38 of file floatmatrixf.h.


This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011