www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
FluxBasedStrainIncrement Class Reference

FluxBasedStrainIncrement computes strain increment based on flux (vacancy) Forest et. More...

#include <FluxBasedStrainIncrement.h>

Inheritance diagram for FluxBasedStrainIncrement:
[legend]

Public Member Functions

 FluxBasedStrainIncrement (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void initQpStatefulProperties ()
 
virtual void computeQpProperties ()
 
virtual void computeFluxGradTensor ()
 

Protected Attributes

const VariableGradient * _grad_jx
 
bool _has_yflux
 
bool _has_zflux
 
const VariableGradient * _grad_jy
 
const VariableGradient * _grad_jz
 
const VariableValue & _gb
 
MaterialProperty< RankTwoTensor > & _strain_increment
 
RankTwoTensor _flux_grad_tensor
 

Detailed Description

FluxBasedStrainIncrement computes strain increment based on flux (vacancy) Forest et.

al. MSMSE 2015

Definition at line 25 of file FluxBasedStrainIncrement.h.

Constructor & Destructor Documentation

◆ FluxBasedStrainIncrement()

FluxBasedStrainIncrement::FluxBasedStrainIncrement ( const InputParameters &  parameters)

Definition at line 31 of file FluxBasedStrainIncrement.C.

32  : DerivativeMaterialInterface<Material>(parameters),
33  _grad_jx(&coupledGradient("xflux")),
34  _has_yflux(isCoupled("yflux")),
35  _has_zflux(isCoupled("zflux")),
36  _grad_jy(_has_yflux ? &coupledGradient("yflux") : nullptr),
37  _grad_jz(_has_zflux ? &coupledGradient("zflux") : nullptr),
38  _gb(isCoupled("gb") ? coupledValue("gb") : _zero),
40  declareProperty<RankTwoTensor>(getParam<MaterialPropertyName>("property_name")))
41 {
42 }

Member Function Documentation

◆ computeFluxGradTensor()

void FluxBasedStrainIncrement::computeFluxGradTensor ( )
protectedvirtual

Definition at line 60 of file FluxBasedStrainIncrement.C.

61 {
62  _flux_grad_tensor.zero();
63 
64  _flux_grad_tensor.fillRow(0, (*_grad_jx)[_qp]);
65 
66  if (_has_yflux)
67  _flux_grad_tensor.fillRow(1, (*_grad_jy)[_qp]);
68 
69  if (_has_zflux)
70  _flux_grad_tensor.fillRow(2, (*_grad_jz)[_qp]);
71 }

Referenced by computeQpProperties().

◆ computeQpProperties()

void FluxBasedStrainIncrement::computeQpProperties ( )
protectedvirtual

Definition at line 51 of file FluxBasedStrainIncrement.C.

52 {
54 
55  _strain_increment[_qp] = -0.5 * (_flux_grad_tensor + _flux_grad_tensor.transpose());
56  _strain_increment[_qp] *= (1.0 - _gb[_qp]) * _dt;
57 }

◆ initQpStatefulProperties()

void FluxBasedStrainIncrement::initQpStatefulProperties ( )
protectedvirtual

Definition at line 45 of file FluxBasedStrainIncrement.C.

46 {
47  _strain_increment[_qp].zero();
48 }

◆ validParams()

InputParameters FluxBasedStrainIncrement::validParams ( )
static

Definition at line 18 of file FluxBasedStrainIncrement.C.

19 {
20  InputParameters params = Material::validParams();
21  params.addClassDescription("Compute strain increment based on flux");
22  params.addRequiredCoupledVar("xflux", "x or 0-direction component of flux");
23  params.addCoupledVar("yflux", "y or 1-direction component of flux");
24  params.addCoupledVar("zflux", "z or 2-direction component of flux");
25  params.addCoupledVar("gb", "Grain boundary order parameter");
26  params.addRequiredParam<MaterialPropertyName>("property_name",
27  "Name of diffusive strain increment property");
28  return params;
29 }

Member Data Documentation

◆ _flux_grad_tensor

RankTwoTensor FluxBasedStrainIncrement::_flux_grad_tensor
protected

Definition at line 48 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor(), and computeQpProperties().

◆ _gb

const VariableValue& FluxBasedStrainIncrement::_gb
protected

Definition at line 44 of file FluxBasedStrainIncrement.h.

Referenced by computeQpProperties().

◆ _grad_jx

const VariableGradient* FluxBasedStrainIncrement::_grad_jx
protected

Definition at line 38 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor().

◆ _grad_jy

const VariableGradient* FluxBasedStrainIncrement::_grad_jy
protected

Definition at line 41 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor().

◆ _grad_jz

const VariableGradient* FluxBasedStrainIncrement::_grad_jz
protected

Definition at line 42 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor().

◆ _has_yflux

bool FluxBasedStrainIncrement::_has_yflux
protected

Definition at line 39 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor().

◆ _has_zflux

bool FluxBasedStrainIncrement::_has_zflux
protected

Definition at line 40 of file FluxBasedStrainIncrement.h.

Referenced by computeFluxGradTensor().

◆ _strain_increment

MaterialProperty<RankTwoTensor>& FluxBasedStrainIncrement::_strain_increment
protected

Definition at line 46 of file FluxBasedStrainIncrement.h.

Referenced by computeQpProperties(), and initQpStatefulProperties().


The documentation for this class was generated from the following files:
FluxBasedStrainIncrement::_has_zflux
bool _has_zflux
Definition: FluxBasedStrainIncrement.h:40
FluxBasedStrainIncrement::_strain_increment
MaterialProperty< RankTwoTensor > & _strain_increment
Definition: FluxBasedStrainIncrement.h:46
FluxBasedStrainIncrement::_gb
const VariableValue & _gb
Definition: FluxBasedStrainIncrement.h:44
FluxBasedStrainIncrement::computeFluxGradTensor
virtual void computeFluxGradTensor()
Definition: FluxBasedStrainIncrement.C:60
FluxBasedStrainIncrement::_has_yflux
bool _has_yflux
Definition: FluxBasedStrainIncrement.h:39
FluxBasedStrainIncrement::_flux_grad_tensor
RankTwoTensor _flux_grad_tensor
Definition: FluxBasedStrainIncrement.h:48
FluxBasedStrainIncrement::_grad_jy
const VariableGradient * _grad_jy
Definition: FluxBasedStrainIncrement.h:41
validParams
InputParameters validParams()
FluxBasedStrainIncrement::_grad_jx
const VariableGradient * _grad_jx
Definition: FluxBasedStrainIncrement.h:38
FluxBasedStrainIncrement::_grad_jz
const VariableGradient * _grad_jz
Definition: FluxBasedStrainIncrement.h:42