124 std::vector<CrystalPlasticityStressUpdateBase *>
_models;
ComputeFiniteStrainElasticStress computes the stress following elasticity theory for finite strains.
ComputeMultipleCrystalPlasticityStress (used together with CrystalPlasticityStressUpdateBase) uses th...
void preSolveQp()
Reset the PK2 stress and the inverse deformation gradient to old values and provide an interface for ...
const MaterialProperty< RankTwoTensor > & _crysrot
Crystal rotation in the original, or reference, configuration as defined by Euler angle arguments in ...
void postSolveQp(RankTwoTensor &stress_new, RankFourTensor &jacobian_mult)
Save the final stress and internal variable values after the iterative solve.
const MaterialProperty< RankTwoTensor > & _deformation_gradient
Total deformation gradient RankTwoTensor for the crystal.
void solveStress()
solves for stress, updates plastic deformation gradient.
Real _abs_tol
Stress residual equation absolute tolerance.
void calculateResidual()
Calculate stress residual as the difference between the stored material property PK2 stress and the e...
RankTwoTensor _temporary_deformation_gradient
Helper deformation gradient tensor variables used in iterative solve.
const MaterialProperty< RankTwoTensor > & _pk2_old
unsigned int _maxiter
Maximum number of iterations for stress update.
void calculateJacobian()
Calculates the jacobian as $\mathbf{J} = \mathbf{I} - \mathbf{C} \frac{d\mathbf{E}^e}{d\mathbf{F}^e} ...
TangentModuliType
Type of tangent moduli calculation.
RankTwoTensor _inverse_plastic_deformation_grad_old
static InputParameters validParams()
MaterialProperty< RankTwoTensor > & _plastic_deformation_gradient
Plastic deformation gradient RankTwoTensor for the crystal.
RankTwoTensor _inverse_eigenstrain_deformation_grad
void calcTangentModuli(RankFourTensor &jacobian_mult)
Calculates the tangent moduli for use as a preconditioner, using the elastic or elastic-plastic optio...
enum ComputeMultipleCrystalPlasticityStress::TangentModuliType _tan_mod_type
bool _convergence_failed
Flag to check whether convergence is achieved or if substepping is needed.
bool _use_line_search
Flag to activate line serach.
Real _rtol
Stress residual equation relative tolerance.
bool lineSearchUpdate(const Real &rnorm_prev, const RankTwoTensor &dpk2)
performs the line search update
RankTwoTensor _inverse_plastic_deformation_grad
enum ComputeMultipleCrystalPlasticityStress::LineSearchMethod _line_search_method
RankTwoTensor _temporary_deformation_gradient_old
const MaterialProperty< RankFourTensor > & _elasticity_tensor
Elasticity tensor as defined by a separate class.
const bool _print_convergence_message
Flag to print to console warning messages on stress, constitutive model convergence.
Real _substep_dt
time step size during substepping
Real _dfgrd_scale_factor
Scales the substepping increment to obtain deformation gradient at a substep iteration.
MaterialProperty< RankTwoTensor > & _updated_rotation
Tracks the rotation of the crystal during deformation Note: this rotation tensor is not applied to th...
RankTwoTensor _elastic_deformation_gradient
RankFourTensor _jacobian
Jacobian tensor.
MaterialProperty< RankTwoTensor > & _total_lagrangian_strain
Lagrangian total strain measure for the entire crystal.
const unsigned _num_eigenstrains
number of eigenstrains
std::vector< CrystalPlasticityStressUpdateBase * > _models
The user supplied cyrstal plasticity consititutive models.
virtual void computeQpStress() override
Compute the stress and store it in the _stress material property for the current quadrature point.
virtual void initQpStatefulProperties() override
initializes the stateful properties such as PK2 stress, resolved shear stress, plastic deformation gr...
void elasticTangentModuli(RankFourTensor &jacobian_mult)
const std::string _base_name
optional parameter to define several mechanical systems on the same block, e.g. multiple phases
const MaterialProperty< RankTwoTensor > * _eigenstrain_deformation_gradient_old
virtual void initialSetup() override
void solveQp()
Solve the stress and internal state variables (e.g.
MaterialProperty< Real > & _misorientation
Misorientation angle of the crystal during deformation.
unsigned int _line_search_max_iterations
Line search bisection method maximum iteration number.
void solveStateVariables()
Solves the internal variables stress as a function of the slip specified by the constitutive model de...
Real _line_search_tolerance
Line search bisection method tolerance.
void calculateEigenstrainDeformationGrad()
Calculates the deformation gradient due to eigenstrain.
void elastoPlasticTangentModuli(RankFourTensor &jacobian_mult)
Real _min_line_search_step_size
Minimum line search step size.
const MaterialProperty< RankTwoTensor > & _updated_rotation_old
unsigned int _maxiterg
Maximum number of iterations for internal variable update.
void calculateResidualAndJacobian()
Calls the residual and jacobian functions used in the stress update algorithm.
MaterialProperty< RankTwoTensor > * _eigenstrain_deformation_gradient
Generalized eigenstrain deformation gradient RankTwoTensor for the crystal.
RankTwoTensor _delta_deformation_gradient
Used for substepping; Uniformly divides the increment in deformation gradient.
const MaterialProperty< RankTwoTensor > & _deformation_gradient_old
MaterialProperty< RankTwoTensor > & _pk2
Second Piola-Kirchoff stress measure.
const unsigned _num_models
number of plastic models
RankTwoTensor _residual_tensor
Residual tensor.
unsigned int _max_substep_iter
Maximum number of substep iterations.
const MaterialProperty< RankTwoTensor > & _plastic_deformation_gradient_old
virtual void updateStress(RankTwoTensor &cauchy_stress, RankFourTensor &jacobian_mult)
Updates the stress (PK2) at a quadrature point by calling constiutive relationship as defined in a ch...
std::vector< ComputeCrystalPlasticityEigenstrainBase * > _eigenstrains
The user supplied cyrstal plasticity eigenstrains.
LineSearchMethod
strain formulation