MarmotSolidification.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
30 
31 namespace Marmot::Materials {
32  namespace SolidificationTheory {
33 
35  struct Parameters {
36  double q1;
37  double q2;
38  double q3;
39  double q4;
40  double n = 0.1;
41  double m = 0.5;
42  double lambda0 = 1.;
43  };
44 
49  double E0;
52  };
53 
56  double elastic = 0.;
57  double viscoelastic = 0.;
58  double flow = 0.;
59  };
60 
62  struct Result {
65  };
66 
68  double tStartDays,
69  double dTimeDays,
70  double amplificationFactor,
71  const Marmot::Matrix6d& flowUnitCompliance,
72  const Marmot::Vector6d& stressOld,
73  const Parameters& parameters,
74  const KelvinChainProperties& kelvinChainProperties,
75  const Eigen::Ref< const KelvinChain::StateVarMatrix >& kelvinStateVars );
76 
78  double solidifiedVolume( double timeInDays, Parameters params );
79 
81  double computeZerothElasticModul( double tauMin, double n, int order );
82 
84  template < typename T >
85  T phi( T xi, Parameters params )
86  {
87  return log( 1. + pow( xi, params.n ) );
88  }
89 
90  } // namespace SolidificationTheory
91 } // namespace Marmot::Materials
MarmotKelvinChain.h
Marmot::Materials::SolidificationTheory::KelvinChainProperties::retardationTimes
KelvinChain::Properties retardationTimes
Definition: MarmotSolidification.h:51
Marmot::Materials::SolidificationTheory::Parameters::q3
double q3
Definition: MarmotSolidification.h:38
Marmot::Materials::SolidificationTheory::Result::complianceComponents
UniaxialComplianceComponents complianceComponents
Definition: MarmotSolidification.h:64
Marmot::Matrix6d
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: MarmotTypedefs.h:35
Marmot::Materials
Definition: MarmotKelvinChain.h:34
Marmot::Materials::SolidificationTheory::KelvinChainProperties::E0
double E0
Definition: MarmotSolidification.h:49
Marmot::Materials::SolidificationTheory::phi
T phi(T xi, Parameters params)
compliance of the hardened constituent
Definition: MarmotSolidification.h:85
Marmot::Materials::SolidificationTheory::Parameters
material parameters for Solidification Theory
Definition: MarmotSolidification.h:35
Marmot::Materials::SolidificationTheory::computeZerothElasticModul
double computeZerothElasticModul(double tauMin, double n, int order)
to Solidification Theory
Definition: MarmotSolidification.cpp:12
Marmot::Materials::SolidificationTheory::UniaxialComplianceComponents::flow
double flow
Definition: MarmotSolidification.h:58
Marmot::Materials::SolidificationTheory::UniaxialComplianceComponents
uniaxial compliance components of the Solidification Theory
Definition: MarmotSolidification.h:55
Marmot::Materials::SolidificationTheory::Parameters::q2
double q2
Definition: MarmotSolidification.h:37
Marmot::Materials::KelvinChain::Properties
Eigen::VectorXd Properties
Definition: MarmotKelvinChain.h:38
Marmot::Materials::SolidificationTheory::Result
results of the Solidification Theory for a certain time step
Definition: MarmotSolidification.h:62
Marmot::Materials::SolidificationTheory::Parameters::n
double n
Definition: MarmotSolidification.h:40
Marmot::Vector6d
Eigen::Matrix< double, 6, 1 > Vector6d
Definition: MarmotTypedefs.h:43
Marmot::Materials::SolidificationTheory::computeCreepStrainIncrementAndComplianceComponents
Result computeCreepStrainIncrementAndComplianceComponents(double tStartDays, double dTimeDays, double amplificationFactor, const Marmot::Matrix6d &flowUnitCompliance, const Marmot::Vector6d &stressOld, const Parameters &parameters, const KelvinChainProperties &kelvinChainProperties, const Eigen::Ref< const KelvinChain::StateVarMatrix > &kelvinStateVars)
Definition: MarmotSolidification.cpp:29
Marmot::Materials::SolidificationTheory::Parameters::lambda0
double lambda0
Definition: MarmotSolidification.h:42
Marmot::Materials::SolidificationTheory::Result::creepStrainIncrement
Marmot::Vector6d creepStrainIncrement
Definition: MarmotSolidification.h:63
Marmot::Materials::SolidificationTheory::UniaxialComplianceComponents::elastic
double elastic
Definition: MarmotSolidification.h:56
Marmot::Materials::SolidificationTheory::solidifiedVolume
double solidifiedVolume(double timeInDays, Parameters params)
solidified volume function according to Solidification Theory
Definition: MarmotSolidification.cpp:7
Marmot::Materials::SolidificationTheory::KelvinChainProperties
properties of the Kelvin chain for approximating the viscoelastic compliance of the Solidification Th...
Definition: MarmotSolidification.h:48
Marmot::FastorIndices::m
Fastor::Index< m_ > m
Definition: MarmotFastorTensorBasics.h:210
Marmot::Materials::SolidificationTheory::Parameters::q4
double q4
Definition: MarmotSolidification.h:39
Marmot::Materials::SolidificationTheory::Parameters::q1
double q1
Definition: MarmotSolidification.h:36
Marmot::Materials::SolidificationTheory::KelvinChainProperties::elasticModuli
KelvinChain::Properties elasticModuli
Definition: MarmotSolidification.h:50
Marmot::Materials::SolidificationTheory::UniaxialComplianceComponents::viscoelastic
double viscoelastic
Definition: MarmotSolidification.h:57