Mushy Layer  1.0
Classes | Enumerations
mushyLayerOpt.h File Reference

Go to the source code of this file.

Classes

struct  MushyLayerOptions
 Contains most of the options for running the code, and how to handle the equations. More...
 

Enumerations

enum  RefinementMethod {
  tagSpeed, tagChannels, tagPlumeMush, tagMushChannels,
  tagScalar, tagVector, tagMushChannelsCompositeCriteria
}
 Different ways to add refinement. More...
 
enum  MGmethod { MGTypeStandard, MGTypeFAS }
 Different multigrid methods. More...
 
enum  TaggingMethod { UndividedGradient, Magnitude, CompareLargerThan, CompareLargerThanNegative }
 Strategy for tagging cells. More...
 
enum  RefluxMethod { LinearReflux, LinearVCReflux, NonlinearReflux }
 Methods for doing implicit refluxing - i.e. what sort of equation to we solve for the correction. More...
 
enum  velocityAdvectionTypes { m_porosityInAdvection, m_porosityOutsideAdvection, m_noPorosity }
 Options for handling advection velocities, where S is the source term. More...
 
enum  PorosityFunctions {
  constantLiquid, linear, gaussian, gaussianSinusoidal,
  constantSmall, cubic, hyperbolicTan
}
 Different options for enforcing a fixed porosity. More...
 
enum  VectorVars {
  m_fluidVel, m_U_porosity, m_Ustar, m_advUstar,
  m_advectionVel, m_viscousSolveSrc, m_UdelU, m_advectionSrc,
  m_fluidVelAnalytic, m_fluidVelErr, m_dUdt, m_FsDiffusion,
  m_FsFluid, m_Fs, m_freestreamCorrection, m_UpreProjection,
  m_advectionImplicitSrc, m_MACcorrection, CCcorrection, m_advSrcLapU,
  m_advUpreProjection, m_bodyForce, m_advVelCorr, m_numVectorVars
}
 Cell centred vector field. More...
 
enum  ScalarVars {
  m_enthalpy, m_bulkConcentration, m_temperature, m_porosity,
  m_liquidConcentration, m_solidConcentration, m_pressure, m_permeability,
  m_viscosity, m_lambda, m_lambda_porosity, m_enthalpySolidus,
  m_enthalpyLiquidus, m_enthalpyEutectic, m_porosityAnalytic, m_temperatureAnalytic,
  m_saltEqnSrcGodunov, m_Terr, m_enthalpySrc, m_divUadv,
  m_dHdt, m_dSdt, m_averageVerticalFlux, m_soluteFluxAnalytic,
  m_verticalFlux, m_divU, m_averageHeatFlux, m_streamfunction,
  m_vorticity, m_FsVertDiffusion, m_FsVertFluid, m_FsVertFrame,
  m_divUcorr, m_pi, m_phi, m_MACBC,
  m_MACrhs, m_CCrhs, m_passiveScalar, m_activeScalar,
  m_lightIntensity, m_numScalarVars
}
 Identifiers for different scalar variables. More...
 

Detailed Description

Contains immunity flag definitions

Enumeration Type Documentation

◆ MGmethod

enum MGmethod

Different multigrid methods.

Enumerator
MGTypeStandard 

Normal linear multigrid.

MGTypeFAS 

Full Approximation Scheme (for nonlinear problems)

◆ PorosityFunctions

Different options for enforcing a fixed porosity.

Enumerator
constantLiquid 

Porosity = 1.0 everywhere.

linear 

Porosity varies linearly with x, $ \chi = 0.1 + 0.9 x $.

gaussian 

Porosity looks like a gaussian, $ \chi = 0.1 + 0.9 exp(-100 (x-0.5)^2) $.

gaussianSinusoidal 

Gaussian with some sinuosoidal variation, $ \chi = (exp(-(x-0.5)^2))*(0.5 + 0.1 sin(2 \pi y)) $.

constantSmall 

Porosity = 0.1.

cubic 

Porosity varies with the y-direction cubed, $ \chi = 0.01 + (y-0.01)^3 $.

hyperbolicTan 

$ \chi = 0.5 ( (1-tanh(20 y)) + (1-x)) $

◆ RefinementMethod

Different ways to add refinement.

Enumerator
tagSpeed 

Tag where fluid speed exceeds threshold.

tagChannels 

Tag where channels are.

tagPlumeMush 

Tag where these is strong downflow in the mushy layer.

tagMushChannels 

Tag porosity on level 0, and strong solute rich downflow thereafter.

tagScalar 

Tag on some scalar field given by taggingVar.

tagVector 

Tag on some vector field given by taggingVectorVar.

tagMushChannelsCompositeCriteria 

Composite criteria for tagging cells.

Tag where $ \Delta x |\nabla \chi| ( 1 - \textrm{min}(w (\mathscr{C} - \Theta), 0) ) > r $ where $ r $ is the refinement threshold, $ w $ is the vertical velocity,

◆ RefluxMethod

Methods for doing implicit refluxing - i.e. what sort of equation to we solve for the correction.

Enumerator
LinearReflux 

linear correction

LinearVCReflux 

linear variable-coefficient correction

NonlinearReflux 

nonlinear correction

◆ ScalarVars

enum ScalarVars

Identifiers for different scalar variables.

Enumerator
m_enthalpy 

