Line data Source code
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 : 12 : registerMooseObject("PhaseFieldApp", PFCRFFMaterial); 13 : 14 : InputParameters 15 223 : PFCRFFMaterial::validParams() 16 : { 17 223 : InputParameters params = Material::validParams(); 18 223 : params.addClassDescription("Defined the mobility, alpha and A constants for the RFF form of the " 19 : "phase field crystal model"); 20 446 : params.addRequiredParam<unsigned int>( 21 : "num_L", "specifies the number of complex L variables will be solved for"); 22 223 : return params; 23 0 : } 24 : 25 171 : PFCRFFMaterial::PFCRFFMaterial(const InputParameters & parameters) 26 : : Material(parameters), 27 171 : _M(declareProperty<Real>("M")), 28 171 : _alpha_R_0(declareProperty<Real>("alpha_R_0")), 29 171 : _alpha_I_0(declareProperty<Real>("alpha_I_0")), 30 171 : _A_R_0(declareProperty<Real>("A_R_0")), 31 171 : _A_I_0(declareProperty<Real>("A_I_0")), 32 171 : _alpha_R_1(declareProperty<Real>("alpha_R_1")), 33 171 : _alpha_I_1(declareProperty<Real>("alpha_I_1")), 34 171 : _A_R_1(declareProperty<Real>("A_R_1")), 35 171 : _A_I_1(declareProperty<Real>("A_I_1")), 36 171 : _alpha_R_2(declareProperty<Real>("alpha_R_2")), 37 171 : _alpha_I_2(declareProperty<Real>("alpha_I_2")), 38 171 : _A_R_2(declareProperty<Real>("A_R_2")), 39 171 : _A_I_2(declareProperty<Real>("A_I_2")), 40 171 : _alpha_R_3(declareProperty<Real>("alpha_R_3")), 41 171 : _alpha_I_3(declareProperty<Real>("alpha_I_3")), 42 171 : _A_R_3(declareProperty<Real>("A_R_3")), 43 171 : _A_I_3(declareProperty<Real>("A_I_3")), 44 171 : _alpha_R_4(declareProperty<Real>("alpha_R_4")), 45 171 : _alpha_I_4(declareProperty<Real>("alpha_I_4")), 46 171 : _A_R_4(declareProperty<Real>("A_R_4")), 47 171 : _A_I_4(declareProperty<Real>("A_I_4")), 48 513 : _num_L(getParam<unsigned int>("num_L")) 49 : { 50 171 : } 51 : 52 : void 53 213696 : PFCRFFMaterial::computeQpProperties() 54 : { 55 : // Mobility 56 213696 : _M[_qp] = 1.0; 57 : 58 : // Alpha and A constants 59 213696 : if (_num_L == 3) 60 : { 61 : // alpha constants 62 0 : _alpha_R_0[_qp] = 2.352788316033853; 63 0 : _alpha_I_0[_qp] = 0.0; 64 0 : _alpha_R_1[_qp] = -4.371217046300305; 65 0 : _alpha_I_1[_qp] = 6.153993830413678; 66 0 : _alpha_R_2[_qp] = -4.371217046300305; 67 0 : _alpha_I_2[_qp] = -6.153993830413678; 68 : 69 : // A constants 70 0 : _A_R_0[_qp] = -1.254832460194660e2; 71 0 : _A_I_0[_qp] = 4.141043034348927e-15; 72 0 : _A_R_1[_qp] = 24.798843718179786; 73 0 : _A_I_1[_qp] = 37.678064436502760; 74 0 : _A_R_2[_qp] = 24.798843718179786; 75 0 : _A_I_2[_qp] = -37.678064436502760; 76 : } 77 213696 : else if (_num_L == 5) 78 : { 79 : // alpha constants 80 213696 : _alpha_R_0[_qp] = 2.429134088464706; 81 213696 : _alpha_I_0[_qp] = 0.0; 82 213696 : _alpha_R_1[_qp] = -3.972333899872749; 83 213696 : _alpha_I_1[_qp] = 6.499130135847140; 84 213696 : _alpha_R_2[_qp] = -3.972333899872749; 85 213696 : _alpha_I_2[_qp] = -6.499130135847140; 86 213696 : _alpha_R_3[_qp] = -18.943264072194637; 87 213696 : _alpha_I_3[_qp] = 9.349446845430961; 88 213696 : _alpha_R_4[_qp] = -18.943264072194637; 89 213696 : _alpha_I_4[_qp] = -9.349446845430961; 90 : 91 : // A constants 92 213696 : _A_R_0[_qp] = -1.282478656880326e02; 93 213696 : _A_I_0[_qp] = 9.910190130869531e-15; 94 213696 : _A_R_1[_qp] = 34.212475550662354; 95 213696 : _A_I_1[_qp] = 42.274652746493430; 96 213696 : _A_R_2[_qp] = 34.212475550666770; 97 213696 : _A_I_2[_qp] = -42.274652746496530; 98 213696 : _A_R_3[_qp] = 10.501019149011636; 99 213696 : _A_I_3[_qp] = -2.363585468012575; 100 213696 : _A_R_4[_qp] = 10.501019149026910; 101 213696 : _A_I_4[_qp] = 2.363585467971611; 102 : } 103 213696 : } 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 : */