Calculates an Extra-Stress tensor that lies in the plane of an interface defined by the gradient of an order parameter.
More...
#include <ComputeInterfaceStress.h>
Calculates an Extra-Stress tensor that lies in the plane of an interface defined by the gradient of an order parameter.
Definition at line 26 of file ComputeInterfaceStress.h.
◆ ComputeInterfaceStress()
ComputeInterfaceStress::ComputeInterfaceStress |
( |
const InputParameters & |
parameters | ) |
|
Definition at line 43 of file ComputeInterfaceStress.C.
44 : Material(parameters),
45 _nvar(coupledComponents(
"v")),
47 _op_range(getParam<std::vector<Real>>(
"op_range")),
48 _stress(getParam<std::vector<Real>>(
"stress")),
50 declareProperty<RankTwoTensor>(getParam<MaterialPropertyName>(
"planar_stress_name")))
55 paramError(
"stress",
"Supply either one single stress or one per order parameter");
60 paramError(
"op_range",
"Supply either one single op_range or one per order parameter");
64 _grad_v[i] = &coupledGradient(
"v", i);
◆ computeQpProperties()
void ComputeInterfaceStress::computeQpProperties |
( |
| ) |
|
|
overrideprotectedvirtual |
Definition at line 70 of file ComputeInterfaceStress.C.
79 const Real grad_norm_sq = (*
_grad_v[i])[_qp].norm_sq();
82 if (grad_norm_sq < libMesh::TOLERANCE)
85 const Real nx = (*
_grad_v[i])[_qp](0);
86 const Real ny = (*
_grad_v[i])[_qp](1);
87 const Real nz = (*
_grad_v[i])[_qp](2);
88 const Real s =
_stress[i] / std::sqrt(grad_norm_sq);
90 S(0, 0) += (ny * ny + nz * nz) * s;
91 S(0, 1) += -nx * ny * s;
92 S(1, 1) += (nx * nx + nz * nz) * s;
93 S(0, 2) += -nx * nz * s;
94 S(1, 2) += -ny * nz * s;
95 S(2, 2) += (nx * nx + ny * ny) * s;
◆ validParams()
InputParameters ComputeInterfaceStress::validParams |
( |
| ) |
|
|
static |
Definition at line 18 of file ComputeInterfaceStress.C.
21 params.addClassDescription(
22 "Stress in the plane of an interface defined by the gradient of an order parameter");
23 params.addCoupledVar(
"v",
24 "Order parameters that define the interface. The interface is the region "
25 "where the gradient of this order parameter is non-zero.");
26 params.addRequiredParam<std::vector<Real>>(
"stress",
27 "Interfacial planar stress magnitude (one "
28 "value to apply to all order parameters or one value "
29 "per order parameter listed in 'v')");
30 params.addRangeCheckedParam<std::vector<Real>>(
34 "Range over which order parameters change across an "
35 "interface. By default order parameters are assumed to "
37 params.addParam<MaterialPropertyName>(
"planar_stress_name",
39 "Material property name for the interfacial planar stress");
◆ _grad_v
std::vector<const VariableGradient *> ComputeInterfaceStress::_grad_v |
|
protected |
◆ _nvar
std::size_t ComputeInterfaceStress::_nvar |
|
protected |
◆ _op_range
std::vector<Real> ComputeInterfaceStress::_op_range |
|
protected |
◆ _planar_stress
MaterialProperty<RankTwoTensor>& ComputeInterfaceStress::_planar_stress |
|
protected |
◆ _stress
std::vector<Real> ComputeInterfaceStress::_stress |
|
protected |
The documentation for this class was generated from the following files: