Skip to content

Commit 92fda28

Browse files
change sea ice
1 parent 35e2df6 commit 92fda28

File tree

1 file changed

+14
-3
lines changed

1 file changed

+14
-3
lines changed

src/SeaIceSimulations.jl

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ using ClimaSeaIce.Rheologies
2121
using ClimaSeaIce.SeaIceDynamics: SplitExplicitSolver, SemiImplicitStress, SeaIceMomentumEquation, StressBalanceFreeDrift
2222
using ClimaSeaIce.Rheologies: IceStrength, ElastoViscoPlasticRheology
2323

24-
using ClimaOcean.OceanSimulations: Default
24+
using ClimaOcean.OceanSimulations: Default, u_immersed_bottom_drag, v_immersed_bottom_drag
2525

2626
function sea_ice_simulation(grid, ocean=nothing;
2727
Δt = 5minutes,
@@ -63,6 +63,12 @@ function sea_ice_simulation(grid, ocean=nothing;
6363
bottom_heat_flux = Field{Center, Center, Nothing}(grid)
6464
top_heat_flux = Field{Center, Center, Nothing}(grid)
6565

66+
immersed_u_bc = FluxBoundaryCondition(u_immersed_bottom_drag, discrete_form=true, parameters=1e-1)
67+
immersed_v_bc = FluxBoundaryCondition(v_immersed_bottom_drag, discrete_form=true, parameters=1e-1)
68+
69+
u_bcs = FieldBoundaryConditions(grid, (Face, Center, Nothing); immersed = immersed_u_bc)
70+
v_bcs = FieldBoundaryConditions(grid, (Center, Face, Nothing); immersed = immersed_v_bc)
71+
6672
# Build the sea ice model
6773
sea_ice_model = SeaIceModel(grid;
6874
ice_salinity,
@@ -82,12 +88,17 @@ function sea_ice_simulation(grid, ocean=nothing;
8288
return sea_ice
8389
end
8490

91+
default_solver(::Nothing) = SplitExplicitSolver(120)
92+
default_solver(ocean::Simulation) = default_solver(ocean.model.timestepper)
93+
default_solver(::Oceananigans.TimeSteppers.QuasiAdamsBashforth2TimeStepper) = SplitExplicitSolver(120)
94+
default_solver(::Oceananigans.TimeSteppers.SplitRungeKutta3TimeStepper) = SplitExplicitSolver(360)
95+
8596
function sea_ice_dynamics(grid, ocean=nothing;
86-
sea_ice_ocean_drag_coefficient = 5.5e-3,
97+
sea_ice_ocean_drag_coefficient = 2.5e-3,
8798
rheology = ElastoViscoPlasticRheology(),
8899
coriolis = nothing,
89100
free_drift = nothing,
90-
solver = SplitExplicitSolver(120))
101+
solver = default_solver(ocean))
91102

92103
if isnothing(ocean)
93104
SSU = Oceananigans.Fields.ZeroField()

0 commit comments

Comments
 (0)