www.mooseframework.org
SemiconductorLinearConductivity.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 
11 #include "libmesh/quadrature.h"
12 
14 
16 
17 InputParameters
19 {
20  InputParameters params = Material::validParams();
21  params.addRequiredCoupledVar("temp", "Variable for temperature in Kelvin.");
22  params.addParam<std::string>("base_name", "Material property base name");
23  params.addRequiredParam<Real>("sh_coeff_A", "Steinhart_Hart coefficient A of the material");
24  params.addRequiredRangeCheckedParam<Real>(
25  "sh_coeff_B", "sh_coeff_B != 0", "Steinhart_Hart coefficient B of the material.");
26 
27  params.addClassDescription(
28  "Calculates electrical conductivity of a semiconductor from temperature");
29 
30  return params;
31 }
32 
34  : DerivativeMaterialInterface<Material>(parameters),
35  _sh_coeff_A(getParam<Real>("sh_coeff_A")),
36  _sh_coeff_B(getParam<Real>("sh_coeff_B")),
37  _T(coupledValue("temp")),
38  _base_name(isParamValid("base_name") ? getParam<std::string>("base_name") + "_" : ""),
39  _electric_conductivity(declareProperty<Real>(_base_name + "electrical_conductivity")),
40  _delectric_conductivity_dT(declarePropertyDerivative<Real>(
41  _base_name + "electrical_conductivity", getVar("temp", 0)->name()))
42 {
43 }
44 
45 void
47 {
48  mooseAssert(MooseUtils::absoluteFuzzyGreaterThan(_T[_qp], 0.0),
49  "Encountered zero or negative temperature in SemiconductorLinearConductivity");
50 
51  mooseAssert(_sh_coeff_B != 0, "Divided by zero as _sh_coeff_B = 0");
52 
53  _electric_conductivity[_qp] = exp((_sh_coeff_A - 1 / _T[_qp]) / _sh_coeff_B);
55 }
SemiconductorLinearConductivity::_delectric_conductivity_dT
MaterialProperty< Real > & _delectric_conductivity_dT
Definition: SemiconductorLinearConductivity.h:47
SemiconductorLinearConductivity::_sh_coeff_B
const Real _sh_coeff_B
Definition: SemiconductorLinearConductivity.h:42
SemiconductorLinearConductivity::validParams
static InputParameters validParams()
Definition: SemiconductorLinearConductivity.C:18
SemiconductorLinearConductivity::_electric_conductivity
MaterialProperty< Real > & _electric_conductivity
Definition: SemiconductorLinearConductivity.h:46
SemiconductorLinearConductivity::computeQpProperties
virtual void computeQpProperties()
Definition: SemiconductorLinearConductivity.C:46
SemiconductorLinearConductivity.h
validParams
InputParameters validParams()
name
const std::string name
Definition: Setup.h:21
SemiconductorLinearConductivity
Calculates resistivity and electrical conductivity as a function of temperature.
Definition: SemiconductorLinearConductivity.h:30
SemiconductorLinearConductivity::SemiconductorLinearConductivity
SemiconductorLinearConductivity(const InputParameters &parameters)
Definition: SemiconductorLinearConductivity.C:33
registerMooseObject
registerMooseObject("HeatConductionApp", SemiconductorLinearConductivity)
SemiconductorLinearConductivity::_sh_coeff_A
const Real _sh_coeff_A
Definition: SemiconductorLinearConductivity.h:41
defineLegacyParams
defineLegacyParams(SemiconductorLinearConductivity)
SemiconductorLinearConductivity::_T
const VariableValue & _T
Definition: SemiconductorLinearConductivity.h:43