www.mooseframework.org
PFCTradMaterial.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "PFCTradMaterial.h"
11 
12 registerMooseObject("PhaseFieldApp", PFCTradMaterial);
13 
14 template <>
15 InputParameters
17 {
18  InputParameters params = validParams<Material>();
19  params.addClassDescription(
20  "Polynomial coefficients for a phase field crystal correlation function");
21  MooseEnum order("FOURTH=4 EIGHTH=8");
22  params.addRequiredParam<MooseEnum>(
23  "order", order, "This is the order of the polynomial used for correlation function");
24  return params;
25 }
26 
27 PFCTradMaterial::PFCTradMaterial(const InputParameters & parameters)
28  : Material(parameters),
29  _order(getParam<MooseEnum>("order")),
30  _M(declareProperty<Real>("M")),
31  _a(declareProperty<Real>("a")),
32  _b(declareProperty<Real>("b")),
33  _C0(declareProperty<Real>("C0")),
34  _C2(declareProperty<Real>("C2")),
35  _C4(declareProperty<Real>("C4")),
36  _C6(declareProperty<Real>("C6")),
37  _C8(declareProperty<Real>("C8"))
38 {
39 }
40 
41 void
43 {
44  const Real invSkm = 0.332;
45  const Real u_s = 0.72;
46 
47  _M[_qp] = 1.0;
48  _a[_qp] = 3.0 / (2.0 * u_s) * invSkm;
49  _b[_qp] = 4.0 / (30.0 * u_s * u_s) * invSkm;
50 
51  switch (_order)
52  {
53  case 4:
54  _C0[_qp] = -10.9153;
55  _C2[_qp] = 2.6; // Angstrom^2
56  _C4[_qp] = 0.1459; // Angstrom^4, would be negative but coefficient term is negative
57  break;
58 
59  case 8:
60  _C0[_qp] = -49.0;
61  // new parameter derived from Jaatinen's paper; using km = 2.985 A; updated 1/31/2015.
62  _C2[_qp] = 20.00313; // Angstrom^2
63  _C4[_qp] = 3.11883; // Angstrom^4, would be negative but coefficient term is negative
64  _C6[_qp] = 0.22554; // Angstrom^6
65  _C8[_qp] = 0.00643; // Angstrom^8, would be negative but coefficient term is negative
66  break;
67 
68  default:
69  mooseError("Unknown order value.");
70  }
71 }
PFCTradMaterial::PFCTradMaterial
PFCTradMaterial(const InputParameters &parameters)
Definition: PFCTradMaterial.C:27
PFCTradMaterial
Definition: PFCTradMaterial.h:20
registerMooseObject
registerMooseObject("PhaseFieldApp", PFCTradMaterial)
PFCTradMaterial::_C8
MaterialProperty< Real > & _C8
Definition: PFCTradMaterial.h:39
PFCTradMaterial::_C4
MaterialProperty< Real > & _C4
Definition: PFCTradMaterial.h:37
PFCTradMaterial::_M
MaterialProperty< Real > & _M
Definition: PFCTradMaterial.h:31
PFCTradMaterial::_order
const unsigned int _order
Definition: PFCTradMaterial.h:29
PFCTradMaterial::_a
MaterialProperty< Real > & _a
Definition: PFCTradMaterial.h:32
PFCTradMaterial::computeQpProperties
virtual void computeQpProperties()
Definition: PFCTradMaterial.C:42
PFCTradMaterial::_b
MaterialProperty< Real > & _b
Definition: PFCTradMaterial.h:33
PFCTradMaterial.h
validParams< PFCTradMaterial >
InputParameters validParams< PFCTradMaterial >()
Definition: PFCTradMaterial.C:16
PFCTradMaterial::_C2
MaterialProperty< Real > & _C2
Definition: PFCTradMaterial.h:36
PFCTradMaterial::_C0
MaterialProperty< Real > & _C0
Definition: PFCTradMaterial.h:35
PFCTradMaterial::_C6
MaterialProperty< Real > & _C6
Definition: PFCTradMaterial.h:38