CADET Process for complex SMB : ISMB or SSMB

Hi everyone, I’m contacting you because I’m trying to model an SSMB with six sub-steps. To do this I have used carousel mode to manage the cyclic part of the operation with the input and output switches on the different columns. However, I would like to add events within the cycles so that I can simulate loading, washing, elution and regeneration steps on certain columns. I managed to insert an event using the add_event command (e.g: process.add_event(name=‘event1’, parameter_path=‘flow_sheet.feed.c’,state=[0,0,0,0],time=10)). However, the event is not cyclic and this would require me to add an event for each cycle. How can I add events that would be repeated in each cycle?
Have a nice day.
All the best,

Hugo

Hi Hugo,

sounds like an interesting case. I think I need some more information about your case. Is this a special mode of SMB where there is no constant feed flow onto the column in the feed zone?

If you really need interrupted flow, you would indeed have to add these events manually. In this case, I would use a for loop:

feed_duration = 10

for sec in range(builder.n_columns):
    sec_start = sec * builder.switch_time

    process.add_event(
        f'feed_on_{sec}',
        parameter_path='flow_sheet.feed.c',
        state=[1, 2, 3, 4],
        time=sec_start
    )
    process.add_event(
        f'feed_off_{sec}',
        parameter_path='flow_sheet.feed.c',
        state=[0,0,0,0],
        time=sec_start + feed_duration
    )

Hope that helps.

Cheers

Yes indeed it is an interesting case. To have an idea of the system, I can recommand you a rapid check of this article : Redirecting
The idea is to have an equilibrium of the column, following by a classic load and wash of some columns while another one is elute and another one is washed and regenerated. Once a cycle is finished, the carousel idea is introduced since the eluted column is then washed, the loaded and washed column is eluted and the washed column is loaded… So as you can see there is asynchronous steps in each cycle. I think that we can manage to add events with loop, I just need to do this really carrefully since I need to respect the carousel cycle time !
Anyway, thank you for your support and I’ll keep you in touch :slight_smile:

1 Like

Sounds really interesting! Expanding the CarouselBuilder to work with async switching has always been something we wanted to implement. But usually, we wait until someone actually needs it. :nerd_face:

If you like, you could join our next Office Hours and present the case?

Cheers

jo

I’d love to… Unfortunately there are important parts of the process (molecules worked on, time taken for the various sub-steps, etc.) that I can’t divulge. But I’ll work on it and keep you posted. After that, we can always discuss a hypothetical case…

Best,

Hugo

I understand. It would still nice to meet you. If it helps, we could also set up a more personal call.

2 Likes