src.spyice.parameters.user_input#

class src.spyice.parameters.user_input.BoundaryConditionType[source]#

Bases: str, Enum

Represents the type of boundary condition.

Variables:
  • NEUMANN (str) – Neumann boundary condition.

  • DIRICHLET (str) – Dirichlet boundary condition.

__new__(value)#
DIRICHLET = 'Dirichlet'#
NEUMANN = 'Neumann'#
class src.spyice.parameters.user_input.FileNameSuffix[source]#

Bases: str, Enum

Represents the suffix for the output file name.

Variables:
  • NON_CONST_DENS_MUSHFIX (str) – Non-constant density mush-fix.

  • NON_CONST_DENS (str) – Non-constant density.

  • CONST_DENS (str) – Constant density.

__new__(value)#
CONST_DENS = 'const_dens'#
NON_CONST_DENS = 'nonconst_dens'#
NON_CONST_DENS_MUSHFIX = 'nonconst_dens-mushfix'#
class src.spyice.parameters.user_input.InitialLiquidFraction[source]#

Bases: str, Enum

Represents the type of initial liquid fraction.

Variables:
  • P0 (str) – Initial liquid fraction of 0.

  • P1 (str) – Initial liquid fraction of 1.

  • P_Stefan (str) – Initial liquid fraction based on Stefan condition.

  • PX (str) – Initial liquid fraction based on a custom profile.

__new__(value)#
P0 = 'P0'#
P1 = 'P1'#
PX = 'PX'#
P_Stefan = 'P_Stefan'#
class src.spyice.parameters.user_input.InitialMeltTemperature[source]#

Bases: str, Enum

Represents the type of initial melt temperature.

Variables:
  • T_MELT (str) – Initial melt temperature.

  • T_S (str) – Initial temperature based on salinity.

__new__(value)#
FREZCHEM = 'Frezchem'#
ONEPHASE = 'onephase'#
TWOPHASE = 'twophase'#
class src.spyice.parameters.user_input.InitialSalinity[source]#

Bases: str, Enum

Represents the type of initial salinity. User can add more salinity option SX where X is a number. The salinity is in parts per thousand (ppt).

Variables:
  • S34 (str) – Initial salinity of 34 ppt.

  • S0 (str) – Initial salinity of 0 ppt.

  • S1 (str) – Initial salinity of 1 ppt.

  • S2 (str) – Initial salinity of 2 ppt.

  • S3 (str) – Initial salinity of 3 ppt.

  • S_LINEAR (str) – Linear initial salinity.

__new__(value)#
S0 = 'S0'#
S1 = 'S1'#
S2 = 'S2'#
S3 = 'S3'#
S34 = 'S34'#
S_LINEAR = 'S_linear'#
class src.spyice.parameters.user_input.InitialTemperature[source]#

Bases: str, Enum

Represents the type of initial temperature.

Variables:
  • T_Stefan (str) – Initial temperature based on Stefan condition.

  • T271p25 (str) – Initial temperature of 271.25 K.

  • T250 (str) – Initial temperature of 250 K.

  • T_MELT (str) – Initial temperature at which the material melts.

  • T_S (str) – Initial temperature based on salinity.

__new__(value)#
T250 = 'T250'#
T271p25 = 'T271.25'#
T_MELT = 'Tm_w'#
T_S = 'T(S)'#
T_STEFAN = 'T_Stefan'#
class src.spyice.parameters.user_input.LiquidusRelation[source]#

Bases: str, Enum

Represents the liquidus relation type.

Variables:
  • NORMAL (str) – Normal liquidus relation.

  • FREZCHEM (str) – Frezchem liquidus relation.

__new__(value)#
FREZCHEM = 'Frezchem'#
NORMAL = 'Normal'#
class src.spyice.parameters.user_input.TopTemperatureType[source]#

Bases: str, Enum

Represents the type of top temperature condition.

