polaris.ocean.vertical.pstar_init.PStarInitStep
- class polaris.ocean.vertical.pstar_init.PStarInitStep(component, name, subdir=None, indir=None, cpus_per_task=1, min_cpus_per_task=1, ntasks=1, min_tasks=1, openmp_threads=1, max_memory=None, cached=False, run_as_subprocess=False, gpus_per_task=0, min_gpus_per_task=0)[source]
Base class for initialization steps that use the p-star vertical coordinate.
Subclasses must implement
init_tracers(). Subclasses may optionally override_build_pstar_coord_ds()when per-cell coordinate construction is required (e.g. when each cell has a different reference pseudo-depth).The outer fixed-point iteration is provided by
run_pstar_init().- __init__(component, name, subdir=None, indir=None, cpus_per_task=1, min_cpus_per_task=1, ntasks=1, min_tasks=1, openmp_threads=1, max_memory=None, cached=False, run_as_subprocess=False, gpus_per_task=0, min_gpus_per_task=0)
Create a new task
- Parameters:
component (polaris.Component) – The component the step belongs to
name (str) – the name of the task
subdir (str, optional) –
- the subdirectory for the step. If neither this nor
indir are provided, the directory is the
name
- the subdirectory for the step. If neither this nor
indir (str, optional) – the directory the step is in, to which
namewill be appendedcpus_per_task (int, optional) – the number of cores per task the step would ideally use. If fewer cores per node are available on the system, the step will run on all available cores as long as this is not below
min_cpus_per_taskmin_cpus_per_task (int, optional) – the number of cores per task the step requires. If the system has fewer than this number of cores per node, the step will fail
ntasks (int, optional) – the number of tasks the step would ideally use. If too few cores are available on the system to accommodate the number of tasks and the number of cores per task, the step will run on fewer tasks as long as as this is not below
min_tasksmin_tasks (int, optional) – the number of tasks the step requires. If the system has too few cores to accommodate the number of tasks and cores per task, the step will fail
openmp_threads (int) – the number of OpenMP threads to use
max_memory (int, optional) – the amount of memory that the step is allowed to use in MB. This is currently just a placeholder for later use with task parallelism
gpus_per_task (int, optional) – the number of GPUs per task the step would ideally use
min_gpus_per_task (int, optional) – the number of GPUs per task the step requires
cached (bool, optional) – Whether to get all of the outputs for the step from the database of cached outputs for this component
run_as_subprocess (bool) – Whether to run this step as a subprocess, rather than just running it directly from the task. It is useful to run a step as a subprocess if there is not a good way to redirect output to a log file (e.g. if the step calls external code that, in turn, calls additional subprocesses).
Methods
__init__(component, name[, subdir, indir, ...])Create a new task
add_dependency(step[, name])Add step as a dependency of this step (i.e. this step can't run until the dependency has finished).
add_input_file([filename, target, database, ...])Add an input file to the step (but not necessarily to the MPAS model).
add_output_file(filename[, validate_vars, ...])Add the output file that must be produced by this step and may be made available as an input to steps, perhaps in other tasks.
check_properties()This method should be overridden to check properties of step outputs
constrain_resources(available_resources)Constrain
cpus_per_taskandntasksbased on the number of cores available to this stepinit_tracers(ds)Initialize conservative temperature (CT) and absolute salinity (SA) at p-star layer midpoints for the current outer iteration.
process_inputs_and_outputs()Process the inputs to and outputs from a step added with
polaris.Step.add_input_file()andpolaris.Step.add_output_file().run()Run the step.
run_pstar_init(ds_mesh, geom_z_bot[, ...])Run the fixed-point iteration that determines BottomPressure (and therefore the p-star coordinate) such that the recovered geometric water-column thickness matches the target within a configurable fractional tolerance.
runtime_setup()Update attributes of the step at runtime before calling the
run()method.set_resources([cpus_per_task, ...])Update the resources for the subtask.
set_shared_config(config[, link])Replace the step's config parser with the shared config parser
setup()Set up the task in the work directory, including downloading any dependencies.
validate_baselines()Compare variables between output files in this step and in the same step from a baseline run if one was provided.