Namespaces | Typedefs | Functions | Variables
MarmotNumericalDifferentiation.h File Reference
#include "Marmot/MarmotMath.h"
#include "Marmot/MarmotTypedefs.h"
#include <functional>
Include dependency graph for MarmotNumericalDifferentiation.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::NumericalAlgorithms
 
 Marmot::NumericalAlgorithms::Differentiation
 
 Marmot::NumericalAlgorithms::Differentiation::Complex
 

Typedefs

using Marmot::NumericalAlgorithms::Differentiation::scalar_to_scalar_function_type = std::function< double(const double x) >
 
using Marmot::NumericalAlgorithms::Differentiation::vector_to_vector_function_type = std::function< Eigen::VectorXd(const Eigen::VectorXd &X) >
 
using Marmot::NumericalAlgorithms::Differentiation::Complex::scalar_to_scalar_function_type = std::function< complexDouble(const complexDouble x) >
 
using Marmot::NumericalAlgorithms::Differentiation::Complex::vector_to_vector_function_type = std::function< Eigen::VectorXcd(const Eigen::VectorXcd &X) >
 

Functions

double Marmot::NumericalAlgorithms::Differentiation::forwardDifference (const scalar_to_scalar_function_type &f, const double x)
 
double Marmot::NumericalAlgorithms::Differentiation::centralDifference (const scalar_to_scalar_function_type &f, const double x)
 
Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::forwardDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::centralDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
double Marmot::NumericalAlgorithms::Differentiation::Complex::forwardDifference (const scalar_to_scalar_function_type &f, const double x)
 
std::tuple< Eigen::VectorXd, Eigen::MatrixXd > Marmot::NumericalAlgorithms::Differentiation::Complex::forwardDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::centralDifference (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 
Eigen::MatrixXd Marmot::NumericalAlgorithms::Differentiation::Complex::fourthOrderAccurateDerivative (const vector_to_vector_function_type &F, const Eigen::VectorXd &X)
 

Variables

static const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::imaginaryUnit = { 0, 1 }
 
static const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::complexUnit = { 1, 1 }
 
static const std::complex< double > Marmot::NumericalAlgorithms::Differentiation::Complex::i_ = Marmot::Constants::sqrt2 / 2. * complexUnit