EvaporationModelKnight< number, number_2 > Class Template Reference

Developer Documentation: MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 > Class Template Reference
Developer Documentation
MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 > Class Template Reference

This class implements the evaporative mass flux and temperature jump for rapid evaporation according to Knight's theory. More...

#include <evaporation_model_knight.hpp>

Public Member Functions

 EvaporationModelKnight (const number atmospheric_pressure, const number boiling_temperature_at_atmospheric_pressure, const number latent_heat_of_evaporation, const number specific_gas_constant, const number specific_heat_ratio_vapor)
 Constructor.
 
void reinit (const number_2 &T_liquid, const number_2 &Ma_gas, const unsigned int n_active_lanes=dealii::VectorizedArray< number >::size())
 Use Knight's theory to evaluate the current evaporative mass flux and temperature jump T_liquid - T_gas.
 
number_2 get_evaporative_mass_flux () const
 Getter function for the evaporative mass flux.
 
number_2 get_temperature_jump () const
 Getter function for the temperature jump T_liquid - T_gas.
 

Private Member Functions

number_2 compute_temperature_ratio (const number_2 &m_g) const
 Calculate the temperature ratio T_gas/T_sat according to Knight's theory.
 
number_2 compute_density_ratio (const number_2 &T_gas_over_T_sat, const number_2 &m_g, const number_2 &exp_m_g_2, const number_2 &erfc_m_g) const
 Calculate the density ratio rho_gas/rho_sat according to Knight's theory.
 
number_2 compute_factor_beta (const number_2 &T_gas_over_T_sat, const number_2 &rho_gas_over_rho_sat, const number_2 &m_g, const number_2 &exp_m_g_2) const
 Calculate the factor beta according to Knight's theory.
 
void apply_boiling_threshold (const number_2 &T_sat)
 Restrict evaporation to liquid temperatures above the boiling temperature.
 

Private Attributes

const number atmospheric_pressure
 Atmospheric pressure in the gas phase (gas chamber pressure)
 
const number boiling_temperature_at_atmospheric_pressure
 Boiling temperature of the considered material at atmospheric pressure conditions.
 
const number latent_heat_of_evaporation
 Latent heat of evaporation.
 
const number specific_gas_constant
 Specific gas constant.
 
const number specific_heat_ratio_vapor
 Ratio of specific heats for the vapor phase.
 
const number temperature_constant
 Temperature constant for Clausius-Clapeyron equation.
 
const number helper_mass_flux
 Precomputed helper variable for the mass flux computation.
 
const number helper_temperature_ratio
 Precomputed helper variable for the temperature ratio computation.
 
number_2 evaporative_mass_flux {}
 Evaporative mass flux from Knight's theory.
 
number_2 temperature_jump {}
 Temperature jump from Knight's theory.
 

Detailed Description

template<typename number, typename number_2 = number>
class MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >

This class implements the evaporative mass flux and temperature jump for rapid evaporation according to Knight's theory.

Knight, C. J. (1979). Theoretical modeling of rapid surface vaporization with back pressure. AIAA journal, 17(5), 519-523. DOI: 10.2514/3.61164

It is derived from kinetic gas theory and couples the liquid and gaseous phase in a thermodynamically consistent way.

Template Parameters
numberFloating point type.
number_2A vectorized array data type can be passed as second template parameter, that is used for vectorized computation.
Note
By default, number_2 is set to the given floating point type number.
Currently, a monoatomic ideal gas is assumed. In addition, the material is assumed to consist of one species with averaged material properties. No component-wise evaporation behavior is considered for alloys.

Constructor & Destructor Documentation

◆ EvaporationModelKnight()

template<typename number , typename number_2 >
MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::EvaporationModelKnight ( const number  atmospheric_pressure,
const number  boiling_temperature_at_atmospheric_pressure,
const number  latent_heat_of_evaporation,
const number  specific_gas_constant,
const number  specific_heat_ratio_vapor 
)
explicit

Constructor.

Parameters
atmospheric_pressureAtmospheric pressure in the gas phase (gas chamber pressure).
boiling_temperature_at_atmospheric_pressureBoiling temperature of the considered material at atmospheric pressure conditions.
latent_heat_of_evaporationLatent heat of evaporation.
specific_gas_constantSpecific gas constant.
specific_heat_ratio_vaporRatio of specific heats for the vapor phase.

Member Function Documentation

◆ apply_boiling_threshold()

template<typename number , typename number_2 >
void MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::apply_boiling_threshold ( const number_2 &  T_sat)
private

Restrict evaporation to liquid temperatures above the boiling temperature.

