https://mooseframework.inl.gov
LinearViscoelasticStressUpdate.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "StressUpdateBase.h"
14 
26 {
27 public:
29 
31 
37 
38  virtual void updateState(RankTwoTensor & strain_increment,
39  RankTwoTensor & inelastic_strain_increment,
40  const RankTwoTensor & rotation_increment,
41  RankTwoTensor & stress_new,
42  const RankTwoTensor & stress_old,
44  const RankTwoTensor & elastic_strain_old,
45  bool compute_full_tangent_operator,
46  RankFourTensor & tangent_operator) override;
47 
49  virtual void propagateQpStatefulProperties() override;
50 
51  virtual bool requiresIsotropicTensor() override { return false; }
52 
53 protected:
54  virtual void initQpStatefulProperties() override;
55 
60 
67 };
LinearViscoelasticStressUpdate(const InputParameters &parameters)
const MaterialProperty< RankFourTensor > & _apparent_elasticity_tensor
Apparent elasticity tensor (extracted from a LinearViscoelasticityBase object)
virtual bool requiresIsotropicTensor() override
Does the model require the elasticity tensor to be isotropic?
const MaterialProperty< RankTwoTensor > & _creep_strain_old
virtual void updateState(GR2 &strain_increment, GR2 &inelastic_strain_increment, const GR2 &rotation_increment, GR2 &stress_new, const RankTwoTensor &stress_old, const GR4 &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator=false, RankFourTensor &tangent_operator=StressUpdateBaseTempl< is_ad >::_identityTensor)
Given a strain increment that results in a trial stress, perform some procedure (such as an iterative...
Real elasticity_tensor(unsigned int i, unsigned int j, unsigned int k, unsigned int l)
virtual void updateState(RankTwoTensor &strain_increment, RankTwoTensor &inelastic_strain_increment, const RankTwoTensor &rotation_increment, RankTwoTensor &stress_new, const RankTwoTensor &stress_old, const RankFourTensor &elasticity_tensor, const RankTwoTensor &elastic_strain_old, bool compute_full_tangent_operator, RankFourTensor &tangent_operator) override
const MaterialProperty< RankFourTensor > & _elasticity_tensor_inv
Instantaneous compliance tensor (extracted from a LinearViscoelasticityBase object) ...
This class computes a creep strain increment associated with a linear viscoelastic model contained in...
StressUpdateBase is a material that is not called by MOOSE because of the compute=false flag set in t...
virtual void propagateQpStatefulProperties() override
Reimplemented from StressUpdateBase.
const MaterialProperty< RankTwoTensor > & _apparent_creep_strain
Apparent creep strain (extracted from a LinearViscoelasticityBase object)
MaterialProperty< RankTwoTensor > & _creep_strain
Creep strain.
const InputParameters & parameters() const