polaris.tasks.e3sm.init.component_inputs.ComponentInputsAssembleStep

class polaris.tasks.e3sm.init.component_inputs.ComponentInputsAssembleStep(component, subdir, target, product_steps, cull_mesh_step, name=None)[source]

A step for materializing the staged tree of component input files.

Compass scatters symlink() calls through the product steps, which is what makes its assembled_files tree hard to reason about: to know what is in it you have to read every step. Here the product steps write only their own outputs and this step builds the tree, so the layout lives in one place – polaris.e3sm.init.inputdata and names for the paths, and this step for what goes where.

One assembly step per task, because the three tasks stage different sets.

Variables:
  • target ({'ocean', 'seaice', 'all'}) – Which products this step stages.

  • product_steps (dict of {str: polaris.Step}) – The steps whose outputs are staged, keyed as get_component_inputs_steps() keys them.

__init__(component, subdir, target, product_steps, cull_mesh_step, name=None)[source]

Create a new step.

Parameters:
  • component (polaris.Component) – The component the step belongs to.

  • subdir (str) – The subdirectory for the step.

  • target ({'ocean', 'seaice', 'all'}) – Which products to stage.

  • product_steps (dict of {str: polaris.Step}) – All component-input steps, from which this picks what target calls for.

  • cull_mesh_step (polaris.tasks.e3sm.init.topo.cull.cull.CullMeshStep) – The step that wrote the culled land mesh.

  • name (str, optional) – The name of the step.

Methods

__init__(component, subdir, target, ...[, name])

Create a new step.

add_cf_check([filename])

Check an output file for CF compliance after the step runs.

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 to the step

add_property_check(filename, check_properties)

Add a single conservation comparison for an output file

check_cf()

Check the files added with add_cf_check() for CF compliance.

check_properties()

Check conservation properties of the output files of this step.

constrain_resources(available_resources)

Constrain cpus_per_task and ntasks based on the number of cores available to this step

process_inputs_and_outputs()

Process the inputs to and outputs from a step added with polaris.Step.add_input_file() and polaris.Step.add_output_file().

run()

Build the staged tree, from empty.

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.

stage(source, staged_path)

Link one product into the assembled tree at its E3SM-facing path.

stage_partitions(step, basename, path_func)

Link every partition the given step produced.

step_dir(step)

The work directory of another step, found from this one's.

validate_baselines()

Compare variables between output files in this step and in the same step from a baseline run if one was provided.

work_path(*filenames)

Get the absolute path to a file or directory in the step's work directory

Attributes

LAND_MESH_FILENAME

The cull step's land mesh, staged as it was written.

cores

the number of cores this step needs, in total

gpus

the number of GPUs this step needs, in total

may_span_nodes

whether this step's cores and GPUs may come from several nodes

min_cores

the number of cores this step needs in order to run at all

min_gpus

the number of GPUs this step requires, in total