71 std::vector<const SolidMechanicsPlasticModel *>
_f;
81 const std::vector<Real> & intnl,
82 const std::vector<bool> & active,
83 std::vector<Real> &
f);
94 const std::vector<Real> & intnl,
95 const std::vector<bool> & active,
96 std::vector<RankTwoTensor> & df_dstress);
107 const std::vector<Real> & intnl,
108 const std::vector<bool> & active,
109 std::vector<Real> & df_dintnl);
119 const std::vector<Real> & intnl,
120 const std::vector<bool> & active,
121 std::vector<RankTwoTensor> & r);
132 const std::vector<Real> & intnl,
133 const std::vector<bool> & active,
134 std::vector<RankFourTensor> & dr_dstress);
145 const std::vector<Real> & intnl,
146 const std::vector<bool> & active,
147 std::vector<RankTwoTensor> & dr_dintnl);
160 const std::vector<Real> & intnl,
161 const std::vector<bool> & active,
162 std::vector<Real> & h);
174 const std::vector<Real> & intnl,
175 const std::vector<bool> & active,
176 std::vector<RankTwoTensor> & dh_dstress);
189 const std::vector<Real> & intnl,
190 const std::vector<bool> & active,
191 std::vector<Real> & dh_dintnl);
205 const std::vector<Real> & intnl,
207 std::vector<bool> & act);
223 const std::vector<bool> & active,
224 std::vector<unsigned int> & active_surfaces_of_model);
234 const std::vector<bool> & active,
235 std::vector<unsigned int> & active_surfaces);
277 const std::vector<Real> & intnl_old,
279 Real ep_plastic_tolerance,
281 std::vector<Real> & intnl,
282 std::vector<Real> & pm,
283 std::vector<Real> & cumulative_pm,
285 std::vector<Real> & yf,
286 unsigned & num_successful_plastic_returns,
287 unsigned & custom_model);
309 const std::vector<Real> & intnl,
311 std::vector<bool> & act);
326 const std::vector<Real> & intnl,
328 std::vector<bool> & act);
Real f(Real x)
Test function for Brents method.
const PertinentGeochemicalSystem model(database, {"H2O", "H+", "HCO3-", "O2(aq)", "Ca++", ">(s)FeOH", "radius_neg1", "radius_neg1.5"}, {"Calcite"}, {}, {"Calcite_asdf"}, {"CH4(aq)"}, {">(s)FeOCa+"}, "O2(aq)", "e-")
MultiPlasticityRawComponentAssembler holds and computes yield functions, flow directions,...
bool anyActiveSurfaces(int model, const std::vector< bool > &active)
returns true if any internal surfaces of the given model are active according to 'active'
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.
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...
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=...
std::vector< unsigned int > _model_surface_given_surface
given a surface number, this returns the corresponding-model's internal surface number
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 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.
unsigned int _num_surfaces
Number of surfaces within the plastic models.
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.
std::vector< const SolidMechanicsPlasticModel * > _f
User objects that define the yield functions, flow potentials, etc.
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)
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.
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...
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.
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.
unsigned int modelNumber(unsigned int surface)
returns the model number, given the surface number
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 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...
const InputParameters & _params
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...
std::vector< unsigned int > _model_given_surface
given a surface number, this returns the model number
virtual ~MultiPlasticityRawComponentAssembler()
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.
unsigned int _num_models
Number of plastic models for this material.
MooseEnum _specialIC
Allows initial set of active constraints to be chosen optimally.