https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PFCTradMaterial.C
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
13
16{
19 "Polynomial coefficients for a phase field crystal correlation function");
20 MooseEnum order("FOURTH=4 EIGHTH=8");
22 "order", order, "This is the order of the polynomial used for correlation function");
23 return params;
24}
25
27 : Material(parameters),
28 _order(getParam<MooseEnum>("order")),
29 _M(declareProperty<Real>("M")),
30 _a(declareProperty<Real>("a")),
31 _b(declareProperty<Real>("b")),
32 _C0(declareProperty<Real>("C0")),
33 _C2(declareProperty<Real>("C2")),
34 _C4(declareProperty<Real>("C4")),
35 _C6(declareProperty<Real>("C6")),
36 _C8(declareProperty<Real>("C8"))
37{
38}
39
40void
42{
43 const Real invSkm = 0.332;
44 const Real u_s = 0.72;
45
46 _M[_qp] = 1.0;
47 _a[_qp] = 3.0 / (2.0 * u_s) * invSkm;
48 _b[_qp] = 4.0 / (30.0 * u_s * u_s) * invSkm;
49
50 switch (_order)
51 {
52 case 4:
53 _C0[_qp] = -10.9153;
54 _C2[_qp] = 2.6; // Angstrom^2
55 _C4[_qp] = 0.1459; // Angstrom^4, would be negative but coefficient term is negative
56 break;
57
58 case 8:
59 _C0[_qp] = -49.0;
60 // new parameter derived from Jaatinen's paper; using km = 2.985 A; updated 1/31/2015.
61 _C2[_qp] = 20.00313; // Angstrom^2
62 _C4[_qp] = 3.11883; // Angstrom^4, would be negative but coefficient term is negative
63 _C6[_qp] = 0.22554; // Angstrom^6
64 _C8[_qp] = 0.00643; // Angstrom^8, would be negative but coefficient term is negative
65 break;
66
67 default:
68 mooseError("Unknown order value.");
69 }
70}
registerMooseObject("PhaseFieldApp", PFCTradMaterial)
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
unsigned int _qp
static InputParameters validParams()
void mooseError(Args &&... args) const
MaterialProperty< Real > & _C8
MaterialProperty< Real > & _C4
MaterialProperty< Real > & _b
virtual void computeQpProperties()
MaterialProperty< Real > & _a
MaterialProperty< Real > & _C2
const unsigned int _order
MaterialProperty< Real > & _M
PFCTradMaterial(const InputParameters &parameters)
MaterialProperty< Real > & _C6
static InputParameters validParams()
MaterialProperty< Real > & _C0