www.mooseframework.org
MultiPlasticityLinearSystem.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
13 
15 
16 template <>
18 
125 {
126 public:
127  static InputParameters validParams();
128 
129  MultiPlasticityLinearSystem(const MooseObject * moose_object);
130 
131 protected:
133  Real _svd_tol;
134 
137 
153  virtual void calculateConstraints(const RankTwoTensor & stress,
154  const std::vector<Real> & intnl_old,
155  const std::vector<Real> & intnl,
156  const std::vector<Real> & pm,
157  const RankTwoTensor & delta_dp,
158  std::vector<Real> & f,
159  std::vector<RankTwoTensor> & r,
160  RankTwoTensor & epp,
161  std::vector<Real> & ic,
162  const std::vector<bool> & active);
163 
189  virtual void calculateRHS(const RankTwoTensor & stress,
190  const std::vector<Real> & intnl_old,
191  const std::vector<Real> & intnl,
192  const std::vector<Real> & pm,
193  const RankTwoTensor & delta_dp,
194  std::vector<Real> & rhs,
195  const std::vector<bool> & active,
196  bool eliminate_ld,
197  std::vector<bool> & deactivated_due_to_ld);
198 
202  virtual void calculateJacobian(const RankTwoTensor & stress,
203  const std::vector<Real> & intnl,
204  const std::vector<Real> & pm,
205  const RankFourTensor & E_inv,
206  const std::vector<bool> & active,
207  const std::vector<bool> & deactivated_due_to_ld,
208  std::vector<std::vector<Real>> & jac);
209 
227  virtual void nrStep(const RankTwoTensor & stress,
228  const std::vector<Real> & intnl_old,
229  const std::vector<Real> & intnl,
230  const std::vector<Real> & pm,
231  const RankFourTensor & E_inv,
232  const RankTwoTensor & delta_dp,
233  RankTwoTensor & dstress,
234  std::vector<Real> & dpm,
235  std::vector<Real> & dintnl,
236  const std::vector<bool> & active,
237  std::vector<bool> & deactivated_due_to_ld);
238 
239 private:
254  virtual int singularValuesOfR(const std::vector<RankTwoTensor> & r, std::vector<Real> & s);
255 
270  virtual void eliminateLinearDependence(const RankTwoTensor & stress,
271  const std::vector<Real> & intnl,
272  const std::vector<Real> & f,
273  const std::vector<RankTwoTensor> & r,
274  const std::vector<bool> & active,
275  std::vector<bool> & deactivated_due_to_ld);
276 };
MultiPlasticityLinearSystem::nrStep
virtual void nrStep(const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankFourTensor &E_inv, const RankTwoTensor &delta_dp, RankTwoTensor &dstress, std::vector< Real > &dpm, std::vector< Real > &dintnl, const std::vector< bool > &active, std::vector< bool > &deactivated_due_to_ld)
Performs one Newton-Raphson step.
Definition: MultiPlasticityLinearSystem.C:615
MultiPlasticityLinearSystem::calculateConstraints
virtual void calculateConstraints(const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankTwoTensor &delta_dp, std::vector< Real > &f, std::vector< RankTwoTensor > &r, RankTwoTensor &epp, std::vector< Real > &ic, const std::vector< bool > &active)
The constraints.
Definition: MultiPlasticityLinearSystem.C:228
MultiPlasticityLinearSystem::eliminateLinearDependence
virtual void eliminateLinearDependence(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< Real > &f, const std::vector< RankTwoTensor > &r, const std::vector< bool > &active, std::vector< bool > &deactivated_due_to_ld)
Performs a number of singular-value decompositions to check for linear-dependence of the active direc...
Definition: MultiPlasticityLinearSystem.C:107
MultiPlasticityRawComponentAssembler.h
MultiPlasticityLinearSystem::calculateJacobian
virtual void calculateJacobian(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankFourTensor &E_inv, const std::vector< bool > &active, const std::vector< bool > &deactivated_due_to_ld, std::vector< std::vector< Real >> &jac)
d(rhs)/d(dof)
Definition: MultiPlasticityLinearSystem.C:367
MultiPlasticityLinearSystem::calculateRHS
virtual void calculateRHS(const RankTwoTensor &stress, const std::vector< Real > &intnl_old, const std::vector< Real > &intnl, const std::vector< Real > &pm, const RankTwoTensor &delta_dp, std::vector< Real > &rhs, const std::vector< bool > &active, bool eliminate_ld, std::vector< bool > &deactivated_due_to_ld)
Calculate the RHS which is rhs = -(epp(0,0), epp(1,0), epp(1,1), epp(2,0), epp(2,1),...
Definition: MultiPlasticityLinearSystem.C:288
MultiPlasticityRawComponentAssembler
MultiPlasticityRawComponentAssembler holds and computes yield functions, flow directions,...
Definition: MultiPlasticityRawComponentAssembler.h:44
MultiPlasticityLinearSystem::validParams
static InputParameters validParams()
Definition: MultiPlasticityLinearSystem.C:22
MultiPlasticityLinearSystem
MultiPlasticityLinearSystem computes the linear system and handles linear-dependence removal for use ...
Definition: MultiPlasticityLinearSystem.h:124
MultiPlasticityLinearSystem::MultiPlasticityLinearSystem
MultiPlasticityLinearSystem(const MooseObject *moose_object)
Definition: MultiPlasticityLinearSystem.C:34
RankFourTensorTempl< Real >
validParams< MultiPlasticityLinearSystem >
InputParameters validParams< MultiPlasticityLinearSystem >()
MultiPlasticityLinearSystem::_min_f_tol
Real _min_f_tol
Minimum value of the _f_tol parameters for the Yield Function User Objects.
Definition: MultiPlasticityLinearSystem.h:136
MultiPlasticityLinearSystem::singularValuesOfR
virtual int singularValuesOfR(const std::vector< RankTwoTensor > &r, std::vector< Real > &s)
Performs a singular-value decomposition of r and returns the singular values.
Definition: MultiPlasticityLinearSystem.C:47
RankTwoTensorTempl< Real >
MultiPlasticityLinearSystem::_svd_tol
Real _svd_tol
Tolerance on the minimum ratio of singular values before flow-directions are deemed linearly dependen...
Definition: MultiPlasticityLinearSystem.h:133