Add paragraph description of the module. What stages are defined here generally? Link to relevant documentation about hooks in user guide and model list.

Public API methods attached to model

The following methods are defined in the hook_tools class, of the pyDeltaRCM.hook_tools module.


Tools defining various hooks in the model.

class pyDeltaRCM.hook_tools.hook_tools

Tools defining various hooks in the model.

For an explanation on model hooks, see the User Guide.

_check_deprecated_hooks() None

Check for any old hooks that are defined.

Sometimes hook names need to be deprecated, due to changing underlying model mechanics or anything else. This may mean that an old hook is no longer called, but there is no way to warn the user about this. Therefore, we enforce that no old hooks may be used as method names of subclassing models.

This helper method is early in the DeltaModel __init__ routine.

hook_after_create_domain() None

Hook called after create_domain.

Unlike the standard model hooks, this hook is called after the domain has been created with the method create_domain

hook_after_finalize_timestep() None

Hook called after finalize_timestep.

Unlike the standard model hooks, this hook is called after the finalize timestep method has completed.


This is the last method called before logging and outputting data for each timestep.

hook_after_route_sediment() None

Hook called after route_sediment.

Unlike the standard model hooks, this hook is called after sed routing has completed with the method route_sediment

hook_after_route_water() None

Hook called after route_water.

Unlike the standard model hooks, this hook is called after water routing has completed with the method route_water

hook_apply_subsidence() None

Hook apply_subsidence.

Called immediately before apply_subsidence.

hook_compute_free_surface() None

Hook compute_free_surface.

Called immediately before compute_free_surface.

hook_compute_sand_frac() None

Hook compute_sand_frac.

Called immediately before compute_sand_frac.

hook_create_domain() None

Hook create_domain.

Called immediately before create_domain.

hook_create_other_variables() None

Hook create_other_variables.

Called immediately before create_other_variables.

hook_finalize_timestep() None

Hook finalize_timestep.

Called immediately before finalize_timestep.

hook_finalize_water_iteration(iteration: int) None

Hook finalize_water_iteration.

Called immediately before finalize_water_iteration.

hook_import_files() None

Hook import_files.

Called immediately before import_files.

This is the recommended hook to use for defining custom yaml parameters for a subclassed model. To allow the model to successfully load custom yaml parameters, expected types and default values need to be provided as dictionary key-value pairs to the model attribute, subclass_parameters.

The expected format is:

self.subclass_parameters['custom_param'] = {
    'type': ['expected_type'], 'default': default_value}  # noqa: E501
hook_init_output_file() None

Hook init_output_file.

Called immediately before init_output_file.

Expected format for entries to the meta dictionary nested within the self._save_var_list dictionary:

self._save_var_list['meta']['new_meta_name'] = ['varname', 'units',
                                                'type', (dimensions)]  # noqa: E501

Expected format for time-varying metadata entries to the meta dictionary nested within the self._save_var_list dictionary:

self._save_var_list['meta']['new_meta_attribute_name'] = [
    None, 'units', 'type', (dimensions)]  # noqa: E501


For a vector of time-varying metadata, the dimension should be specified as (‘total_time’).

Expected format for time varying grid entries as keys within the self._save_var_list dictionary:

self._save_var_list['new_grid_name'] = ['varname', 'units',
                                        'type', (dimensions)]
hook_init_sediment_iteration() None

Hook init_sediment_iteration.

Called immediately before init_sediment_iteration.

hook_init_water_iteration() None

Hook init_water_iteration.

Called immediately before init_water_iteration.

hook_load_checkpoint() None

Hook load_checkpoint.

Called immediately before load_checkpoint.

hook_output_checkpoint() None

Hook output_checkpoint.

Called immediately before output_checkpoint.

hook_output_data() None

Hook output_data.

Called immediately before output_data.

hook_process_input_to_model() None

Hook process_input_to_model.

Called immediately before process_input_to_model.

hook_route_all_mud_parcels() None

Hook route_all_mud_parcels.

Called immediately before route_all_mud_parcels.

hook_route_all_sand_parcels() None

Hook route_all_sand_parcels.

Called immediately before route_all_sand_parcels.

hook_route_sediment() None

Hook route_sediment.

Called immediately before route_sediment.

hook_route_water() None

Hook route_water.

Called immediately before route_water.

hook_run_water_iteration() None

Hook run_water_iteration.

Called immediately before run_water_iteration.

hook_solve_water_and_sediment_timestep() None

Hook solve_water_and_sediment_timestep.

Called immediately before solve_water_and_sediment_timestep.

hook_topo_diffusion() None

Hook topo_diffusion.

Called immediately before topo_diffusion.