DeltaApproximationReciprocalTimesHeavisidePhaseWeighted< number > Class Template Reference
|
Developer Documentation
|
#include <delta_approximation_phase_weighted.hpp>
Public Member Functions | |
| DeltaApproximationReciprocalTimesHeavisidePhaseWeighted (const DeltaApproximationPhaseWeightedData< number > &data) | |
| number | compute_weight (const number level_set_heaviside) const override |
| dealii::VectorizedArray< number > | compute_weight (const dealii::VectorizedArray< number > &level_set_heaviside) const override |
Public Member Functions inherited from MeltPoolDG::LevelSet::DeltaApproximationBase< number > | |
| virtual | ~DeltaApproximationBase ()=default |
Private Member Functions | |
| template<typename value_type > | |
| value_type | compute_weight_internal (const value_type &level_set_heaviside) const |
Private Attributes | |
| const number | w_1g |
| const number | w_1h |
| const number | w_2g |
| const number | w_2h |
| const number | correction_factor |
Detailed Description
class MeltPoolDG::LevelSet::DeltaApproximationReciprocalTimesHeavisidePhaseWeighted< number >
Asymmetric, Dirac delta approximation function, phase weighted with the density distribution consistent with the mass flux due to evaporation time an additional weight
This function can be used to approximate the Dirac delta function for diffuse interfaces. The approximation is asymmetric and you can weigh the two phases individually. The function is defined as
δ_w(φ) = δ(φ) * W(φ).
The function is dependent only on the heaviside representation of the level set φ (=indicator) The symmetric delta function δ(φ) is defined as the norm of the indicator gradient ∇φ:
δ = ||∇φ||
The weight function W(φ) is defined as
(1 - φ) w_2g + φ w_2h
W(φ) = ------------------------— * c_corr, φ / w_1h + (1 - φ) / w_1g
with the correction factor
/ w_1g w_1h ln( w_1g / w_1h )
c_corr = | w_2g --------------------------— \ w_1g - w_1h
1 / w_1g ( ln( w_1h / w_1g ) - 1 ) + 1 / w_1h \-1
- (w_2h - w_2g) * --------------------------------------------— | ( 1/w_1h - 1/w_1g )² /
where w_1g and w_2g are the weights of the gaseous phase (at level set = -1) and w_1h and w_2h are the weights of the heavy phase (at level set = 1). The weights can be chosen arbitrarily, as long as
w_1g > 0 w_1h > 0 w_1g != w_1h w_2g > 0 or w_2h != w_2g
- Note
- If the density is determined consistent with mass flux due to evaporation, this Dirac delta approximation can be used to scale interface quantities with the density distribution by choosing the first set of weights (w_1g and w_1h) equal to their densities. The second set of weights (w_2g and w_2h) can be chosen independently.
Constructor & Destructor Documentation
◆ DeltaApproximationReciprocalTimesHeavisidePhaseWeighted()
|
inline |
Member Function Documentation
◆ compute_weight() [1/2]
|
inlineoverridevirtual |
◆ compute_weight() [2/2]
|
inlineoverridevirtual |
◆ compute_weight_internal()
|
inlineprivate |
This function calculates the asymmetric
(1 - φ) w_2g + φ w_2h
W(φ) = ------------------------— * c_corr φ / w_1h + (1 - φ) / w_1g
Member Data Documentation
◆ correction_factor
|
private |
◆ w_1g
|
private |
◆ w_1h
|
private |
◆ w_2g
|
private |
◆ w_2h
|
private |
The documentation for this class was generated from the following file:
- include/meltpooldg/level_set/delta_approximation_phase_weighted.hpp
Generated by
Public Member Functions inherited from