Source code for polaris.tasks.ocean.ice_shelf_2d

import os

from polaris.config import PolarisConfigParser as PolarisConfigParser
from polaris.resolution import resolution_to_string
from polaris.tasks.ocean.ice_shelf_2d.default import Default as Default
from polaris.tasks.ocean.ice_shelf_2d.init import Init as Init


[docs] def add_ice_shelf_2d_tasks(component): """ Add tasks for different ice shelf 2-d tests to the ocean component component : polaris.tasks.ocean.Ocean the ocean component that the tasks will be added to """ for resolution in [5.0, 2.0]: resdir = resolution_to_string(resolution) for coord_type in ['z-star', 'z-level']: basedir = f'planar/ice_shelf_2d/{resdir}/{coord_type}' config_filename = 'ice_shelf_2d.cfg' filepath = os.path.join(component.name, basedir, config_filename) config = PolarisConfigParser(filepath=filepath) config.add_from_package( 'polaris.ocean.ice_shelf', 'ssh_adjustment.cfg' ) config.add_from_package( 'polaris.tasks.ocean.ice_shelf_2d', config_filename ) config.set('vertical_grid', 'coord_type', coord_type) init = Init( component=component, resolution=resolution, indir=basedir ) init.set_shared_config(config, link=config_filename) default = Default( component=component, resolution=resolution, indir=basedir, init=init, config=config, ) default.set_shared_config(config, link=config_filename) component.add_task(default) default = Default( component=component, resolution=resolution, indir=basedir, init=init, config=config, include_viz=True, ) default.set_shared_config(config, link=config_filename) component.add_task(default) default = Default( component=component, resolution=resolution, indir=basedir, init=init, config=config, include_restart=True, ) default.set_shared_config(config, link=config_filename) component.add_task(default) default = Default( component=component, resolution=resolution, indir=basedir, init=init, config=config, include_tides=True, ) default.set_shared_config(config, link=config_filename) component.add_task(default) # The only test case that makes sense with the single_layer coordinate # type is the one with barotropic tidal_forcing for coord_type in ['single_layer']: basedir = f'planar/ice_shelf_2d/{resdir}/{coord_type}' config_filename = 'ice_shelf_2d.cfg' filepath = os.path.join(component.name, basedir, config_filename) config = PolarisConfigParser(filepath=filepath) config.add_from_package( 'polaris.ocean.ice_shelf', 'ssh_adjustment.cfg' ) config.add_from_package( 'polaris.tasks.ocean.ice_shelf_2d', config_filename ) config.set('vertical_grid', 'coord_type', 'z-level') config.set('vertical_grid', 'vert_levels', '1') config.set('vertical_grid', 'partial_cell_type', 'None') init = Init( component=component, resolution=resolution, indir=basedir ) init.set_shared_config(config, link=config_filename) default = Default( component=component, resolution=resolution, indir=basedir, init=init, config=config, include_tides=True, ) default.set_shared_config(config, link=config_filename) component.add_task(default)