Go to the documentation of this file.
30 #include "autodiff/forward/real.hpp"
35 namespace KelvinChain {
58 autodiff::Real< k, double > tau_( tau * k );
61 val *= autodiff::derivatives( phi, autodiff::along( 1. ), autodiff::at( tau_ ) )[k];
69 Properties elasticModuli( retardationTimes.size() );
70 double spacing = log( retardationTimes( 1 ) / retardationTimes( 0 ) );
72 for (
int i = 0; i < retardationTimes.size(); i++ ) {
73 double tau = retardationTimes( i );
74 elasticModuli( i ) = 1. / ( spacing * evaluatePostWidderFormula< k >( phi, tau ) );
85 Eigen::Ref< StateVarMatrix > stateVars,
93 double& uniaxialCompliance,
95 const double factor );
double evaluatePostWidderFormula(std::function< autodiff::Real< k, double >(autodiff::Real< k, double >) > phi, double tau)
Definition: MarmotKelvinChain.h:54
void evaluateKelvinChain(const double dT, Properties elasticModuli, Properties retardationTimes, StateVarMatrix stateVars, double &uniaxialCompliance, Marmot::Vector6d &dStrain, const double factor)
Definition: MarmotKelvinChain.cpp:18
void computeLambdaAndBeta(double dT, double tau, double &lambda, double &beta)
Definition: MarmotKelvinChain.cpp:57
Eigen::Map< StateVarMatrix > mapStateVarMatrix
Definition: MarmotKelvinChain.h:41
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: MarmotTypedefs.h:35
Definition: MarmotKelvinChain.h:33
Eigen::Map< Properties > mapProperties
Definition: MarmotKelvinChain.h:38
void updateStateVarMatrix(const double dT, Properties elasticModuli, Properties retardationTimes, Eigen::Ref< StateVarMatrix > stateVars, const Marmot::Vector6d &dStress, const Marmot::Matrix6d &unitComplianceMatrix)
Properties generateRetardationTimes(int n, double min, double spacing)
Definition: MarmotKelvinChain.cpp:10
Eigen::Matrix< double, 6, Eigen::Dynamic > StateVarMatrix
Definition: MarmotKelvinChain.h:40
Eigen::VectorXd Properties
Definition: MarmotKelvinChain.h:37
Eigen::Matrix< double, 6, 1 > Vector6d
Definition: MarmotTypedefs.h:43
@ value
Definition: MarmotKelvinChain.h:45
Definition: MarmotKelvinChain.h:44
Properties computeElasticModuli(std::function< autodiff::Real< k, double >(autodiff::Real< k, double >) > phi, Properties retardationTimes)
Definition: MarmotKelvinChain.h:66
NSized N(double xi)
Definition: MarmotFiniteElement1D.cpp:15