www.mooseframework.org
ElectricalConductivity.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 "ElectricalConductivity.h"
11 #include "libmesh/quadrature.h"
12 
13 registerMooseObject("HeatConductionApp", ElectricalConductivity);
14 
16 
17 InputParameters
19 {
20  InputParameters params = Material::validParams();
21  params.addCoupledVar("temp", 300.0, "variable for temperature");
22  params.addParam<std::string>("base_name", "Material property base name");
23  params.addParam<Real>("length_scale", 1.0e-9, "Length scale of model");
24  params.addParam<Real>(
25  "ref_resistivity",
26  6.5e-6,
27  "Electrical resistivity of the material at reference temperature in ohm-m.");
28  params.addParam<Real>(
29  "temp_coeff",
30  0.0045,
31  "Temperature coefficient for calculating dependence of resistivity on temp.");
32  params.addParam<Real>("ref_temp", 300.0, "Reference temperature for Electrical resistivity in K");
33  return params;
34 }
35 
36 ElectricalConductivity::ElectricalConductivity(const InputParameters & parameters)
37  : DerivativeMaterialInterface<Material>(parameters),
38  _length_scale(getParam<Real>("length_scale")),
39  _ref_resis(getParam<Real>("ref_resistivity")),
40  _temp_coeff(getParam<Real>("temp_coeff")),
41  _ref_temp(getParam<Real>("ref_temp")),
42  _T(coupledValue("temp")),
43  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
44  _electric_conductivity(declareProperty<Real>(_base_name + "electrical_conductivity")),
45  _delectric_conductivity_dT(declarePropertyDerivative<Real>(
46  _base_name + "electrical_conductivity", getVar("temp", 0)->name()))
47 {
48 }
49 
50 void
52 {
53  const Real ref_resis = _ref_resis / _length_scale;
54  const Real resistivity = ref_resis * (1.0 + _temp_coeff * (_T[_qp] - _ref_temp));
55  const Real dresistivity_dT = ref_resis * _temp_coeff;
56  _electric_conductivity[_qp] = 1.0 / resistivity;
57  _delectric_conductivity_dT[_qp] = -1.0 / (resistivity * resistivity) * dresistivity_dT;
58 }
ElectricalConductivity::ElectricalConductivity
ElectricalConductivity(const InputParameters &parameters)
Definition: ElectricalConductivity.C:36
ElectricalConductivity::_temp_coeff
const Real _temp_coeff
Definition: ElectricalConductivity.h:38
ElectricalConductivity::computeQpProperties
virtual void computeQpProperties()
Definition: ElectricalConductivity.C:51
ElectricalConductivity
Calculates resistivity and electrical conductivity as a function of temperature.
Definition: ElectricalConductivity.h:25
registerMooseObject
registerMooseObject("HeatConductionApp", ElectricalConductivity)
ElectricalConductivity::validParams
static InputParameters validParams()
Definition: ElectricalConductivity.C:18
ElectricalConductivity::_T
const VariableValue & _T
Definition: ElectricalConductivity.h:40
validParams
InputParameters validParams()
ElectricalConductivity::_length_scale
const Real _length_scale
Definition: ElectricalConductivity.h:36
name
const std::string name
Definition: Setup.h:21
ElectricalConductivity::_ref_resis
const Real _ref_resis
Definition: ElectricalConductivity.h:37
ElectricalConductivity::_ref_temp
const Real _ref_temp
Definition: ElectricalConductivity.h:39
defineLegacyParams
defineLegacyParams(ElectricalConductivity)
ElectricalConductivity::_delectric_conductivity_dT
MaterialProperty< Real > & _delectric_conductivity_dT
Definition: ElectricalConductivity.h:44
ElectricalConductivity.h
ElectricalConductivity::_electric_conductivity
MaterialProperty< Real > & _electric_conductivity
Definition: ElectricalConductivity.h:43