Enthalpy $ H $.

m_bulkConcentration 

Bulk concentration $ \Theta $.

m_temperature 

Temperature, $ \theta $.

m_porosity 

Porosity $ \chi $.

m_liquidConcentration 

Liquid concentration $ \Theta_l $.

m_solidConcentration 

Solid concentration $ \Theta_s $.

m_pressure 

Pressure used in the face centred projection $ \phi $.

m_permeability 

Permeability $ \Pi $.

m_viscosity 

Viscosity $ \nu $.

m_lambda 

Auxillary field lambda $ \lambda $ for computing the freestream correction.

m_lambda_porosity 

$ \lambda / \chi $

m_enthalpySolidus 

Solidus phase boundary, $ H_S $.

m_enthalpyLiquidus 

Liquidus phase boundary, $ H_L $.

m_enthalpyEutectic 

Eutectic phase boundary, $ H_E $.

m_porosityAnalytic 

Some analytically calculated porosity field $ \chi_{analytic} $.

m_temperatureAnalytic 

Some analytically calculated temperature field $ \theta_{analytic} $.

m_saltEqnSrcGodunov 

Explicit source term for the bulk concentration update.

$ - \nabla \cdot \left( \mathbf{U} \Theta_l \right) - V \frac{\partial \Theta}{\partial z} $

m_Terr 

Computes $ \theta_{analytic} - \theta $ if required.

m_enthalpySrc 

Explicit source term for the enthalpy update.

$ - \nabla \cdot \left( \mathbf{U} \theta \right) - V \frac{\partial H}{\partial z} $

m_divUadv 

Level divergence of the advection velocities $ \mathbf{U}_{AD} $.

m_dHdt 

Rate of change of enthalpy with time $ \frac{\partial H}{\partial t} $.

m_dSdt 

Rate of change of bulk concentration with time $ \frac{\partial \Theta}{\partial t} $.

m_averageVerticalFlux 

Horizontally averaged vertical solute flux.

$ \int_0^L \mathbf{F}_s \cdot \mathbf{z} dx $

m_soluteFluxAnalytic 

Analytic solute flux for test problems.

m_verticalFlux 

Vertical component of the solute flux $ \mathbf{F}_s \cdot \mathbf{z} $.

m_divU 

Level divergence of the cell centred velocity field $ \nabla \cdot \mathbf{U} $.

m_averageHeatFlux 

Horizontally averaged vertical heat flux.

$ \int_0^L \mathbf{F}_H \cdot \mathbf{z} dx $

m_streamfunction 

Streamfunction $ \psi $ (if calculated ad hoc during post processing)

m_vorticity 

Vorticity $ \omega $ (if calculated ad hoc during post processing)

m_pi 

Pressure calculated in face-centred projection $ \pi $.

m_phi 

Pressure calculated in cell-centred projection $ \phi $.

m_MACBC 

Coarse-fine boundary condition used in the face-centred projection.

m_MACrhs 

Right hand side for the face-centred projection solve, $ \nabla \cdot \mathbf{U}_f $.

m_CCrhs 

Right hand side for the face-centred projection solve, $ \nabla \cdot \mathbf{U} $.

m_passiveScalar 

Passive scalar advcted by flow.

m_activeScalar 

Active scalar which is advected and also has sources/sinks.

m_lightIntensity 

Intensity of radiation from the surface.

m_numScalarVars 

Number of scalars variables.

◆ TaggingMethod

Strategy for tagging cells.

Enumerator
UndividedGradient 

Tag where the undivided gradient of some field is bigger than some value.

Magnitude 

Tag where the magnitude of some field is bigger than some values.

CompareLargerThan 

Tag where the value of some field is larger than some criteria.

CompareLargerThanNegative 

Tag where the value of some field multiplied by -1 is larger than some criteria.

Alternatively, can think of this as when some field is smaller than some criteria.

◆ VectorVars

enum VectorVars

Cell centred vector field.

Enumerator
m_fluidVel 

Cell centred fluid velocity, $ \mathbf{U} $.

m_U_porosity 

Fluid velocity divided by porosity, $ \mathbf{U}/\chi $.

m_Ustar 

Unprojected cell centred fluid velocity, $ \mathbf{U}^* $.

m_advUstar 

Unprojected face centred fluid velocity, as used for advection, which has been averaged to cell centres.

$ {Av}^{F \to C} \mathbf{U}_f $

m_advectionVel 

Face centred fluid velocity, as used for advection, which has been averaged to cell centres.

$ {Av}^{F \to C} \mathbf{U}_{AD} $

m_UdelU 

Inertial term $ \mathbf{U} \cdot \nabla \left( \mathbf{U} / \chi \right)$.

m_advectionSrc 

Source term for the velocity advection.

m_numVectorVars 

Number of vector variables.

◆ velocityAdvectionTypes

Options for handling advection velocities, where S is the source term.

Enumerator
m_porosityInAdvection 

solve $ \frac{\partial (\mathbf{u}/\chi)}{\partial t} + (u/porosity) \cdot \nabla (u/porosity) = S/porosity (-(u/porosity^2)dporosity/dt) $

m_porosityOutsideAdvection 

solve du/dt + (u/porosity).grad(u) = S + (u.grad(porosity)/porosity^2)u

m_noPorosity 

solve du/dt + u.grad(u) = S