Namespaces | Typedefs | Functions
MarmotAutomaticDifferentiationForFastor.h File Reference
#include "Fastor/Fastor.h"
#include "Marmot/MarmotAutomaticDifferentiation.h"
#include "Marmot/MarmotFastorTensorBasics.h"
#include "autodiff/forward/dual.hpp"
#include "autodiff/forward/dual/eigen.hpp"
#include <autodiff/forward/dual/dual.hpp>
#include <functional>
Include dependency graph for MarmotAutomaticDifferentiationForFastor.h:

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::AutomaticDifferentiation
 
 Marmot::AutomaticDifferentiation::SecondOrder
 

Typedefs

template<size_t... Rest>
using Marmot::AutomaticDifferentiation::tensor_to_scalar_function_type = std::function< dual(const Fastor::Tensor< dual, Rest... > &T) >
 
template<size_t order, size_t... Rest>
using Marmot::AutomaticDifferentiation::tensor_to_scalar_function_type_arbitrary_dual_order = std::function< HigherOrderDual< order, double >(const Fastor::Tensor< HigherOrderDual< order, double >, Rest... > &T) >
 
template<size_t dim>
using Marmot::AutomaticDifferentiation::SecondOrder::tensor_to_scalar_function_type = std::function< dual2nd(const Fastor::Tensor< dual2nd, dim, dim > &T) >
 
template<size_t dim>
using Marmot::AutomaticDifferentiation::SecondOrder::tensor_and_scalar_to_scalar_function_type = std::function< dual2nd(const Fastor::Tensor< dual2nd, dim, dim > &T, const dual2nd scalar) >
 

Functions

template<size_t order, size_t... Rest>
Fastor::Tensor< HigherOrderDual< order+1, double >, Rest... > Marmot::AutomaticDifferentiation::increaseDualOrderWithShift (const Fastor::Tensor< HigherOrderDual< order, double >, Rest... > &in)
 
template<size_t... Rest>
Fastor::Tensor< double, Rest... > Marmot::AutomaticDifferentiation::df_dT (const tensor_to_scalar_function_type< Rest... > &f, const Fastor::Tensor< double, Rest... > &T)
 
template<size_t order, size_t... Rest>
std::pair< HigherOrderDual< order, double >, Fastor::Tensor< HigherOrderDual< order, double >, Rest... > > Marmot::AutomaticDifferentiation::df_dT (const tensor_to_scalar_function_type_arbitrary_dual_order< order+1, Rest... > &f, const Fastor::Tensor< HigherOrderDual< order, double >, Rest... > &T)
 
template<size_t... RestF, size_t... RestT>
std::pair< Fastor::Tensor< double, RestF... >, Fastor::Tensor< double, RestF..., RestT... > > Marmot::AutomaticDifferentiation::dF_dT (std::function< Fastor::Tensor< dual, RestF... >(const Fastor::Tensor< dual, RestT... > &) > &F, const Fastor::Tensor< double, RestT... > &T)
 
template<size_t dim>
std::tuple< double, Fastor::Tensor< double, dim, dim >, Fastor::Tensor< double, dim, dim, dim, dim > > Marmot::AutomaticDifferentiation::SecondOrder::d2f_dT2 (const tensor_to_scalar_function_type< dim > &F, const Fastor::Tensor< double, dim, dim > &T)
 
template<size_t dim>
Fastor::Tensor< double, dim, dim > Marmot::AutomaticDifferentiation::SecondOrder::d2f_dTensor_dScalar (const tensor_and_scalar_to_scalar_function_type< dim > &F, const Fastor::Tensor< double, dim, dim > &T, const double scalar)