Models thermo-diffusion (aka Soret effect, thermophoresis, etc.). More...
#include <ThermoDiffusion.h>
Public Member Functions | |
ThermoDiffusion (const InputParameters ¶meters) | |
Protected Member Functions | |
virtual Real | computeQpResidual () |
virtual Real | computeQpJacobian () |
virtual Real | computeQpOffDiagJacobian (unsigned int jvar) |
Computes contribution from grad( T ) / T^2 term. More... | |
Private Member Functions | |
RealGradient | thermoDiffusionVelocity () const |
Private Attributes | |
const VariableValue & | _temperature |
const VariableGradient & | _grad_temperature |
const MaterialProperty< Real > & | _mass_diffusivity |
const MaterialProperty< Real > & | _heat_of_transport |
const Real | _gas_constant |
const unsigned int | _temperature_index |
Models thermo-diffusion (aka Soret effect, thermophoresis, etc.).
The mass flux J due to the thermal gradient is:
J_thermal = - ( D C Qstar / ( R T^2 ) ) * grad( T )
where D is the mass diffusivity (same as for Fick's law), C is the concentration Qstar is the heat of transport, R is the gas constant, and T is the temperature. Note that that grad( T ) / T^2 == -grad( 1/T ), which is how the term appears in Onsager's symmetry (this kernel works just as well for that form).
Also note that coupled diffusion terms like ThermoDiffusion (and Nernst, Ettingshausen, Dufour effects) can cause non-physical stability issues if a regular diffusion term is not included. Thus, ThermoDiffusion should always appear with a Fick's Law kernel such as CoefDiffusion.
The only restriction on the units of C, Qstar, and R is that they should be consistent with each other and with C and T (could be mass ppm, mols/m^3, etc.).
This kernel applies to the concentration C, but the off-diagonal terms in the Jacobian that are due to temperature dependence are also available.
Definition at line 37 of file ThermoDiffusion.h.
ThermoDiffusion::ThermoDiffusion | ( | const InputParameters & | parameters | ) |
Definition at line 30 of file ThermoDiffusion.C.
|
protectedvirtual |
Definition at line 63 of file ThermoDiffusion.C.
|
protectedvirtual |
|
protectedvirtual |
Definition at line 57 of file ThermoDiffusion.C.
|
private |
Definition at line 42 of file ThermoDiffusion.C.
Referenced by computeQpJacobian(), and computeQpResidual().
|
private |
Definition at line 59 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian(), and thermoDiffusionVelocity().
|
private |
Definition at line 56 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian(), and thermoDiffusionVelocity().
|
private |
Definition at line 58 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian(), and thermoDiffusionVelocity().
|
private |
Definition at line 57 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian(), and thermoDiffusionVelocity().
|
private |
Definition at line 55 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian(), and thermoDiffusionVelocity().
|
private |
Definition at line 60 of file ThermoDiffusion.h.
Referenced by computeQpOffDiagJacobian().