polaris.ocean.convergence.analysis.ConvergenceAnalysis
- class polaris.ocean.convergence.analysis.ConvergenceAnalysis(component, subdir, dependencies, convergence_vars, refinement='both', mesh_filename='base_mesh.nc')[source]
- A step for analyzing the output from convergence tests - Variables:
- dependencies_dict (dict of dict of polaris.Steps) – - The dependencies of this step must be given as separate keys in the dict: - meshdict of polaris.Steps
- Keys of the dict correspond to resolutions Values of the dict are polaris.Steps, which must have the attribute path, the path to base_mesh.nc of that resolution 
- initdict of polaris.Steps
- Keys of the dict correspond to resolutions Values of the dict are polaris.Steps, which must have the attribute path, the path to initial_state.nc of that resolution 
- forwarddict of polaris.Steps
- Keys of the dict correspond to resolutions Values of the dict are polaris.Steps, which must have the attribute path, the path to forward.nc of that resolution 
 
- convergence_vars (list of dict) – - The attributes for each variable for which to analyze the convergence rate. Each dict must contain the following keys: - namestr
- The name of the variable as given in the output netcdf file 
- titlestr
- The name of the variable to use in the plot title 
- zidxint
- The z-index to use for variables that have an nVertLevels dimension, which should be None for variables that don’t 
 
- refinement (str) – Refinement type. One of ‘space’, ‘time’ or ‘both’ indicating both space and time 
- mesh_filename (str) – The name of the mesh file to use for calculating mesh metrics (i.e. cell area) needed for computing the error 
 
 - __init__(component, subdir, dependencies, convergence_vars, refinement='both', mesh_filename='base_mesh.nc')[source]
- Create the step - Parameters:
- component (polaris.Component) – The component the step belongs to 
- subdir (str) – The subdirectory that the step resides in 
- dependencies (dict of dict of polaris.Steps) – - The dependencies of this step must be given as separate keys in the dict: - meshdict of polaris.Steps
- Keys of the dict correspond to refinement_factors Values of the dict are polaris.Steps, which must have the attribute path, the path to base_mesh.nc of that resolution 
- initdict of polaris.Steps
- Keys of the dict correspond to refinement_factors Values of the dict are polaris.Steps, which must have the attribute path, the path to initial_state.nc of that resolution 
- forwarddict of polaris.Steps
- Keys of the dict correspond to refinement_factors Values of the dict are polaris.Steps, which must have the attribute path, the path to forward.nc of that resolution 
 
- convergence_vars (list of dict) – - The convergence attributes for each variable. Each dict must contain the following keys: - namestr
- The name of the variable as given in the output netcdf file 
- titlestr
- The name of the variable to use in the plot title 
- zidxint
- The z-index to use for variables that have an nVertLevels dimension, which should be None for variables that don’t 
 
- refinement (str, optional) – Refinement type. One of ‘space’, ‘time’ or ‘both’ indicating both space and time 
- mesh_filename (str) – The name of the mesh file to use for calculating mesh metrics (i.e. cell area) needed for computing the error 
 
 
 - Methods - __init__(component, subdir, dependencies, ...)- Create the step - 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. - compute_error(refinement_factor, variable_name)- Compute the error for a given resolution - constrain_resources(available_resources)- Constrain - cpus_per_taskand- ntasksbased on the number of cores available to this step- convergence_parameters([field_name])- Get convergence parameters - exact_solution(refinement_factor, ...[, zidx])- Get the exact solution - get_output_field(refinement_factor, ...[, zidx])- Get the model output field at the given time and z index - map_from_native_model_vars(ds)- If the model is Omega, rename dimensions and variables in a dataset from their Omega names to the MPAS-Ocean equivalent (appropriate for datasets that are output from the model) - map_to_native_model_vars(ds)- If the model is Omega, rename dimensions and variables in a dataset from their MPAS-Ocean names to the Omega equivalent (appropriate for input datasets like an initial condition) - open_model_dataset(filename, **kwargs)- Open the given dataset, mapping variable and dimension names from Omega to MPAS-Ocean names if appropriate - plot_convergence(variable_name, title, zidx)- Compute the error norm for each resolution and produce a convergence plot - 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()- Run this step of the test case - 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()- Add input files based on resolutions, which may have been changed by user config options - validate_baselines()- Compare variables between output files in this step and in the same step from a baseline run if one was provided. - write_model_dataset(ds, filename)- Write out the given dataset, mapping dimension and variable names from MPAS-Ocean to Omega names if appropriate