Solidification sources¶
Contents:
This source is designed to model the effect of solidification and melting processes. The isotherm phase change occurs at the melting temperature, \({T_{sol} = T_{liq}}\). The not isotherm phase change occurs between solidus and liquidus temperature, \({T_{sol} < T_{liq}}\) respectively. The presence of the solid phase in the flow field is incorporated into the model as a momentum porosity contribution; the energy associated with the phase change is added as an enthalpy contribution. The model generates the field <name>:alpha1 which can be visualised to show the melt distribution as a fraction [0-1].
Installation¶
Pre-requisites:
A working installation of OpenFOAM 9.
In the directChillFoam/src/fvModels directory, run:
$ wmake libso
C++ Classes¶
-
class mushyZoneSource : public fvModel¶
This source is designed to model the effect of solidification and melting processes, e.g. windshield defrosting.
The isotherm phase change occurs at the melting temperature,
Tsol
(=Tliq
). The not isotherm phase change occurs between solidus and liquidus temperature,Tsol
<Tliq
respectively.The presence of the solid phase in the flow field is incorporated into the model as a momentum porosity contribution; the energy associated with the phase change is added as an enthalpy contribution.
The model generates the field
<name>
:alpha1 which can be visualised to to show the melt distribution as a fraction [0-1].- Usage
Example usage:
where:mushyZoneSource1 { type mushyZoneSource; selectionMode cellZone; cellZone iceZone; Tsol 273; L 334000; thermoMode thermo; beta 50e-6; rhoRef 800; }
Property
Description
Required
Default value
Tsol
Solidus temperature [K]
yes
Tliq
Liquidus temperature [K]
no
Tsol
L
Latent heat of fusion [J/kg]
yes
g_env
Packing fraction
no
0.7
relax
Relaxation coefficient [0-1]
no
0.9
castingVelocity
Casting velocity [m/s]
yes
tStar
Reverse liquid fraction table
yes
thermoMode
Thermo mode [thermo
lookup]
yes
rhoRef
Reference (solid) density [kg/m^3]
yes
rho
Name of density field
no
rho
T
Name of temperature field
no
T
Cp
Name of specific heat field
no
Cp
U
Name of velocity field
no
U
phi
Name of flux field
no
phi
Cu
Model coefficient [1/s]
no
100000
q
Model coefficient
no
0.001
beta
Thermal expansion coefficient [1/K]
yes
g
Accelerartion due to gravity
no
- References
Voller, V. R., & Prakash, C. (1987). A fixed grid numerical modelling methodology for convection-diffusion mushy region phase-change problems. International Journal of Heat and Mass Transfer, 30(8), 1709-1719. doi:10.1016/0017-9310(87)90317-6
Swaminathan, C. R., & Voller, V. R. (1992). A general enthalpy method for modeling solidification processes. Metallurgical transactions B, 23(5), 651-664. doi:10.1007/BF02649725
G.S. Bruno Lebon, Georges Salloum-Abou-Jaoude, Dmitry Eskin, Iakovos Tzanakis, Koulis Pericleous, Philippe Jarry (2019). Numerical modelling of acoustic streaming during the ultrasonic melt treatment of direct-chill (DC) casting. Ultrasonics Sonochemistry, 54, 171-182. doi:10.1016/j.ultsonch.2019.02.002
- Source files
Public Functions
- TypeName ("mushyZoneSource")
Runtime type information.
-
mushyZoneSource(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh)¶
Construct from explicit source name and mesh.
-
mushyZoneSource(const mushyZoneSource&) = delete¶
Disallow default bitwise copy construction.
-
virtual wordList addSupFields() const¶
Return the list of fields for which the fvModel adds source term to the transport equation.
-
virtual void addSup(fvMatrix<scalar> &eqn, const word &fieldName) const¶
Add explicit contribution to enthalpy equation.
-
virtual void addSup(fvMatrix<vector> &eqn, const word &fieldName) const¶
Add implicit contribution to momentum equation.
-
virtual void addSup(const volScalarField &rho, fvMatrix<scalar> &eqn, const word &fieldName) const¶
Add explicit contribution to compressible enthalpy equation.
-
virtual void addSup(const volScalarField &rho, fvMatrix<vector> &eqn, const word &fieldName) const¶
Add implicit contribution to compressible momentum equation.
-
virtual void updateMesh(const mapPolyMesh&)¶
Update for mesh changes.
-
virtual bool read(const dictionary &dict)¶
Read source dictionary.
-
void operator=(const mushyZoneSource&) = delete¶
Disallow default bitwise assignment.
Testing¶
The unit tests for the fvModels libraries require the Boost libraries (>= 1.69.0). The tests are run in the tests/fvModels/case folder:
$ wmake .. # Build the test executable
$ blockMesh # Create the mesh for the test case
$ ./test_mushyZoneSource --log_level=all # Run the tests