Skip to content

Adding IBU calculation for whirlpool - request for comments in code and strategy used #414

Description

@marcelobarrosalmeida

Hello

After starting making NEIPAs, it was required to calculate the IBU from late hoppings, I mean, hops added during whirlpool, in flameout. I saw that beersmith calculates these hop additions but it is used a rough approximation where an utilization factor is applied. So I decided to implement the strategy described in this article.

Several (small) changes were required to this approach:

  • new entries in database (tun diameter is required, amount of time in whirlpool and a flag for indicating when we want to use or not this feature). Yes, I did all the steps cited in wiki, and an update procedure from db version 7 to 8.
  • slightly modifications in the equipment editor (see images)
  • new unity (required for length), I am supporting centimetres and inches
  • an additional calculation method

At this moment, I believe the code is working as expected. However, we have some UI issues:

  • the (new) global whirlpool time (in equipment editor) is used for calculating IBU after flameout when using normal hop additions. As the hops table captures the regular hop time (before flameout), I couldn't see any other option.
  • however, for whirlpool hop additions (starting at flameout) I could use (or not) the time specified in the hop table. As this moment, I am using the global time. It is strange as the user could set a time in the hop table (does not affect the result). The global parameter could be avoided if the algorithm could check the hop list and choose the bigger whirlpool time as the whirlpool time to be used. I am not sure about the better approach.
  • the algorithm used is iterative, an integral, indeed. I saw that hop calculations were called 74 times after selecting this feature in equipment editor (wasting time and processing power). I don't know why, probably some Qt issue as I did not change anything related to this. Any directions ?

Wrapping up, I would request help with:

  • to decide if this feature is desired or not (better bitterness calculation when whirlpool time is considered for hops added before and after flameout. And, of course, if the feature is turned off, all recipes will perform as before).
  • code review
  • solution/working around for these successive updates in hops calculations
  • decide the better UI approach

Thanks a lot

Marcelo Barros

My repository and some screenshots:

https://github.com/marcelobarrosalmeida/brewtarget/tree/ibu_whirlpool

equp

table

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions