MarmotPronySeries.h
Go to the documentation of this file.
1 /* ---------------------------------------------------------------------
2  * _
3  * _ __ ___ __ _ _ __ _ __ ___ ___ | |_
4  * | '_ ` _ \ / _` | '__| '_ ` _ \ / _ \| __|
5  * | | | | | | (_| | | | | | | | | (_) | |_
6  * |_| |_| |_|\__,_|_| |_| |_| |_|\___/ \__|
7  *
8  * Unit of Strength of Materials and Structural Analysis
9  * University of Innsbruck,
10  * 2020 - today
11  *
12  * festigkeitslehre@uibk.ac.at
13  *
14  * Alexander Dummer alexander.dummer@uibk.ac.at
15  *
16  * This file is part of the MAteRialMOdellingToolbox (marmot).
17  *
18  * This library is free software; you can redistribute it and/or
19  * modify it under the terms of the GNU Lesser General Public
20  * License as published by the Free Software Foundation; either
21  * version 2.1 of the License, or (at your option) any later version.
22  *
23  * The full text of the license can be found in the file LICENSE.md at
24  * the top level directory of marmot.
25  * ---------------------------------------------------------------------
26  */
27 
28 #pragma once
29 #include "Marmot/MarmotTypedefs.h"
30 
31 namespace Marmot::Materials {
32 
33  namespace PronySeries {
34  using namespace Marmot;
35  using namespace Eigen;
36 
37  struct Properties {
38  size_t nPronyTerms;
40  Matrix< double, 6, -1 > pronyStiffnesses;
41  Matrix< double, 6, -1 > pronyRelaxationTimes;
42  };
43 
44  typedef Eigen::Matrix< double, 6, Eigen::Dynamic > StateVarMatrix;
45  typedef Eigen::Map< StateVarMatrix > mapStateVarMatrix;
46 
47  void evaluatePronySeries( const Properties& props,
48  Vector6d& stress,
49  Matrix6d& stiffness,
50  Eigen::Ref< mapStateVarMatrix > stateVars,
51  const Vector6d& dStrain,
52  const double dT,
53  const bool updateStateVars = false );
54 
55  void updateStateVars( const Properties& props,
56  Eigen::Ref< mapStateVarMatrix > stateVars,
57  const Vector6d& dStrain,
58  const double dT );
59 
60  } // namespace PronySeries
61 } // namespace Marmot::Materials
Marmot::Materials::PronySeries::evaluatePronySeries
void evaluatePronySeries(const Properties &props, Vector6d &stress, Matrix6d &stiffness, Eigen::Ref< mapStateVarMatrix > stateVars, const Vector6d &dStrain, const double dT, const bool updateStateVars=false)
Definition: MarmotPronySeries.cpp:10
MarmotTypedefs.h
Marmot::Matrix6d
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: MarmotTypedefs.h:35
Marmot::Materials::PronySeries::Properties
Definition: MarmotPronySeries.h:37
Marmot::Materials
Definition: MarmotKelvinChain.h:34
Marmot::Materials::PronySeries::Properties::nPronyTerms
size_t nPronyTerms
Definition: MarmotPronySeries.h:38
Marmot::Materials::PronySeries::mapStateVarMatrix
Eigen::Map< StateVarMatrix > mapStateVarMatrix
Definition: MarmotPronySeries.h:45
Marmot
This file includes functions needed for calculations with stress and strain tensors written in voigt ...
Definition: MarmotTesting.h:32
Marmot::Materials::PronySeries::Properties::pronyRelaxationTimes
Matrix< double, 6, -1 > pronyRelaxationTimes
Definition: MarmotPronySeries.h:41
Marmot::Vector6d
Eigen::Matrix< double, 6, 1 > Vector6d
Definition: MarmotTypedefs.h:43
Marmot::Materials::PronySeries::Properties::ultimateStiffnessMatrix
Matrix6d ultimateStiffnessMatrix
Definition: MarmotPronySeries.h:39
Marmot::Materials::PronySeries::updateStateVars
void updateStateVars(const Properties &props, Eigen::Ref< mapStateVarMatrix > stateVars, const Vector6d &dStrain, const double dT)
Definition: MarmotPronySeries.cpp:53
Marmot::Materials::PronySeries::StateVarMatrix
Eigen::Matrix< double, 6, Eigen::Dynamic > StateVarMatrix
Definition: MarmotPronySeries.h:44
Marmot::Materials::PronySeries::Properties::pronyStiffnesses
Matrix< double, 6, -1 > pronyStiffnesses
Definition: MarmotPronySeries.h:40