Variables:
  • STEFAN (str) – Stefan condition.

  • DIRICHLET (str) – Dirichlet condition.

__new__(value)#
DIRICHLET = 'Dirichlet'#
STEFAN = 'Stefan'#
class src.spyice.parameters.user_input.UserInput[source]#

Bases: object

Represents the user input parameters for the model.

Variables:
  • constants (RealConstants | DebugConstants) – The type of constants to use.

  • max_iterations (int) – The maximum number of iterations.

  • is_stefan (bool) – Flag indicating whether Stefan condition is applied.

  • is_buffo (bool) – Flag indicating whether Buffo condition is applied.

  • liquidus_relation_type (str) – The type of liquidus relation to use.

  • grid_resolution_dz (float) – The grid resolution in the z-direction.

  • boundary_condition_type (str) – The type of boundary condition to use.

  • temperature_tolerance (float) – The temperature tolerance.

  • salinity_tolerance (float) – The salinity tolerance.

  • liquid_fraction_tolerance (float) – The liquid fraction tolerance.

  • initial_temperature (str) – The initial temperature profile.

  • initial_salinity (str) – The initial salinity profile.

  • initial_liquid_fraction (str) – The initial liquid fraction profile.

  • output_suffix (str) – The suffix to be added to the output files.

  • temperature_top_type (str) – The type of temperature condition at the top boundary.

  • phase_type (int) – The type of phase to consider.

  • grid_timestep_dt (float) – The grid timestep.

  • dir_output_name (str) – The name of the output directory.

  • critical_liquid_fraction (float) – The critical liquid fraction.

  • boundary_salinity (float) – The boundary salinity (automatically calculated).

  • temperature_melt (float) – The temperature at which the material melts (automatically calculated).

  • boundary_top_temperature (float) – The temperature at the top boundary (automatically calculated).

  • geometry_type (int) – The type of geometry.

  • counter_limit (int) – The counter limit.

__post_init__()[source]#

Performs post-initialization tasks.

__init__(constants=RealConstants(param_const=False, phi_ini=1, phi_ini_Stefan=1, beta=0.0005836, kappa=1.37e-07, mu=0.00188, Ra_c=1.01, alpha=0.0015600000000000002, L=334774, D_s=2e-09, k_i=2.0, k_br=0.6, k_w=0.6, c_i=2000, c_br=3985, c_w=3985, rho_br=1028, rho_i=917, rho_w=1028, m=2, g=9.8, phi_c=0.06823, P_s=0.01, a_phi=5.9e-06, b_phi=169491.5254237288), config_data=<factory>, is_stefan=True, is_buffo=False, is_voller=False, is_salinity_equation=False, is_diffusiononly_equation=True, is_algae_equation=False, is_radiation_equation=False, algae_model_BAL_type='all', max_iterations=1500, counter_limit=100000, grid_resolution_dz=0.01, grid_timestep_dt=47, boundary_condition_type='Dirichlet', boundary_salinity=34.0, boundary_top_temperature=265.0, temperature_top_type='Stefan', temperature_tolerance=0.01, salinity_tolerance=0.01, liquid_fraction_tolerance=0.01, initial_temperature='T(S)', initial_salinity='S34', initial_liquid_fraction='P1', critical_liquid_fraction=0.1, phase_type=1, liquidus_relation_type='Normal', output_suffix='nonconst_dens-mushfix', dir_output_name_hydra='Temperature_{S_IC}_{bc_condition}_{dz}_{dt}_{iter_max}_{cap_dens}', dir_output_name='Temperature_{S_IC}_{bc_condition}_{dz}_{dt}_{iter_max}_{cap_dens}', nutrient_cn_dsi_water=40, nutrient_cn_dsi_ice=15, carbon_cc_ice_initial=0.01, carbon_cc_water_initial=0.05)#
Parameters:
  • constants (RealConstants | DebugConstants)

  • config_data (DictConfig)

  • is_stefan (bool)

  • is_buffo (bool)

  • is_voller (bool)

  • is_salinity_equation (bool)

  • is_diffusiononly_equation (bool)

  • is_algae_equation (bool)

  • is_radiation_equation (bool)

  • algae_model_BAL_type (str)

  • max_iterations (int)

  • counter_limit (int)

  • grid_resolution_dz (float)

  • grid_timestep_dt (float)

  • boundary_condition_type (BoundaryConditionType)

  • boundary_salinity (float)

  • boundary_top_temperature (float)

  • temperature_top_type (TopTemperatureType)

  • temperature_tolerance (float)

  • salinity_tolerance (float)

  • liquid_fraction_tolerance (float)

  • initial_temperature (InitialTemperature)

  • initial_salinity (InitialSalinity)

  • initial_liquid_fraction (InitialLiquidFraction)

  • critical_liquid_fraction (float)

  • phase_type (int)

  • liquidus_relation_type (LiquidusRelation)

  • output_suffix (FileNameSuffix)

  • dir_output_name_hydra (str)

  • dir_output_name (str)

  • nutrient_cn_dsi_water (float)

  • nutrient_cn_dsi_ice (float)

  • carbon_cc_ice_initial (float)

  • carbon_cc_water_initial (float)

