nutofem / nuto

NuTo - yet another finite element library
https://nuto.readthedocs.io
Boost Software License 1.0
17 stars 5 forks source link

Implement LinearElasticDamage for PLANE_STRESS #237

Closed TTitscher closed 6 years ago

TTitscher commented 6 years ago

The class performs a deviatoric/volumetric split of the stresses and strains for its calculations. This was not (super) trivial for PLANE_STRESS conditions since the Kronecker delta (named D or mD) for this situation differs. For PLANE_STRAIN you can write

eps_volumetric = 1/3 D.transpose() * strain
eps_deviatoric = strain - D * eps_volumetric
with
D.transpose() = [ 1  1  0 ] (in 2D PLANE_STRAIN)

which is, with trivial modifications, also valid for 1D and 3D.

For PLANE_STRAIN, we have to introduce a second Kronecker D2, namely:

eps_volumetric = 1/3 D2.transpose() * strain
eps_deviatoric = strain - D * eps_volumetric
with
D.transpose() = [ 1  1  0 ] (in 2D, always)
D2 = (1 + nu/(nu - 1)) * D (only for 2D PLANE_STRESS)

I am not :100: % sure if this is correct. But the tests

run smoothly.

codecov[bot] commented 6 years ago

Codecov Report

Merging #237 into PDE_reviewed will increase coverage by 0.01%. The diff coverage is 100%.

Impacted file tree graph

@@               Coverage Diff                @@
##           PDE_reviewed     #237      +/-   ##
================================================
+ Coverage         84.43%   84.45%   +0.01%     
================================================
  Files               296      296              
  Lines             10749    10754       +5     
================================================
+ Hits               9076     9082       +6     
+ Misses             1673     1672       -1
Flag Coverage Δ
#integrationtests 62.34% <95.45%> (ø) :arrow_up:
#unittests 87.91% <100%> (+0.01%) :arrow_up:
Impacted Files Coverage Δ
nuto/mechanics/tools/AdaptiveSolve.h 100% <ø> (ø) :arrow_up:
...hanics/constitutive/damageLaws/SofteningMaterial.h 100% <ø> (ø) :arrow_up:
nuto/mechanics/tools/AdaptiveSolve.cpp 92.3% <100%> (+0.41%) :arrow_up:
...est/mechanics/constitutive/LinearElasticDamage.cpp 100% <100%> (ø) :arrow_up:
nuto/mechanics/constitutive/LinearElasticDamage.h 100% <100%> (+2.56%) :arrow_up:
test/mechanics/integrands/GradientDamage.cpp 100% <0%> (ø) :arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 783fbea...020a72f. Read the comment docs.