EvaporativeCooling< number > Class Template Reference๏ƒ

Developer Documentation: MeltPoolDG::Evaporation::EvaporativeCooling< number > Class Template Reference
Developer Documentation
MeltPoolDG::Evaporation::EvaporativeCooling< number > Class Template Reference

#include <evaporative_cooling.hpp>

Public Member Functions

 EvaporativeCooling (const EvaporationData< number > &evapor_data, const MaterialData< number > &material_data, const bool setup_internal_mass_flux_operator=false)
 
template<typename ValueType >
ValueType compute_evaporative_cooling (const ValueType &mass_flux, const ValueType &temperature) const
 
number compute_evaporative_cooling (const number temperature) const
 
dealii::VectorizedArray< number > compute_evaporative_cooling (const dealii::VectorizedArray< number > &temperature) const
 
template<typename ValueType >
ValueType compute_evaporative_cooling_derivative_constant_mass_flux (const ValueType &mass_flux) const
 
number compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux (const number temperature) const
 
dealii::VectorizedArray< number > compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux (const dealii::VectorizedArray< number > &temperature) const
 

Private Member Functions

template<typename ValueType >
ValueType compute_phenomenological_specific_enthalpy (const ValueType &temperature) const
 

Private Attributes

const bool do_phenomenological_recoil_pressure
 
const number latent_heat_of_evaporation
 
const number specific_heat_capacity
 
const number specific_enthalpy_reference_temperature
 
const number boiling_temperature
 
number activation_temperature
 
bool ramp_enabled
 
number activation_ramp_derivative = 0
 
std::unique_ptr< EvaporationModelBase< number > > mass_flux_operator
 

Detailed Description

template<typename number>
class MeltPoolDG::Evaporation::EvaporativeCooling< number >

Compute the heat sink due to evaporative cooling q_s = - m ยท (h_v + h(T))

with the latent heat of evaporation h_v, the specific enthalpy

     T
    /
   |

h(T) = | c_p . (1) | / T_ref

where T_ref denotes an artificial reference temperature for the specific enthalpy.

h_v + h(T) is the total enthalpy leaving the system with the evaporative mass flux. h(T) can be typically found in tables. However, we assume for the computation of the specific enthalpy a linear temperature-dependence

h(T) = h_ref + c_p * T . (2)

see also Meier, Christoph, et al. "A novel smoothed particle hydrodynamics formulation for thermo-capillary phase change problems with focus on metal additive manufacturing melt pool modeling." CMAME 381 (2021).

By setting (1) equal to (2) and assuming the heat capacity to be temperature-independent, we obtain

h_ref = - c_p * T_ref

Inserting into (2) yields

h(T) = c_p * (T - T_ref).

Note
For the computation of h(T), it is assumed that the specific heat capacity c_p corresponds to the value for the liquid and solid phase.
Instead of T_ref we could have also introduced directly h_ref as an input parameter.

Constructor & Destructor Documentation

◆ EvaporativeCooling()

template<typename number >
MeltPoolDG::Evaporation::EvaporativeCooling< number >::EvaporativeCooling ( const EvaporationData< number > &  evapor_data,
const MaterialData< number > &  material_data,
const bool  setup_internal_mass_flux_operator = false 
)

Member Function Documentation

◆ compute_evaporative_cooling() [1/3]

template<typename number >
dealii::VectorizedArray< number > MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling ( const dealii::VectorizedArray< number > &  temperature) const
inline

◆ compute_evaporative_cooling() [2/3]

template<typename number >
number MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling ( const number  temperature) const
inline

Compute the heat sink with the internal mass flux operator

◆ compute_evaporative_cooling() [3/3]

template<typename number >
template<typename ValueType >
ValueType MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling ( const ValueType &  mass_flux,
const ValueType &  temperature 
) const
inline

Compute the heat sink with given a constant

Parameters
mass_fluxas:

◆ compute_evaporative_cooling_derivative_constant_mass_flux()

template<typename number >
template<typename ValueType >
ValueType MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling_derivative_constant_mass_flux ( const ValueType &  mass_flux) const
inline

Compute the heat sink derivative given a constant

Parameters
mass_flux.

The derivative of specific enthalpy h(T) with respect to the temperature:

d h(T) -----— = c_p^sl dT

tangent of heat sink due to evaporation:

d q_s . ----— = - m * c_p^sl dT

◆ compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux() [1/2]

template<typename number >
dealii::VectorizedArray< number > MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux ( const dealii::VectorizedArray< number > &  temperature) const
inline

◆ compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux() [2/2]

template<typename number >
number MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_evaporative_cooling_derivative_with_temperature_dependent_mass_flux ( const number  temperature) const
inline

Compute the heat sink derivative with the internal mass flux operator

                                       .

d q_s . d m ----— = - c_p^sl * m - (h_v + h(T)) * --— dT dT

◆ compute_phenomenological_specific_enthalpy()

template<typename number >
template<typename ValueType >
ValueType MeltPoolDG::Evaporation::EvaporativeCooling< number >::compute_phenomenological_specific_enthalpy ( const ValueType &  temperature) const
inlineprivate

Member Data Documentation

◆ activation_ramp_derivative

template<typename number >
number MeltPoolDG::Evaporation::EvaporativeCooling< number >::activation_ramp_derivative = 0
private

◆ activation_temperature

template<typename number >
number MeltPoolDG::Evaporation::EvaporativeCooling< number >::activation_temperature
private

◆ boiling_temperature

template<typename number >
const number MeltPoolDG::Evaporation::EvaporativeCooling< number >::boiling_temperature
private

◆ do_phenomenological_recoil_pressure

template<typename number >
const bool MeltPoolDG::Evaporation::EvaporativeCooling< number >::do_phenomenological_recoil_pressure
private

◆ latent_heat_of_evaporation

template<typename number >
const number MeltPoolDG::Evaporation::EvaporativeCooling< number >::latent_heat_of_evaporation
private

◆ mass_flux_operator

template<typename number >
std::unique_ptr<EvaporationModelBase<number> > MeltPoolDG::Evaporation::EvaporativeCooling< number >::mass_flux_operator
private

◆ ramp_enabled

template<typename number >
bool MeltPoolDG::Evaporation::EvaporativeCooling< number >::ramp_enabled
private

◆ specific_enthalpy_reference_temperature

template<typename number >
const number MeltPoolDG::Evaporation::EvaporativeCooling< number >::specific_enthalpy_reference_temperature
private

◆ specific_heat_capacity

template<typename number >
const number MeltPoolDG::Evaporation::EvaporativeCooling< number >::specific_heat_capacity
private

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