ROSCO variable time step

I understand from other posts on this forum that OpenFAST does not allow/does not require a variable time step. However, OrcaFlex does have the option to use a variable time step.

I was wondering what would be involved in adapting ROSCO to handle variable timesteps to take advantage of this in OrcaFlex. I know that the time step size is already communicated with the dll file.

Thank you in advance and best,

Hi Duncan,

The first thing that comes to mind is the digital filters. Their coefficients are calculated on the first step based on the sampling period: ROSCO/rosco/controller/src/Filters.f90 at main · NREL/ROSCO · GitHub

I’m not sure that changing those coefficients each time step is equivalent; that’s a math question a bit out of our scope at the moment.

Integrators can probably be more easily adapted and there may be other parts of ROSCO reliant on this assumption. If this is a necessary requirement for you or Orcaflex users, we could discuss offline how to address this.

Best, Dan

I’m not sure if this may help, but in the past I was using a solver (Samcef Mecano) that used variable time step. For the communication with the controller (*.dll), the information was exchanged at a fixed time step defined by the user (e.g., every 0.01 seconds).