This source is designed to model the effect of solidification and melting processes, e.g. windhield defrosting. The phase change occurs at the melting temperature, Tmelt
.
More...
Public Types | |
enum | thermoMode { mdThermo, mdLookup } |
![]() | |
enum | selectionModeType { smPoints, smCellSet, smCellZone, smAll } |
Enumeration for selection mode types. More... | |
Public Member Functions | |
TypeName ("solidificationMeltingSource") | |
Runtime type information. More... | |
solidificationMeltingSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from explicit source name and mesh. More... | |
virtual void | addSup (fvMatrix< scalar > &eqn, const label fieldI) |
Add explicit contribution to enthalpy equation. More... | |
virtual void | addSup (fvMatrix< vector > &eqn, const label fieldI) |
Add implicit contribution to momentum equation. More... | |
virtual void | addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldI) |
Add explicit contribution to compressible enthalpy equation. More... | |
virtual void | addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldI) |
Add implicit contribution to compressible momentum equation. More... | |
virtual bool | read (const dictionary &dict) |
Read source dictionary. More... | |
![]() | |
TypeName ("cellSetOption") | |
Runtime type information. More... | |
cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
virtual | ~cellSetOption () |
Destructor. More... | |
scalar | timeStart () const |
Return const access to the time start. More... | |
scalar | duration () const |
Return const access to the duration. More... | |
bool | inTimeLimits (const scalar time) const |
Return true if within time limits. More... | |
const selectionModeType & | selectionMode () const |
Return const access to the cell selection mode. More... | |
const word & | cellSetName () const |
Return const access to the name of cell set for "cellSet". More... | |
scalar | V () const |
Return const access to the total cell volume. More... | |
const labelList & | cells () const |
Return const access to the cell set. More... | |
scalar & | timeStart () |
Return access to the time start. More... | |
scalar & | duration () |
Return access to the duration. More... | |
virtual bool | isActive () |
Is the source active? More... | |
![]() | |
TypeName ("option") | |
Runtime type information. More... | |
declareRunTimeSelectionTable (autoPtr, option, dictionary,(const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh),(name, modelType, dict, mesh)) | |
option (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
Construct from components. More... | |
autoPtr< option > | clone () const |
Return clone. More... | |
virtual | ~option () |
Destructor. More... | |
const word & | name () const |
Return const access to the source name. More... | |
const fvMesh & | mesh () const |
Return const access to the mesh database. More... | |
const dictionary & | coeffs () const |
Return dictionary. More... | |
bool | active () const |
Return const access to the source active flag. More... | |
void | setApplied (const label fieldI) |
Set the applied flag to true for field index fieldI. More... | |
Switch & | active () |
Return access to the source active flag. More... | |
virtual label | applyToField (const word &fieldName) const |
Return index of field name if found in fieldNames list. More... | |
virtual void | checkApplied () const |
Check that the source has been applied. More... | |
virtual void | addSup (fvMatrix< symmTensor > &eqn, const label fieldI) |
virtual void | addSup (fvMatrix< sphericalTensor > &eqn, const label fieldI) |
virtual void | addSup (fvMatrix< tensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< symmTensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< sphericalTensor > &eqn, const label fieldI) |
virtual void | addSup (const volScalarField &alpha, const volScalarField &rho, fvMatrix< tensor > &eqn, const label fieldI) |
virtual void | constrain (fvMatrix< scalar > &eqn, const label fieldI) |
virtual void | constrain (fvMatrix< vector > &eqn, const label fieldI) |
virtual void | constrain (fvMatrix< sphericalTensor > &eqn, const label fieldI) |
virtual void | constrain (fvMatrix< symmTensor > &eqn, const label fieldI) |
virtual void | constrain (fvMatrix< tensor > &eqn, const label fieldI) |
virtual void | correct (volScalarField &field) |
virtual void | correct (volVectorField &field) |
virtual void | correct (volSphericalTensorField &field) |
virtual void | correct (volSymmTensorField &field) |
virtual void | correct (volTensorField &field) |
virtual void | writeHeader (Ostream &) const |
Write the source header information. More... | |
virtual void | writeFooter (Ostream &) const |
Write the source footer information. More... | |
virtual void | writeData (Ostream &) const |
Write the source properties. More... | |
Static Public Attributes | |
static const NamedEnum< thermoMode, 2 > | thermoModeTypeNames_ |
![]() | |
static const NamedEnum< selectionModeType, 4 > | selectionModeTypeNames_ |
Word list of selection mode type names. More... | |
Private Member Functions | |
tmp< volScalarField > | Cp () const |
Return the specific heat capacity field. More... | |
vector | g () const |
Return the gravity vector. More... | |
void | update (const volScalarField &Cp) |
Update the model. More... | |
template<class RhoFieldType > | |
void | apply (const RhoFieldType &rho, fvMatrix< scalar > &eqn) |
Helper function to apply to the energy equation. More... | |
solidificationMeltingSource (const solidificationMeltingSource &) | |
Disallow default bitwise copy construct. More... | |
void | operator= (const solidificationMeltingSource &) |
Disallow default bitwise assignment. More... | |
Private Attributes | |
scalar | Tmelt_ |
Temperature at which melting occurs [K]. More... | |
scalar | L_ |
Latent heat of fusion [J/kg]. More... | |
scalar | relax_ |
Phase fraction under-relaxation coefficient. More... | |
thermoMode | mode_ |
Thermodynamics mode. More... | |
scalar | rhoRef_ |
Reference density - typically the solid density. More... | |
word | TName_ |
Name of temperature field - default = "T" (optional) More... | |
word | CpName_ |
Name of specific heat capacity field - default = "Cp" (optional) More... | |
word | UName_ |
Name of velocity field - default = "U" (optional) More... | |
word | phiName_ |
Name of flux field - default = "phi" (optional) More... | |
scalar | Cu_ |
Mushy region momentum sink coefficient [1/s]; default = 10^5. More... | |
scalar | q_ |
Coefficient used in porosity calc - default = 0.001. More... | |
scalar | beta_ |
Thermal expansion coefficient [1/K]. More... | |
volScalarField | alpha1_ |
Phase fraction indicator field. More... | |
label | curTimeIndex_ |
Current time index (used for updating) More... | |
scalarField | deltaT_ |
Temperature change cached for source calculation when alpha1 updated. More... | |
Additional Inherited Members | |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
Return a reference to the selected fvOption model. More... | |
![]() | |
void | setSelection (const dictionary &dict) |
Set the cellSet or points selection. More... | |
void | setCellSet () |
Set the cell set based on the user input selection mode. More... | |
![]() | |
scalar | timeStart_ |
Time start. More... | |
scalar | duration_ |
Duration. More... | |
selectionModeType | selectionMode_ |
Cell selection mode. More... | |
word | cellSetName_ |
Name of cell set for "cellSet" and "cellZone" selectionMode. More... | |
List< point > | points_ |
List of points for "points" selectionMode. More... | |
labelList | cells_ |
Set of cells to apply source to. More... | |
scalar | V_ |
Sum of cell volumes. More... | |
![]() | |
const word | name_ |
Source name. More... | |
const word | modelType_ |
Model type. More... | |
const fvMesh & | mesh_ |
Reference to the mesh database. More... | |
dictionary | dict_ |
Top level source dictionary. More... | |
dictionary | coeffs_ |
Dictionary containing source coefficients. More... | |
Switch | active_ |
Source active flag. More... | |
wordList | fieldNames_ |
Field names to apply source to - populated by derived models. More... | |
List< bool > | applied_ |
Applied flag list - corresponds to each fieldNames_ entry. More... | |
This source is designed to model the effect of solidification and melting processes, e.g. windhield defrosting. The phase change occurs at the melting temperature, Tmelt
.
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.
Based on the references:
The model generates a field <name>
:alpha1 which can be visualised to to show the melt distribution as a fraction [0-1]
Source usage
Example usage:
solidificationMeltingSource1 { type solidificationMeltingSource; active yes; solidificationMeltingSourceCoeffs { selectionMode cellZone; cellZone iceZone; Tmelt 273; L 334000; thermoMode thermo; beta 50e-6; rhoRef 800; } }
Where:
Property | Description | Required | Default value | |
---|---|---|---|---|
Tmelt | Melting temperature [K] | yes | ||
L | Latent heat of fusion [J/kg] | yes | ||
relax | Relaxation coefficient [0-1] | no | 0.9 | |
thermoMode | Thermo mode [thermo | lookup] | yes | |
rhoRef | Reference (solid) density | yes | ||
rhoName | Name of density field | no | rho | |
TName | Name of temperature field | no | T | |
CpName | Name of specific heat capacity field | no | Cp | |
UName | Name of velocity field | no | U | |
phiName | Name of flux field | no | phi | |
Cu | Model coefficient | no | 100000 | |
q | Model coefficient | no | 0.001 | |
beta | Thermal expansion coefficient [1/K] | yes | ||
g | Accelerartion due to gravity | no |
Definition at line 188 of file solidificationMeltingSource.H.
enum thermoMode |
Enumerator | |
---|---|
mdThermo | |
mdLookup |
Definition at line 194 of file solidificationMeltingSource.H.
|
private |
Disallow default bitwise copy construct.
solidificationMeltingSource | ( | const word & | sourceName, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Construct from explicit source name and mesh.
Definition at line 182 of file solidificationMeltingSource.C.
References Foam::abort(), basicThermo::dictName, Foam::FatalError, and FatalErrorInFunction.
|
private |
Return the specific heat capacity field.
Definition at line 69 of file solidificationMeltingSource.C.
References Foam::abort(), option::coeffs_, solidificationMeltingSource::CpName_, basicThermo::dictName, Foam::dimEnergy, Foam::dimMass, Foam::dimTemperature, Foam::FatalError, FatalErrorInFunction, dictionary::lookup(), objectRegistry::lookupObject(), solidificationMeltingSource::mdLookup, solidificationMeltingSource::mdThermo, option::mesh_, solidificationMeltingSource::mode_, option::name_, IOobject::NO_READ, IOobject::NO_WRITE, Foam::readScalar(), solidificationMeltingSource::thermoModeTypeNames_, fvMesh::time(), and Time::timeName().
|
private |
Return the gravity vector.
Definition at line 129 of file solidificationMeltingSource.C.
References dimensioned::value().
|
private |
Update the model.
Definition at line 144 of file solidificationMeltingSource.C.
References Foam::endl(), forAll, Foam::Info, Foam::max(), Foam::min(), Foam::T(), and Foam::type().
|
private |
Helper function to apply to the energy equation.
Definition at line 33 of file solidificationMeltingSourceTemplates.C.
References Foam::fvc::ddt(), Foam::dimEnergy, Foam::dimMass, Foam::dimTemperature, Foam::endl(), Foam::Info, fvMatrix::psi(), rho, and Foam::type().
|
private |
Disallow default bitwise assignment.
TypeName | ( | "solidificationMeltingSource" | ) |
Runtime type information.
Add explicit contribution to enthalpy equation.
Reimplemented from option.
Definition at line 252 of file solidificationMeltingSource.C.
Add implicit contribution to momentum equation.
Reimplemented from option.
Definition at line 273 of file solidificationMeltingSource.C.
References Foam::endl(), forAll, g, Foam::Info, Foam::pow3(), fvMatrix::psi(), fvMatrix::source(), Foam::fvc::Sp(), Foam::sqr(), Foam::fvc::Su(), and Foam::type().
|
virtual |
Add explicit contribution to compressible enthalpy equation.
Reimplemented from option.
Definition at line 262 of file solidificationMeltingSource.C.
References rho.
|
virtual |
Add implicit contribution to compressible momentum equation.
Reimplemented from option.
Definition at line 310 of file solidificationMeltingSource.C.
|
virtual |
Read source dictionary.
Reimplemented from cellSetOption.
Definition at line 30 of file solidificationMeltingSourceIO.C.
References solidificationMeltingSource::beta_, option::coeffs_, solidificationMeltingSource::Cu_, dict, solidificationMeltingSource::L_, dictionary::lookup(), solidificationMeltingSource::mode_, solidificationMeltingSource::q_, NamedEnum< Enum, nEnum >::read(), cellSetOption::read(), dictionary::readIfPresent(), solidificationMeltingSource::relax_, solidificationMeltingSource::rhoRef_, solidificationMeltingSource::thermoModeTypeNames_, solidificationMeltingSource::Tmelt_, solidificationMeltingSource::TName_, and solidificationMeltingSource::UName_.
|
static |
Definition at line 200 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::Cp(), and solidificationMeltingSource::read().
|
private |
Temperature at which melting occurs [K].
Definition at line 208 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Latent heat of fusion [J/kg].
Definition at line 211 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Phase fraction under-relaxation coefficient.
Definition at line 214 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Thermodynamics mode.
Definition at line 217 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::Cp(), and solidificationMeltingSource::read().
|
private |
Reference density - typically the solid density.
Definition at line 220 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Name of temperature field - default = "T" (optional)
Definition at line 223 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Name of specific heat capacity field - default = "Cp" (optional)
Definition at line 226 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::Cp().
|
private |
Name of velocity field - default = "U" (optional)
Definition at line 229 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Name of flux field - default = "phi" (optional)
Definition at line 232 of file solidificationMeltingSource.H.
|
private |
Mushy region momentum sink coefficient [1/s]; default = 10^5.
Definition at line 235 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Coefficient used in porosity calc - default = 0.001.
Definition at line 238 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Thermal expansion coefficient [1/K].
Definition at line 241 of file solidificationMeltingSource.H.
Referenced by solidificationMeltingSource::read().
|
private |
Phase fraction indicator field.
Definition at line 244 of file solidificationMeltingSource.H.
|
private |
Current time index (used for updating)
Definition at line 247 of file solidificationMeltingSource.H.
|
private |
Temperature change cached for source calculation when alpha1 updated.
Definition at line 250 of file solidificationMeltingSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.