SMB simulations no longer running on CADET-Process 0.10

Expected behavior.

Hi

I have just updated CADET-Process to 0.10 and all my SMB simulations no longer run. I have tried several variations, including several examples from the docs and I get the same error (below). Can’t understand the problem. If I go back to 0.9 it works.

Actual behavior

There was an exception in simulate_n_cycles
Traceback (most recent call last):
  File "C:\Users\josep\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\log.py", line 172, in wrapper
    return function(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\josep\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\simulator.py", line 308, in simulate_n_cycles
    return self.run(process, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\josep\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 133, in wrapper
    results = func(self, process, *args, **kwargs)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\josep\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 246, in run
    raise CADETProcessError(
CADETProcess.CADETProcessError.CADETProcessError: CADET Error: Simulation failed with 

---------------------------------------------------------------------------
CADETProcessError                         Traceback (most recent call last)
Cell In[4], line 7
      4 process_simulator = Cadet()
      5 process_simulator.n_cycles = 3
----> 7 simulation_results = process_simulator.simulate(process)
      9 _ = simulation_results.solution.raffinate.inlet.plot()
     10 _ = simulation_results.solution.extract.inlet.plot()

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\simulator.py:252, in SimulatorBase.simulate(self, process, previous_results, **kwargs)
    249     raise CADETProcessError("Process is not configured correctly.")
    251 if not self.evaluate_stationarity:
--> 252     results = self.simulate_n_cycles(
    253         process, self.n_cycles, previous_results, **kwargs
    254     )
    255 else:
    256     results = self.simulate_to_stationarity(
    257         process, previous_results, **kwargs
    258     )

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\log.py:150, in log_time.<locals>.log_time_decorator.<locals>.wrapper(*args, **kwargs)
    147 @wraps(function)
    148 def wrapper(*args, **kwargs):
    149     start = time.time()
--> 150     result = function(*args, **kwargs)
    151     elapsed = time.time() - start
    152     logger = get_logger(logger_name, level=None)

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\log.py:201, in log_results.<locals>.log_results_decorator.<locals>.wrapper(*args, **kwargs)
    197 logger = get_logger(logger_name, level=None)
    199 logger.debug('{} was called with {}, {}'.format(
    200         function, *args, **kwargs))
--> 201 results = function(*args, **kwargs)
    202 logger.debug(f'Results: {results}')
    204 return results

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\log.py:180, in log_exceptions.<locals>.log_exception_decorator.<locals>.wrapper(*args, **kwargs)
    177 logger.exception(err)
    179 # re-raise the exception
--> 180 raise e

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\log.py:172, in log_exceptions.<locals>.log_exception_decorator.<locals>.wrapper(*args, **kwargs)
    170 logger = get_logger(logger_name, level=None)
    171 try:
--> 172     return function(*args, **kwargs)
    173 except Exception as e:
    174     # log the exception
    175     err = "There was an exception in "

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\simulator.py:308, in SimulatorBase.simulate_n_cycles(self, process, n_cyc, previous_results, **kwargs)
    305 if previous_results is not None:
    306     self.set_state_from_results(process, previous_results)
--> 308 return self.run(process, **kwargs)
    310 self.n_cycles = n_cyc_orig

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py:133, in Cadet.locks_process.<locals>.wrapper(self, process, *args, **kwargs)
    130     process.lock = True
    131     locked_process = True
--> 133 results = func(self, process, *args, **kwargs)
    135 if locked_process:
    136     process.lock = False

File ~\miniconda3\envs\cadet\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py:246, in Cadet.run(self, process, cadet, file_path)
    241 if return_information.return_code != 0:
    242     self.logger.error(
    243         f'Simulation of {process.name} '
    244         f'with parameters {process.config} failed.'
    245     )
--> 246     raise CADETProcessError(
    247         f'CADET Error: Simulation failed with {return_information.error_message}'
    248     ) from None
    250 try:
    251     results = self.get_simulation_results(
    252         process, cadet, elapsed, return_information
    253     )

CADETProcessError: CADET Error: Simulation failed with 

How to produce bug (including a minimal reproducible example)

Just trying to run the example from the SMBBuilder documentation gives me the error.

File produced by conda env export > environment.yml

cadet-env.yml (17.4 KB)

Hi José,

unfortunately, I could not reproduce the issue with CADET-Process; for me, it runs fine with v0.9/v0.10/dev-branch. But I feel your frustration and I’m happy to investigate this further during a call, ideally during our next office hours, but if it’s urgent, I could also make some time next week.

Best regards,

Jo

Hey Jo

Hope all is great with you.

Thanks for the quick feedback. Must be something with my env then. Although I did create a clean one to test 0.10. I will make some more tests and I will join in the next office hours.

It’s nothing urgent and I can always go back to 0.9, but I would like to understand the problem and keep up with development.

Thanks again.

1 Like