https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PFCRFFMaterial.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 "PFCRFFMaterial.h"
11
13
16{
18 params.addClassDescription("Defined the mobility, alpha and A constants for the RFF form of the "
19 "phase field crystal model");
20 params.addRequiredParam<unsigned int>(
21 "num_L", "specifies the number of complex L variables will be solved for");
22 return params;
23}
24
26 : Material(parameters),
27 _M(declareProperty<Real>("M")),
28 _alpha_R_0(declareProperty<Real>("alpha_R_0")),
29 _alpha_I_0(declareProperty<Real>("alpha_I_0")),
30 _A_R_0(declareProperty<Real>("A_R_0")),
31 _A_I_0(declareProperty<Real>("A_I_0")),
32 _alpha_R_1(declareProperty<Real>("alpha_R_1")),
33 _alpha_I_1(declareProperty<Real>("alpha_I_1")),
34 _A_R_1(declareProperty<Real>("A_R_1")),
35 _A_I_1(declareProperty<Real>("A_I_1")),
36 _alpha_R_2(declareProperty<Real>("alpha_R_2")),
37 _alpha_I_2(declareProperty<Real>("alpha_I_2")),
38 _A_R_2(declareProperty<Real>("A_R_2")),
39 _A_I_2(declareProperty<Real>("A_I_2")),
40 _alpha_R_3(declareProperty<Real>("alpha_R_3")),
41 _alpha_I_3(declareProperty<Real>("alpha_I_3")),
42 _A_R_3(declareProperty<Real>("A_R_3")),
43 _A_I_3(declareProperty<Real>("A_I_3")),
44 _alpha_R_4(declareProperty<Real>("alpha_R_4")),
45 _alpha_I_4(declareProperty<Real>("alpha_I_4")),
46 _A_R_4(declareProperty<Real>("A_R_4")),
47 _A_I_4(declareProperty<Real>("A_I_4")),
48 _num_L(getParam<unsigned int>("num_L"))
49{
50}
51
52void
54{
55 // Mobility
56 _M[_qp] = 1.0;
57
58 // Alpha and A constants
59 if (_num_L == 3)
60 {
61 // alpha constants
62 _alpha_R_0[_qp] = 2.352788316033853;
63 _alpha_I_0[_qp] = 0.0;
64 _alpha_R_1[_qp] = -4.371217046300305;
65 _alpha_I_1[_qp] = 6.153993830413678;
66 _alpha_R_2[_qp] = -4.371217046300305;
67 _alpha_I_2[_qp] = -6.153993830413678;
68
69 // A constants
70 _A_R_0[_qp] = -1.254832460194660e2;
71 _A_I_0[_qp] = 4.141043034348927e-15;
72 _A_R_1[_qp] = 24.798843718179786;
73 _A_I_1[_qp] = 37.678064436502760;
74 _A_R_2[_qp] = 24.798843718179786;
75 _A_I_2[_qp] = -37.678064436502760;
76 }
77 else if (_num_L == 5)
78 {
79 // alpha constants
80 _alpha_R_0[_qp] = 2.429134088464706;
81 _alpha_I_0[_qp] = 0.0;
82 _alpha_R_1[_qp] = -3.972333899872749;
83 _alpha_I_1[_qp] = 6.499130135847140;
84 _alpha_R_2[_qp] = -3.972333899872749;
85 _alpha_I_2[_qp] = -6.499130135847140;
86 _alpha_R_3[_qp] = -18.943264072194637;
87 _alpha_I_3[_qp] = 9.349446845430961;
88 _alpha_R_4[_qp] = -18.943264072194637;
89 _alpha_I_4[_qp] = -9.349446845430961;
90
91 // A constants
92 _A_R_0[_qp] = -1.282478656880326e02;
93 _A_I_0[_qp] = 9.910190130869531e-15;
94 _A_R_1[_qp] = 34.212475550662354;
95 _A_I_1[_qp] = 42.274652746493430;
96 _A_R_2[_qp] = 34.212475550666770;
97 _A_I_2[_qp] = -42.274652746496530;
98 _A_R_3[_qp] = 10.501019149011636;
99 _A_I_3[_qp] = -2.363585468012575;
100 _A_R_4[_qp] = 10.501019149026910;
101 _A_I_4[_qp] = 2.363585467971611;
102 }
103}
104
105/*
106 _alpha_R_0[_qp] = 2.412;
107 _alpha_I_0[_qp] = 0.0;
108 _alpha_R_1[_qp] = -18.62;
109 _alpha_I_1[_qp] = 9.968;
110 _alpha_R_2[_qp] = -51.8;
111 _alpha_I_2[_qp] = -18.58;
112 _alpha_R_3[_qp] = -104.6;
113 _alpha_I_3[_qp] = -19.21;
114 _alpha_R_4[_qp] = -3.88;
115 _alpha_I_4[_qp] = 6.545;
116
117 // A constants
118 _A_R_0[_qp] = -63.1;
119 _A_I_0[_qp] = 0.0;
120 _A_R_1[_qp] = 12.52;
121 _A_I_1[_qp] = -3.607;
122 _A_R_2[_qp] = 3.88;
123 _A_I_2[_qp] = 0.7762;
124 _A_R_3[_qp] = 0.9984;
125 _A_I_3[_qp] = 0.1591;
126 _A_R_4[_qp] = 36.7;
127 _A_I_4[_qp] = 42.66;
128
129 else if (_num_L == 5)
130 {
131 // alpha constants
132 _alpha_R_0[_qp] = 2.4887266073084095552303551812656223773956298828125;
133 _alpha_I_0[_qp] = 0.0;
134 _alpha_R_1[_qp] = -19.2733746470461682065433706156909465789794921875;
135 _alpha_I_1[_qp] = -9.18277447910810451503493823111057281494140625;
136 _alpha_R_2[_qp] = -19.2733746470461682065433706156909465789794921875;
137 _alpha_I_2[_qp] = 9.18277447910810451503493823111057281494140625;
138 _alpha_R_3[_qp] = -3.8695517424123173633176975272363051772117614746094;
139 _alpha_I_3[_qp] = 6.7955256217773678528715208813082426786422729492188;
140 _alpha_R_4[_qp] = -3.8695517424123173633176975272363051772117614746094;
141 _alpha_I_4[_qp] = -6.7955256217773678528715208813082426786422729492188;
142
143 // A constants
144 _A_R_0[_qp] = -133.2927098034036816898151300847530364990234375;
145 _A_I_0[_qp] = 0.0;
146 _A_R_1[_qp] = 10.728194854990965367846911249216645956039428710938;
147 _A_I_1[_qp] = 2.5027746492227604946378960448782891035079956054688;
148 _A_R_2[_qp] = 10.728194854990965367846911249216645956039428710938;
149 _A_I_2[_qp] = -2.5027746492227604946378960448782891035079956054688;
150 _A_R_3[_qp] = 35.9742594324134188354946672916412353515625;
151 _A_I_3[_qp] = 45.6070815722133602321264334022998809814453125;
152 _A_R_4[_qp] = 35.9742594324134188354946672916412353515625;
153 _A_I_4[_qp] = -45.6070815722133602321264334022998809814453125;
154 }
155
156*/
registerMooseObject("PhaseFieldApp", PFCRFFMaterial)
void ErrorVector unsigned int
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
unsigned int _qp
static InputParameters validParams()
MaterialProperty< Real > & _A_R_3
MaterialProperty< Real > & _A_I_4
virtual void computeQpProperties()
static InputParameters validParams()
PFCRFFMaterial(const InputParameters &parameters)
unsigned int _num_L
MaterialProperty< Real > & _A_R_1
MaterialProperty< Real > & _alpha_R_0
MaterialProperty< Real > & _A_R_4
MaterialProperty< Real > & _A_R_2
MaterialProperty< Real > & _alpha_I_4
MaterialProperty< Real > & _A_I_3
MaterialProperty< Real > & _alpha_I_2
MaterialProperty< Real > & _alpha_R_4
MaterialProperty< Real > & _A_I_0
MaterialProperty< Real > & _alpha_I_3
MaterialProperty< Real > & _alpha_I_1
MaterialProperty< Real > & _A_I_1
MaterialProperty< Real > & _alpha_I_0
MaterialProperty< Real > & _alpha_R_1
MaterialProperty< Real > & _alpha_R_2
MaterialProperty< Real > & _A_R_0
MaterialProperty< Real > & _A_I_2
MaterialProperty< Real > & _M
MaterialProperty< Real > & _alpha_R_3