This source is designed to model the effect of solidification and melting processes, e.g. windhield defrosting, within a specified region. The phase change occurs at the melting temperature, Tmelt
.
More...
Public Types | |
enum | thermoMode { mdThermo, mdLookup } |
![]() | |
enum | selectionModeType { smAll, smCellSet, smCellZone, smPoints } |
Public Member Functions | |
TypeName ("solidificationMeltingSource") | |
solidificationMeltingSource (const word &sourceName, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
solidificationMeltingSource (const solidificationMeltingSource &)=delete | |
void | operator= (const solidificationMeltingSource &)=delete |
~solidificationMeltingSource ()=default | |
virtual void | addSup (fvMatrix< scalar > &eqn, const label fieldi) |
virtual void | addSup (fvMatrix< vector > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< scalar > &eqn, const label fieldi) |
virtual void | addSup (const volScalarField &rho, fvMatrix< vector > &eqn, const label fieldi) |
virtual bool | read (const dictionary &dict) |
![]() | |
TypeName ("cellSetOption") | |
cellSetOption (const word &name, const word &modelType, const dictionary &dict, const fvMesh &mesh) | |
virtual | ~cellSetOption ()=default |
scalar | timeStart () const noexcept |
scalar | duration () const noexcept |
bool | inTimeLimits (const scalar timeValue) const |
selectionModeType | selectionMode () const noexcept |
bool | useSubMesh () const noexcept |
const word & | cellSetName () const noexcept |
scalar | V () const noexcept |
const labelList & | cells () const noexcept |
scalar | timeStart (scalar val) noexcept |
scalar | duration (scalar val) noexcept |
virtual bool | isActive () |
![]() | |
TypeName ("option") | |
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) | |
autoPtr< option > | clone () const |
virtual | ~option ()=default |
const word & | name () const noexcept |
const fvMesh & | mesh () const noexcept |
const dictionary & | coeffs () const noexcept |
bool | active () const noexcept |
void | setApplied (const label fieldi) |
bool | active (const bool on) noexcept |
virtual label | applyToField (const word &fieldName) const |
virtual void | checkApplied () const |
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 | postProcessSens (scalarField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null) |
virtual void | postProcessSens (vectorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null) |
virtual void | postProcessSens (tensorField &sensField, const word &fieldName=word::null, const word &designVariablesName=word::null) |
virtual void | writeHeader (Ostream &) const |
virtual void | writeFooter (Ostream &) const |
virtual void | writeData (Ostream &) const |
Static Public Attributes | |
static const Enum< thermoMode > | thermoModeTypeNames_ |
![]() | |
static const Enum< selectionModeType > | selectionModeTypeNames_ |
Additional Inherited Members | |
![]() | |
static autoPtr< option > | New (const word &name, const dictionary &dict, const fvMesh &mesh) |
![]() | |
bool | log |
![]() | |
void | setSelection (const dictionary &dict) |
void | setCellSelection () |
void | setVol () |
![]() | |
void | resetApplied () |
![]() | |
scalar | timeStart_ |
scalar | duration_ |
selectionModeType | selectionMode_ |
word | cellSetName_ |
List< point > | points_ |
labelList | cells_ |
scalar | V_ |
![]() | |
const word | name_ |
const word | modelType_ |
const fvMesh & | mesh_ |
dictionary | dict_ |
dictionary | coeffs_ |
wordList | fieldNames_ |
List< bool > | applied_ |
bool | active_ |
This source is designed to model the effect of solidification and melting processes, e.g. windhield defrosting, within a specified region. 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.
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
The model generates a field <name>
:alpha1 which can be visualised to to show the melt distribution as a fraction [0-1].
constant/fvOptions
: solidificationMeltingSource1 { // Mandatory entries (unmodifiable) type solidificationMeltingSource; // Mandatory entries (runtime modifiable) Tmelt 273; L 334000; thermoMode <thermoModeName>; rhoRef 800; beta 5e-6; // Optional entries (runtime modifiable) relax 0.9; T <Tname>; rho <rhoName>; U <Uname>; phi <phiName>; Cu 1e5; q 1e-2; // Conditional optional entries (runtime modifiable) // when thermoMode=lookup Cp Cp; // Conditional mandatory entries (runtime modifiable) // when Cp=CpRef CpRef 1000; // Mandatory/Optional (inherited) entries ... }
where the entries mean:
Property | Description | Type | Reqd | Dflt |
---|---|---|---|---|
type | Type name: solidificationMeltingSource | word | yes | - |
Tmelt | Melting temperature [K] | scalar | yes | - |
L | Latent heat of fusion [J/kg] | scalar | yes | - |
thermoMode | Thermo mode | word | yes | - |
rhoRef | Reference (solid) density | scalar | yes | - |
beta | Thermal expansion coefficient [1/K] | scalar | yes | - |
relax | Relaxation factor [0-1] | scakar | no | 0.9 |
T | Name of operand temperature field | word | no | T |
rho | Name of operand density field | word | no | rho |
U | Name of operand velocity field | word | no | U |
phi | Name of operand flux field | word | no | phi |
Cu | Mushy region momentum sink coefficient [1/s] | scalar | no | 1e5 |
q | Coefficient used in porosity calc | scalar | no | 1e-2 |
Cp | Name of specific heat capacity field | word | cndtnl | Cp |
CpRef | Specific heat capacity value | scalar | cndtnl | - |
The inherited entries are elaborated in:
Options for the thermoMode
entry:
thermo | Access Cp information from database lookup | Access Cp information by looking up from dictionary
Definition at line 247 of file solidificationMeltingSource.H.
enum thermoMode |
Enumerator | |
---|---|
mdThermo | |
mdLookup |
Definition at line 256 of file solidificationMeltingSource.H.
solidificationMeltingSource | ( | const word & | sourceName, |
const word & | modelType, | ||
const dictionary & | dict, | ||
const fvMesh & | mesh | ||
) |
Definition at line 156 of file solidificationMeltingSource.C.
References Foam::abort(), basicThermo::dictName, Foam::FatalError, FatalErrorInFunction, and option::resetApplied().
|
delete |
|
default |
TypeName | ( | "solidificationMeltingSource" | ) |
|
delete |
|
virtual |
Reimplemented from option.
Definition at line 226 of file solidificationMeltingSource.C.
References Foam::apply().
Reimplemented from option.
Definition at line 247 of file solidificationMeltingSource.C.
References Cp, Foam::expressions::patchExpr::debug, Foam::endl(), forAll, g, Foam::Info, gravity::New(), Foam::pow3(), fvMatrix::psi(), fvMatrix::source(), Sp, Foam::sqr(), Su, Foam::type(), update(), and dimensioned::value().
|
virtual |
Reimplemented from option.
Definition at line 236 of file solidificationMeltingSource.C.
References Foam::apply(), and rho.
|
virtual |
Reimplemented from option.
Definition at line 284 of file solidificationMeltingSource.C.
|
virtual |
Reimplemented from cellSetOption.
Definition at line 295 of file solidificationMeltingSource.C.
References dict, and cellSetOption::read().
|
static |
Definition at line 263 of file solidificationMeltingSource.H.
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.