Public Types | Public Member Functions | Static Public Attributes | List of all members
solidificationMeltingSource Class Reference

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...

Inheritance diagram for solidificationMeltingSource:
Inheritance graph
[legend]
Collaboration diagram for solidificationMeltingSource:
Collaboration graph
[legend]

Public Types

enum  thermoMode { mdThermo, mdLookup }
 
- Public Types inherited from cellSetOption
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)
 
- Public Member Functions inherited from cellSetOption
 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 wordcellSetName () const noexcept
 
scalar V () const noexcept
 
const labelListcells () const noexcept
 
scalar timeStart (scalar val) noexcept
 
scalar duration (scalar val) noexcept
 
virtual bool isActive ()
 
- Public Member Functions inherited from option
 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< optionclone () const
 
virtual ~option ()=default
 
const wordname () const noexcept
 
const fvMeshmesh () const noexcept
 
const dictionarycoeffs () 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< thermoModethermoModeTypeNames_
 
- Static Public Attributes inherited from cellSetOption
static const Enum< selectionModeTypeselectionModeTypeNames_
 

Additional Inherited Members

- Static Public Member Functions inherited from option
static autoPtr< optionNew (const word &name, const dictionary &dict, const fvMesh &mesh)
 
- Public Attributes inherited from option
bool log
 
- Protected Member Functions inherited from cellSetOption
void setSelection (const dictionary &dict)
 
void setCellSelection ()
 
void setVol ()
 
- Protected Member Functions inherited from option
void resetApplied ()
 
- Protected Attributes inherited from cellSetOption
scalar timeStart_
 
scalar duration_
 
selectionModeType selectionMode_
 
word cellSetName_
 
List< pointpoints_
 
labelList cells_
 
scalar V_
 
- Protected Attributes inherited from option
const word name_
 
const word modelType_
 
const fvMeshmesh_
 
dictionary dict_
 
dictionary coeffs_
 
wordList fieldNames_
 
List< boolapplied_
 
bool active_
 

Detailed Description

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].

Usage
Minimal example by using 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
Source files

Definition at line 247 of file solidificationMeltingSource.H.

Member Enumeration Documentation

◆ thermoMode

enum thermoMode
Enumerator
mdThermo 
mdLookup 

Definition at line 256 of file solidificationMeltingSource.H.

Constructor & Destructor Documentation

◆ solidificationMeltingSource() [1/2]

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().

Here is the call graph for this function:

◆ solidificationMeltingSource() [2/2]

◆ ~solidificationMeltingSource()

Member Function Documentation

◆ TypeName()

TypeName ( "solidificationMeltingSource"  )

◆ operator=()

void operator= ( const solidificationMeltingSource )
delete

◆ addSup() [1/4]

void addSup ( fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Reimplemented from option.

Definition at line 226 of file solidificationMeltingSource.C.

References Foam::apply().

Here is the call graph for this function:

◆ addSup() [2/4]

void addSup ( fvMatrix< vector > &  eqn,
const label  fieldi 
)
virtual

◆ addSup() [3/4]

void addSup ( const volScalarField rho,
fvMatrix< scalar > &  eqn,
const label  fieldi 
)
virtual

Reimplemented from option.

Definition at line 236 of file solidificationMeltingSource.C.

References Foam::apply(), and rho.

Here is the call graph for this function:

◆ addSup() [4/4]

void addSup ( const volScalarField rho,
fvMatrix< vector > &  eqn,
const label  fieldi 
)
virtual

Reimplemented from option.

Definition at line 284 of file solidificationMeltingSource.C.

◆ read()

bool read ( const dictionary dict)
virtual

Reimplemented from cellSetOption.

Definition at line 295 of file solidificationMeltingSource.C.

References dict, and cellSetOption::read().

Here is the call graph for this function:

Member Data Documentation

◆ thermoModeTypeNames_

const Foam::Enum< Foam::fv::solidificationMeltingSource::thermoMode > thermoModeTypeNames_
static

Definition at line 263 of file solidificationMeltingSource.H.


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