This function simply sets the evaporative_mass_flux and temperature_jump to zero, if the liquid surface temperature T_sat is below the boiling temperature.

Parameters
T_satSaturated vapor temperature at liquid surface (=liquid surface temperature).

◆ compute_density_ratio()

template<typename number , typename number_2 >
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::compute_density_ratio ( const number_2 &  T_gas_over_T_sat,
const number_2 &  m_g,
const number_2 &  exp_m_g_2,
const number_2 &  erfc_m_g 
) const
private

Calculate the density ratio rho_gas/rho_sat according to Knight's theory.

Parameters
T_gas_over_T_satTemperature ratio T_gas/T_sat.
m_gDimensionless gas velocity.
exp_m_g_2Precomputed exponential of the squared dimensionless gas velocity m_g.
erfc_m_gPrecomputed complementary error function of the dimensionless gas velocity m_g.
Returns
Density ratio rho_gas/rho_sat.

◆ compute_factor_beta()

template<typename number , typename number_2 >
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::compute_factor_beta ( const number_2 &  T_gas_over_T_sat,
const number_2 &  rho_gas_over_rho_sat,
const number_2 &  m_g,
const number_2 &  exp_m_g_2 
) const
private

Calculate the factor beta according to Knight's theory.

This factor corresponds to the amount of back-scattered atoms in the Knudsen layer. It can be determined from kinetic gas theory.

Parameters
T_gas_over_T_satTemperature ratio T_gas/T_sat.
rho_gas_over_rho_satDensity ratio rho_gas/rho_sat.
m_gDimensionless velocity.
exp_m_g_2Precomputed exponential of the squared dimensionless velocity m_g.
Returns
Factor beta.

◆ compute_temperature_ratio()

template<typename number , typename number_2 >
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::compute_temperature_ratio ( const number_2 &  m_g) const
private

Calculate the temperature ratio T_gas/T_sat according to Knight's theory.

Parameters
m_gDimensionless gas velocity.
Returns
Temperature ratio T_gas/T_sat.

◆ get_evaporative_mass_flux()

template<typename number , typename number_2 = number>
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::get_evaporative_mass_flux ( ) const
inline

Getter function for the evaporative mass flux.

Returns
Evaporative mass flux.

◆ get_temperature_jump()

template<typename number , typename number_2 = number>
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::get_temperature_jump ( ) const
inline

Getter function for the temperature jump T_liquid - T_gas.

Returns
Temperature jump T_liquid - T_gas.

◆ reinit()

template<typename number , typename number_2 >
void MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::reinit ( const number_2 &  T_liquid,
const number_2 &  Ma_gas,
const unsigned int  n_active_lanes = dealii::VectorizedArray<number>::size() 
)

Use Knight's theory to evaluate the current evaporative mass flux and temperature jump T_liquid - T_gas.

Parameters
T_liquidCurrent liquid surface temperature.
Ma_gasCurrent Mach number in the gas phase at interface position.
n_active_lanesNumber of active lanes in the VectorizedArray.
Note
This function just updates the current values for the evaporative mass flux and temperature jump. Use the provided getter functions for access. Make sure to properly call this function before you apply the getter functions for mass flux and temperature jump.

Member Data Documentation

◆ atmospheric_pressure

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::atmospheric_pressure
private

Atmospheric pressure in the gas phase (gas chamber pressure)

◆ boiling_temperature_at_atmospheric_pressure

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::boiling_temperature_at_atmospheric_pressure
private

Boiling temperature of the considered material at atmospheric pressure conditions.

◆ evaporative_mass_flux

template<typename number , typename number_2 = number>
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::evaporative_mass_flux {}
private

Evaporative mass flux from Knight's theory.

◆ helper_mass_flux

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::helper_mass_flux
private

Precomputed helper variable for the mass flux computation.

◆ helper_temperature_ratio

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::helper_temperature_ratio
private

Precomputed helper variable for the temperature ratio computation.

◆ latent_heat_of_evaporation

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::latent_heat_of_evaporation
private

Latent heat of evaporation.

◆ specific_gas_constant

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::specific_gas_constant
private

Specific gas constant.

◆ specific_heat_ratio_vapor

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::specific_heat_ratio_vapor
private

Ratio of specific heats for the vapor phase.

◆ temperature_constant

template<typename number , typename number_2 = number>
const number MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::temperature_constant
private

Temperature constant for Clausius-Clapeyron equation.

◆ temperature_jump

template<typename number , typename number_2 = number>
number_2 MeltPoolDG::Evaporation::EvaporationModelKnight< number, number_2 >::temperature_jump {}
private

Temperature jump from Knight's theory.


The documentation for this class was generated from the following files: