Namespaces | Functions
MarmotMath.h File Reference
#include "Marmot/MarmotConstants.h"
#include "Marmot/MarmotTypedefs.h"
#include "autodiff/forward/dual.hpp"
#include "autodiff/forward/real.hpp"
#include <algorithm>
#include <autodiff/forward/dual/dual.hpp>
#include <complex>
Include dependency graph for MarmotMath.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

 Marmot
 This file includes functions needed for calculations with stress and strain tensors written in voigt notation.
 
 Marmot::Math
 

Functions

template<typename T >
bool Marmot::Math::isNaN (T x)
 
double Marmot::Math::linearInterpolation (double x, double x0, double x1, double y0, double y1)
 
double Marmot::Math::exp (double x)
 
int Marmot::Math::getExponentPowerTen (const double x)
 
constexpr double Marmot::Math::radToDeg (const double alpha)
 
constexpr double Marmot::Math::degToRad (const double alpha)
 
constexpr double Marmot::Math::macauly (double scalar)
 
constexpr int Marmot::Math::heaviside (double scalar)
 
template<typename T >
constexpr T Marmot::Math::sgn (T val)
 
double Marmot::Math::makeReal (const double &value)
 
double Marmot::Math::makeReal (const std::complex< double > &value)
 
double Marmot::Math::makeReal (const autodiff::real &value)
 
template<typename T , typename G >
double Marmot::Math::makeReal (const autodiff::detail::Dual< T, G > &number)
 
template<int nRows, int nCols>
Eigen::Matrix< double, nRows, nCols > Marmot::Math::macaulyMatrix (const Eigen::Matrix< double, nRows, nCols > &mat)
 
template<typename functionType , typename yType , typename... Args>
yType Marmot::Math::explicitEuler (yType yN, const double dt, functionType fRate, Args &&... fRateArgs)
 
template<int ySize, typename functionType , typename... Args>
Eigen::Matrix< double, ySize, 1 > Marmot::Math::semiImplicitEuler (Eigen::Matrix< double, ySize, 1 > yN, const double dt, functionType fRate, Args &&... fRateArgs)
 
template<int nRows, int nCols, typename functionType >
Eigen::Matrix< double, nRows, nCols > Marmot::Math::centralDiff (functionType f, const Eigen::Matrix< double, nCols, 1 > &X)
 
template<typename functionType , typename yType , typename... Args>
yType Marmot::Math::explicitEulerRichardson (yType yN, const double dt, functionType fRate, Args &&... fRateArgs)
 
template<int ySize, typename functionType , typename... Args>
std::tuple< Eigen::Matrix< double, ySize, 1 >, double > Marmot::Math::explicitEulerRichardsonWithErrorEstimator (Eigen::Matrix< double, ySize, 1 > yN, const double dt, const double TOL, functionType fRate, Args &&... fRateArgs)
 
Matrix3d Marmot::Math::directionCosines (const Matrix3d &transformedCoordinateSystem)
 
Matrix3d Marmot::Math::orthonormalCoordinateSystem (Vector3d &normalVector)