You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Recent changes have motivated a switch in the Strategy type that we expose in R.
Currently, RcppR6 generates a Strategy as a simple list object, which is lightweight, but does not expose any methods implemented in C++. Using a R6 object to expose these additional routines would allow better control of the ExtrinsicDrivers (implemented in #334) and other state transformations (as described in #309), simplifying some of our R code.
This change will introduce some additional complexity and require changes to how we initialise a Patch using a Parameters object.
The existing workflow involves:
Generating scm_base_parameters or equiv.
Adding parameterised strategies using expand_parameters, appending a list of Strategies to p$strategies
Passing the Parameters object into the Patch or SCM solver
Initialising each species and their ExtrinsicDrivers
An alternative might instead be to remove the strategies from Parameters and instead:
Generate a list of parameterised Strategy objects using e.g. generate_strategies
Set or modify the extrinsic drivers using set_variable(driver_name, x_vector, y_vector) or set_constant(driver_name, y)
Pass the list of Strategies into run_scm(strategy_list, environment, parameters, control)
This change could require substantial modifications to existing workflows and documentation. Happy to spend the time documenting a solution before we commit to implementation. Please share your thoughts!
The text was updated successfully, but these errors were encountered:
Recent changes have motivated a switch in the Strategy type that we expose in R.
Currently, RcppR6 generates a Strategy as a simple list object, which is lightweight, but does not expose any methods implemented in C++. Using a R6 object to expose these additional routines would allow better control of the ExtrinsicDrivers (implemented in #334) and other state transformations (as described in #309), simplifying some of our R code.
This change will introduce some additional complexity and require changes to how we initialise a Patch using a Parameters object.
The existing workflow involves:
scm_base_parameters
or equiv.expand_parameters
, appending a list of Strategies top$strategies
An alternative might instead be to remove the strategies from Parameters and instead:
generate_strategies
set_variable(driver_name, x_vector, y_vector)
orset_constant(driver_name, y)
run_scm(strategy_list, environment, parameters, control)
This change could require substantial modifications to existing workflows and documentation. Happy to spend the time documenting a solution before we commit to implementation. Please share your thoughts!
The text was updated successfully, but these errors were encountered: