www.mooseframework.org
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes | List of all members
SemiconductorLinearConductivity Class Reference

Calculates resistivity and electrical conductivity as a function of temperature. More...

#include <SemiconductorLinearConductivity.h>

Inheritance diagram for SemiconductorLinearConductivity:
[legend]

Public Member Functions

 SemiconductorLinearConductivity (const InputParameters &parameters)
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Member Functions

virtual void computeQpProperties ()
 

Private Attributes

const Real _sh_coeff_A
 
const Real _sh_coeff_B
 
const VariableValue & _T
 
const std::string _base_name
 
MaterialProperty< Real > & _electric_conductivity
 
MaterialProperty< Real > & _delectric_conductivity_dT
 

Detailed Description

Calculates resistivity and electrical conductivity as a function of temperature.

For semiconductor, Steinhart-Hart equation describes the temperature dependence of the resistivity: 1/T = A + B ln (\rho) + C (ln (\rho))^3

For linear relationship ONLY => C = 0 1/T = A -B ln(\sigma) \rho: electrical resistivity in ohm-m = 1/(\sigma) \sigma: electrical conductivity in 1/(ohm-m)

Definition at line 30 of file SemiconductorLinearConductivity.h.

Constructor & Destructor Documentation

◆ SemiconductorLinearConductivity()

SemiconductorLinearConductivity::SemiconductorLinearConductivity ( const InputParameters &  parameters)

Definition at line 33 of file SemiconductorLinearConductivity.C.

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 }

Member Function Documentation

◆ computeQpProperties()

void SemiconductorLinearConductivity::computeQpProperties ( )
protectedvirtual

Definition at line 46 of file SemiconductorLinearConductivity.C.

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 }

◆ validParams()

InputParameters SemiconductorLinearConductivity::validParams ( )
static

Definition at line 18 of file SemiconductorLinearConductivity.C.

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 }

Member Data Documentation

◆ _base_name

const std::string SemiconductorLinearConductivity::_base_name
private

Definition at line 45 of file SemiconductorLinearConductivity.h.

◆ _delectric_conductivity_dT

MaterialProperty<Real>& SemiconductorLinearConductivity::_delectric_conductivity_dT
private

Definition at line 47 of file SemiconductorLinearConductivity.h.

Referenced by computeQpProperties().

◆ _electric_conductivity

MaterialProperty<Real>& SemiconductorLinearConductivity::_electric_conductivity
private

Definition at line 46 of file SemiconductorLinearConductivity.h.

Referenced by computeQpProperties().

◆ _sh_coeff_A

const Real SemiconductorLinearConductivity::_sh_coeff_A
private

Definition at line 41 of file SemiconductorLinearConductivity.h.

Referenced by computeQpProperties().

◆ _sh_coeff_B

const Real SemiconductorLinearConductivity::_sh_coeff_B
private

Definition at line 42 of file SemiconductorLinearConductivity.h.

Referenced by computeQpProperties().

◆ _T

const VariableValue& SemiconductorLinearConductivity::_T
private

Definition at line 43 of file SemiconductorLinearConductivity.h.

Referenced by computeQpProperties().


The documentation for this class was generated from the following files:
SemiconductorLinearConductivity::_base_name
const std::string _base_name
Definition: SemiconductorLinearConductivity.h:45
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::_electric_conductivity
MaterialProperty< Real > & _electric_conductivity
Definition: SemiconductorLinearConductivity.h:46
validParams
InputParameters validParams()
name
const std::string name
Definition: Setup.h:21
SemiconductorLinearConductivity::_sh_coeff_A
const Real _sh_coeff_A
Definition: SemiconductorLinearConductivity.h:41
SemiconductorLinearConductivity::_T
const VariableValue & _T
Definition: SemiconductorLinearConductivity.h:43