Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Damage plasticity model #320

Merged
merged 12 commits into from
Feb 24, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions doc/content/bib/blackbear.bib
Original file line number Diff line number Diff line change
Expand Up @@ -244,3 +244,50 @@ @article{poyet2009temperature
year={2009},
publisher={Elsevier}
}

@article{lee1998plastic,
title={Plastic-damage model for cyclic loading of concrete structures},
author={Lee, Jeeho and Fenves, Gregory L},
journal={Journal of engineering mechanics},
volume={124},
number={8},
pages={892--900},
year={1998},
publisher={American Society of Civil Engineers}
}

@phdthesis{lee1996theory,
title={Theory and implementation of plastic-damage model for concrete structures under cyclic and dynamic loading},
author={Lee, Jeeho},
year={1996},
school={University of California, Berkeley}
}

@article{wilkins2020method,
title = {A method for smoothing multiple yield functions},
author = {Andy Wilkins and Benjamin W. Spencer and Amit Jain and Bora Gencturk},
year = {2020},
journal = {International Journal for Numerical Methods in Engineering},
volume = {121},
number = {3},
pages = {434--449},
doi = {10.1002/nme.6215}
}

@article{lubliner1989plastic,
title={A plastic-damage model for concrete},
author={Lubliner, Jacob and Oliver, Javier and Oller, Sand and Onate, EJIJos},
journal={International Journal of solids and structures},
volume={25},
number={3},
pages={299--326},
year={1989},
publisher={Elsevier}
}

@article{krabbenhoft2002basic,
title={Basic computational plasticity},
author={Krabbenh{\o}ft, KRISTIAN},
journal={University of Denmark},
year={2002}
}
Binary file added doc/content/media/Return_mapping_flow_chart.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Compute Multiple Inelastic Damage Stress

!syntax description /Materials/ComputeMultipleInelasticDamageStress

## Description

`ComputeMultipleInelasticDamageStress` is a class based on `ComputeMultipleInelasticStress`
that is designed specifically to be used with [DamagePlasticityStressUpdate](DamagePlasticityStressUpdate.md).
The main difference between this class and the standard `ComputeMultipleInelasticStress` class is that
it makes some modifications to both the current and old stress to account for the damage in a way that
is appropriate for the damaged plasticity model. It divides the old stress passed to the plasticity model
by $(1-D)$, and multiplies the new stress by $(1-D)$, where $D$ is the damage index.

This ComputeMultipleInelasticStress is to be used with (/DamagePlasticityStressUpdate.md).
## Example Input Files

The input settings for the inelastic material model is as follows

!listing test/tests/damage_plasticity_model/uniaxial_test.i block=Materials/stress

!syntax parameters /Materials/ComputeMultipleInelasticDamageStress

!syntax inputs /Materials/ComputeMultipleInelasticDamageStress

!syntax children /Materials/ComputeMultipleInelasticDamageStress

!bibtex bibliography
346 changes: 346 additions & 0 deletions doc/content/source/materials/DamagePlasticityStressUpdate.md

Large diffs are not rendered by default.

45 changes: 45 additions & 0 deletions include/materials/ComputeMultipleInelasticDamageStress.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/****************************************************************/
/* DO NOT MODIFY THIS HEADER */
/* BlackBear */
/* */
/* (c) 2017 Battelle Energy Alliance, LLC */
/* ALL RIGHTS RESERVED */
/* */
/* Prepared by Battelle Energy Alliance, LLC */
/* Under Contract No. DE-AC07-05ID14517 */
/* With the U. S. Department of Energy */
/* */
/* See COPYRIGHT for full restrictions */
/****************************************************************/

#pragma once

#include "ComputeMultipleInelasticStress.h"

/**
* This ComputeMultipleInelasticStress is to be used with DamagePlasticityStressUpdate
*/
class ComputeMultipleInelasticDamageStress : public ComputeMultipleInelasticStress
{
public:
static InputParameters validParams();
ComputeMultipleInelasticDamageStress(const InputParameters & parameters);
virtual void initialSetup() override;

protected:
/// damage parameter for DamagePlasticityStressUpdate model
const MaterialProperty<Real> & _D;
const MaterialProperty<Real> & _D_old;

virtual void computeQpJacobianMult() override;

virtual void computeAdmissibleState(unsigned model_number,
RankTwoTensor & elastic_strain_increment,
RankTwoTensor & inelastic_strain_increment,
RankFourTensor & consistent_tangent_operator) override;

virtual void
updateQpStateSingleModel(unsigned model_number,
RankTwoTensor & elastic_strain_increment,
RankTwoTensor & combined_inelastic_strain_increment) override;
};
Loading