nutofem / nuto

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

Pde know your dofs #209

Closed TTitscher closed 6 years ago

TTitscher commented 6 years ago

I had a bug in my custom examples regarding multiple dof types in combination with integrands that do not have all of them. This causes invalid reads during assemby:

Gradient damage has two dof types, d and eeq. NeumannBc has only d. We previously try to access NeumannBc::Gradient[eeq]. This is now solved by asking the gradient what his dof types are and assembe an intersection of those and the required ones.

So I added std::vector<DofTypes> DofMatrix/Vector::.DofTypes() and fixed the assembler. Now things got a bit out of control. Some reasoning:

codecov[bot] commented 6 years ago

Codecov Report

Merging #209 into PDE_reviewed will increase coverage by 0.89%. The diff coverage is 100%.

Impacted file tree graph

@@               Coverage Diff                @@
##           PDE_reviewed     #209      +/-   ##
================================================
+ Coverage         67.23%   68.13%   +0.89%     
================================================
  Files               316      315       -1     
  Lines             12131    12241     +110     
================================================
+ Hits               8156     8340     +184     
+ Misses             3975     3901      -74
Impacted Files Coverage Δ
...s/integrationtypes/IntegrationType2D3NGauss3Ip.cpp 0% <ø> (ø) :arrow_up:
...ics/integrationtypes/IntegrationType2D3NGauss3Ip.h 0% <ø> (ø) :arrow_up:
src/visualize/PostProcess.h 100% <ø> (ø) :arrow_up:
...c/mechanics/integrationtypes/IntegrationTypeBase.h 100% <ø> (ø) :arrow_up:
src/mechanics/dofs/DofVector.h 100% <100%> (ø) :arrow_up:
src/visualize/VoronoiGeometries.cpp 97.65% <100%> (+16.47%) :arrow_up:
src/visualize/HandlerInterface.h 100% <100%> (ø) :arrow_up:
test/mechanics/dofs/DofVector.cpp 100% <100%> (ø) :arrow_up:
src/visualize/PostProcess.cpp 92.5% <100%> (+0.29%) :arrow_up:
src/mechanics/dofs/DofMatrixContainer.h 100% <100%> (ø) :arrow_up:
... and 12 more

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 81b3248...71c4dd5. Read the comment docs.