Return type:

None

algae_model_BAL_type: str = 'all'#
boundary_condition_type: BoundaryConditionType = 'Dirichlet'#
boundary_salinity: float = 34.0#
boundary_top_temperature: float = 265.0#
carbon_cc_ice_initial: float = 0.01#
carbon_cc_water_initial: float = 0.05#
config_data: DictConfig#
constants: RealConstants | DebugConstants = RealConstants(param_const=False, phi_ini=1, phi_ini_Stefan=1, beta=0.0005836, kappa=1.37e-07, mu=0.00188, Ra_c=1.01, alpha=0.0015600000000000002, L=334774, D_s=2e-09, k_i=2.0, k_br=0.6, k_w=0.6, c_i=2000, c_br=3985, c_w=3985, rho_br=1028, rho_i=917, rho_w=1028, m=2, g=9.8, phi_c=0.06823, P_s=0.01, a_phi=5.9e-06, b_phi=169491.5254237288)#
counter_limit: int = 100000#
critical_liquid_fraction: float = 0.1#
dir_output_name: str = 'Temperature_{S_IC}_{bc_condition}_{dz}_{dt}_{iter_max}_{cap_dens}'#
dir_output_name_hydra: str = 'Temperature_{S_IC}_{bc_condition}_{dz}_{dt}_{iter_max}_{cap_dens}'#
geometry_type: int#
grid_resolution_dz: float = 0.01#
grid_timestep_dt: float = 47#
initial_liquid_fraction: InitialLiquidFraction = 'P1'#
initial_salinity: InitialSalinity = 'S34'#
initial_temperature: InitialTemperature = 'T(S)'#
is_algae_equation: bool = False#
is_buffo: bool = False#
is_diffusiononly_equation: bool = True#
is_radiation_equation: bool = False#
is_salinity_equation: bool = False#
is_stefan: bool = True#
is_voller: bool = False#
liquid_fraction_tolerance: float = 0.01#
liquidus_relation_type: LiquidusRelation = 'Normal'#
max_iterations: int = 1500#
nutrient_cn_dsi_ice: float = 15#
nutrient_cn_dsi_water: float = 40#
output_suffix: FileNameSuffix = 'nonconst_dens-mushfix'#
phase_type: int = 1#
salinity_tolerance: float = 0.01#
temperature_melt: float#
temperature_tolerance: float = 0.01#
temperature_top_type: TopTemperatureType = 'Stefan'#
src.spyice.parameters.user_input.fourier_number_timestep(constants)[source]#

Calculates the Fourier number for the given timestep.

Parameters:

constants (object) – An object containing the required constants.

Returns:

The calculated Fourier number.

Return type:

float