import os
from polaris.config import PolarisConfigParser as PolarisConfigParser
from polaris.tasks.ocean.internal_wave.default import Default as Default
from polaris.tasks.ocean.internal_wave.init import Init as Init
from polaris.tasks.ocean.internal_wave.rpe import Rpe as Rpe
[docs]
def add_internal_wave_tasks(component):
    """
    Add tasks for different internal wave tests to the ocean component
    component : polaris.tasks.ocean.Ocean
        the ocean component that the tasks will be added to
    """
    config_filename = 'internal_wave.cfg'
    base_dir = 'planar/internal_wave'
    config = PolarisConfigParser(
        filepath=os.path.join(component.name, base_dir, config_filename)
    )
    config.add_from_package(
        'polaris.tasks.ocean.internal_wave', config_filename
    )
    init = Init(component=component, indir=base_dir)
    init.set_shared_config(config, link=config_filename)
    for vadv_method in ['standard', 'vlr']:
        default = Default(
            component=component,
            indir=base_dir,
            init=init,
            vadv_method=vadv_method,
        )
        default.set_shared_config(config, link=config_filename)
        component.add_task(default)
        component.add_task(
            Rpe(
                component=component,
                indir=base_dir,
                init=init,
                vadv_method=vadv_method,
                config=config,
            )
        )