validParams: Validate MizerParams object and upgrade if necessary

View source: R/MizerParams-class.R

validParamsR Documentation

Validate MizerParams object and upgrade if necessary

Description

Checks that the given MizerParams object is valid and upgrades it if necessary.

Usage

validParams(params)

Arguments

params

The MizerParams object to validate

Details

It is possible to render a MizerParams object invalid by manually changing its slots. This function checks that the object is valid and if not it attempts to upgrade it to a valid object or gives an error message. If the object is valid then it is returned unchanged. The function reports an error if any of the rate arrays contain any non-finite numbers (except for the maximum intake rate that is allowed to be infinite).

Occasionally, during the development of new features for mizer, the MizerParams object gains extra slots. MizerParams objects created in older versions of mizer are then no longer valid in the new version because of the missing slots. You need to upgrade them with this function. It adds the missing slots and fills them with default values. Any object from version 0.4 onwards can be upgraded. Any old MizerSim objects should be similarly updated with validSim().

This function uses newMultispeciesParams() to create a new MizerParams object using the parameters extracted from the old MizerParams object.

Besides upgrading, if necessary, the only changes that may be made to the given MizerParams object is that the w_min_idx and ft_mask slots are recalculated.

Value

A valid MizerParams object

Backwards compatibility

The internal numerics in mizer have changed over time, so there may be small discrepancies between the results obtained with the upgraded object in the new version and the original object in the old version. If it is important for you to reproduce the exact results then you should install the version of mizer with which you obtained the results. You can do this with

remotes::install_github("sizespectrum/mizer", ref = "v0.2")

where you should replace "v0.2" with the version number you require. You can see the list of available releases at https://github.com/sizespectrum/mizer/tags.

If you only have a serialised version of the old object, for example created via saveRDS(), and you get an error when trying to read it in with readRDS() then unfortunately you will need to install the old version of mizer first to read the params object into your workspace, then switch to the current version and then call validParams(). You can then save the new version again with saveParams().


mizer documentation built on Oct. 17, 2024, 9:07 a.m.