Go to the documentation of this file.
18 #include "UserObjectInterface.h"
75 std::vector<const TensorMechanicsPlasticModel *>
_f;
85 const std::vector<Real> & intnl,
86 const std::vector<bool> & active,
87 std::vector<Real> & f);
98 const std::vector<Real> & intnl,
99 const std::vector<bool> & active,
100 std::vector<RankTwoTensor> & df_dstress);
111 const std::vector<Real> & intnl,
112 const std::vector<bool> & active,
113 std::vector<Real> & df_dintnl);
123 const std::vector<Real> & intnl,
124 const std::vector<bool> & active,
125 std::vector<RankTwoTensor> & r);
136 const std::vector<Real> & intnl,
137 const std::vector<bool> & active,
138 std::vector<RankFourTensor> & dr_dstress);
149 const std::vector<Real> & intnl,
150 const std::vector<bool> & active,
151 std::vector<RankTwoTensor> & dr_dintnl);
164 const std::vector<Real> & intnl,
165 const std::vector<bool> & active,
166 std::vector<Real> & h);
178 const std::vector<Real> & intnl,
179 const std::vector<bool> & active,
180 std::vector<RankTwoTensor> & dh_dstress);
193 const std::vector<Real> & intnl,
194 const std::vector<bool> & active,
195 std::vector<Real> & dh_dintnl);
209 const std::vector<Real> & intnl,
211 std::vector<bool> & act);
227 const std::vector<bool> & active,
228 std::vector<unsigned int> & active_surfaces_of_model);
238 const std::vector<bool> & active,
239 std::vector<unsigned int> & active_surfaces);
281 const std::vector<Real> & intnl_old,
283 Real ep_plastic_tolerance,
285 std::vector<Real> & intnl,
286 std::vector<Real> & pm,
287 std::vector<Real> & cumulative_pm,
289 std::vector<Real> & yf,
290 unsigned & num_successful_plastic_returns,
291 unsigned & custom_model);
313 const std::vector<Real> & intnl,
315 std::vector<bool> & act);
330 const std::vector<Real> & intnl,
332 std::vector<bool> & act);
virtual void dflowPotential_dintnl(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &dr_dintnl)
The derivative of the active flow potentials with respect to the active internal parameters The UserO...
unsigned int modelNumber(unsigned int surface)
returns the model number, given the surface number
virtual void dhardPotential_dintnl(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &dh_dintnl)
The derivative of the active hardening potentials with respect to the active internal parameters.
std::vector< unsigned int > _model_given_surface
given a surface number, this returns the model number
virtual void flowPotential(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &r)
The active flow potential(s) - one for each yield function.
MooseEnum _specialIC
Allows initial set of active constraints to be chosen optimally.
MultiPlasticityRawComponentAssembler(const MooseObject *moose_object)
virtual ~MultiPlasticityRawComponentAssembler()
unsigned int _num_surfaces
Number of surfaces within the plastic models.
virtual void hardPotential(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &h)
The active hardening potentials (one for each internal parameter and for each yield function) by assu...
bool returnMapAll(const RankTwoTensor &trial_stress, const std::vector< Real > &intnl_old, const RankFourTensor &E_ijkl, Real ep_plastic_tolerance, RankTwoTensor &stress, std::vector< Real > &intnl, std::vector< Real > &pm, std::vector< Real > &cumulative_pm, RankTwoTensor &delta_dp, std::vector< Real > &yf, unsigned &num_successful_plastic_returns, unsigned &custom_model)
Performs a returnMap for each plastic model using their inbuilt returnMap functions.
std::vector< const TensorMechanicsPlasticModel * > _f
User objects that define the yield functions, flow potentials, etc.
MultiPlasticityRawComponentAssembler holds and computes yield functions, flow directions,...
virtual void dyieldFunction_dintnl(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &df_dintnl)
The derivative of active yield function(s) with respect to their internal parameters (the user object...
InputParameters validParams< MultiPlasticityRawComponentAssembler >()
static InputParameters validParams()
virtual void buildActiveConstraints(const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act)
Constructs a set of active constraints, given the yield functions, f.
virtual void dhardPotential_dstress(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &dh_dstress)
The derivative of the active hardening potentials with respect to stress By assumption in the Userobj...
virtual void dyieldFunction_dstress(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankTwoTensor > &df_dstress)
The derivative of the active yield function(s) with respect to stress.
void activeModelSurfaces(int model, const std::vector< bool > &active, std::vector< unsigned int > &active_surfaces_of_model)
Returns the internal surface number(s) of the active surfaces of the given model This may be of size=...
unsigned int _num_models
Number of plastic models for this material.
bool anyActiveSurfaces(int model, const std::vector< bool > &active)
returns true if any internal surfaces of the given model are active according to 'active'
const InputParameters & _params
void buildActiveConstraintsJoint(const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act)
"Joint" version Constructs a set of active constraints, given the yield functions,...
virtual void yieldFunction(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< Real > &f)
The active yield function(s)
void activeSurfaces(int model, const std::vector< bool > &active, std::vector< unsigned int > &active_surfaces)
Returns the external surface number(s) of the active surfaces of the given model This may be of size=...
virtual void dflowPotential_dstress(const RankTwoTensor &stress, const std::vector< Real > &intnl, const std::vector< bool > &active, std::vector< RankFourTensor > &dr_dstress)
The derivative of the active flow potential(s) with respect to stress.
std::vector< unsigned int > _model_surface_given_surface
given a surface number, this returns the corresponding-model's internal surface number
std::vector< std::vector< unsigned int > > _surfaces_given_model
_surfaces_given_model[model_number] = vector of surface numbers for this model
void buildActiveConstraintsRock(const std::vector< Real > &f, const RankTwoTensor &stress, const std::vector< Real > &intnl, const RankFourTensor &Eijkl, std::vector< bool > &act)
"Rock" version Constructs a set of active constraints, given the yield functions, f.