https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MultiPlasticityLinearSystem.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
13
120{
121public:
123
124 MultiPlasticityLinearSystem(const MooseObject * moose_object);
125
126protected:
129
132
148 virtual void calculateConstraints(const RankTwoTensor & stress,
149 const std::vector<Real> & intnl_old,
150 const std::vector<Real> & intnl,
151 const std::vector<Real> & pm,
152 const RankTwoTensor & delta_dp,
153 std::vector<Real> & f,
154 std::vector<RankTwoTensor> & r,
155 RankTwoTensor & epp,
156 std::vector<Real> & ic,
157 const std::vector<bool> & active);
158
184 virtual void calculateRHS(const RankTwoTensor & stress,
185 const std::vector<Real> & intnl_old,
186 const std::vector<Real> & intnl,
187 const std::vector<Real> & pm,
188 const RankTwoTensor & delta_dp,
189 std::vector<Real> & rhs,
190 const std::vector<bool> & active,
191 bool eliminate_ld,
192 std::vector<bool> & deactivated_due_to_ld);
193
197 virtual void calculateJacobian(const RankTwoTensor & stress,
198 const std::vector<Real> & intnl,
199 const std::vector<Real> & pm,
200 const RankFourTensor & E_inv,
201 const std::vector<bool> & active,
202 const std::vector<bool> & deactivated_due_to_ld,
203 std::vector<std::vector<Real>> & jac);
204
222 virtual void nrStep(const RankTwoTensor & stress,
223 const std::vector<Real> & intnl_old,
224 const std::vector<Real> & intnl,
225 const std::vector<Real> & pm,
226 const RankFourTensor & E_inv,
227 const RankTwoTensor & delta_dp,
228 RankTwoTensor & dstress,
229 std::vector<Real> & dpm,
230 std::vector<Real> & dintnl,
231 const std::vector<bool> & active,
232 std::vector<bool> & deactivated_due_to_ld);
233
234private:
249 virtual int singularValuesOfR(const std::vector<RankTwoTensor> & r, std::vector<Real> & s);
250
265 virtual void eliminateLinearDependence(const RankTwoTensor & stress,
266 const std::vector<Real> & intnl,
267 const std::vector<Real> & f,
268 const std::vector<RankTwoTensor> & r,
269 const std::vector<bool> & active,
270 std::vector<bool> & deactivated_due_to_ld);
271};
Real f(Real x)
Test function for Brents method.
MultiPlasticityLinearSystem computes the linear system and handles linear-dependence removal for use ...
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),...
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)
virtual int singularValuesOfR(const std::vector< RankTwoTensor > &r, std::vector< Real > &s)
Performs a singular-value decomposition of r and returns the singular values.
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.
Real _svd_tol
Tolerance on the minimum ratio of singular values before flow-directions are deemed linearly dependen...
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.
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...
Real _min_f_tol
Minimum value of the _f_tol parameters for the Yield Function User Objects.
MultiPlasticityRawComponentAssembler holds and computes yield functions, flow directions,...