NuTo
Numerics Tool
DamageLawExponential.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <cmath>
4 #include "DamageLaw.h"
5 #include "SofteningMaterial.h"
6 
7 namespace NuTo
8 {
9 namespace Constitutive
10 {
14 
24 {
25 public:
26  DamageLawExponential(double kappa0, double beta, double alpha)
27  : mKappa0(kappa0)
28  , mBeta(beta)
29  , mAlpha(alpha)
30  {
31  }
33  : mKappa0(m.ft / m.E)
34  , mBeta(m.ft / m.gf)
35  , mAlpha(1 - m.fMin / m.ft)
36  {
37  }
38 
39  double Damage(double kappa) const override
40  {
41  if (kappa < mKappa0)
42  return 0.;
43  return 1 - mKappa0 / kappa * (1 - mAlpha + mAlpha * std::exp(mBeta * (mKappa0 - kappa)));
44  }
45 
46  double Derivative(double kappa) const override
47  {
48  if (kappa < mKappa0)
49  return 0.;
50  return mKappa0 / kappa *
51  ((1 / kappa + mBeta) * mAlpha * std::exp(mBeta * (mKappa0 - kappa)) + (1 - mAlpha) / kappa);
52  }
53 
54 private:
55  double mKappa0;
56  double mBeta;
57  double mAlpha;
58 };
59 } /* Constitutive */
60 } /* NuTo */
DamageLawExponential(double kappa0, double beta, double alpha)
Definition: DamageLawExponential.h:26
Common material parameters for softening materials.
Definition: SofteningMaterial.h:12
DamageLawExponential(Material::Softening m)
Definition: DamageLawExponential.h:32
float alpha
Definition: DamageBar.py:18
exponential damage omega Peerlings, R., De Borst, R., Brekelmans, W., Geers, M.
Definition: DamageLawExponential.h:23
double Derivative(double kappa) const override
calculates the derivative of the damage with respect to the history variable kappa ...
Definition: DamageLawExponential.h:46
Definition: Exception.h:6
const double E
Definition: LinearElasticDamageBenchmark.cpp:6
interface for common damage laws
Definition: DamageLaw.h:9
double Damage(double kappa) const override
calculates the damage for a given history variable kappa
Definition: DamageLawExponential.h:39