11 #include "RankTwoTensor.h"
21 params.addClassDescription(
22 "Surface tension of an interface defined by the gradient of an order parameter");
23 params.addCoupledVar(
"v",
24 "Order parameter that defines the interface, assumed to vary from 0 to 1.");
25 params.addParam<MaterialPropertyName>(
"kappa_name",
"kappa_op",
"Gradient energy coefficient");
26 params.addParam<MaterialPropertyName>(
"g",
"g",
"Barrier Function Material that provides g(eta)");
27 params.addRequiredParam<Real>(
"w",
"Double well height parameter");
28 params.addParam<MaterialPropertyName>(
"planar_stress_name",
30 "Material property name for the interfacial planar stress");
35 : Material(parameters),
36 _v(coupledValue(
"v")),
37 _grad_v(coupledGradient(
"v")),
38 _kappa(getMaterialProperty<Real>(
"kappa_name")),
39 _g(getMaterialProperty<Real>(
"g")),
40 _w(getParam<Real>(
"w")),
42 declareProperty<
RankTwoTensor>(getParam<MaterialPropertyName>(
"planar_stress_name")))
53 const Real grad_norm_sq =
_grad_v[_qp].norm_sq();
55 const Real nx =
_grad_v[_qp](0);
56 const Real ny =
_grad_v[_qp](1);
57 const Real nz =
_grad_v[_qp](2);
58 Real fsum =
_w *
_g[_qp] + 0.5 *
_kappa[_qp] * grad_norm_sq;
60 S(0, 0) += fsum -
_kappa[_qp] * nx * nx;
61 S(0, 1) += -
_kappa[_qp] * nx * ny;
62 S(1, 1) += fsum -
_kappa[_qp] * ny * ny;
63 S(0, 2) += -
_kappa[_qp] * nx * nz;
64 S(1, 2) += -
_kappa[_qp] * ny * nz;
65 S(2, 2) += fsum -
_kappa[_qp] * nz * nz;