Expected behavior.
I’m using the Spreading binding model in CADET-Process (version 0.11.1) and would like to output the solid-phase concentrations of the bound protein in orientation 1 (q1
), in orientation 2 (q2
), and the total bound concentration (q
).
I expected that setting column.solution_recorder.write_solution_solid = True
would include this information in the output.
Actual behavior
When I enable solid-phase output using:
column.solution_recorder.write_solution_solid = True
I get the following error:
ValueError: Expected size (1001, 100, 1)
Traceback:
Traceback (most recent call last):
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\log.py", line 192, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\simulator.py", line 334, in simulate_n_cycles
return self._run(process, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 154, in wrapper
results = func(self, process, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 297, in _run
results = self.get_simulation_results(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 154, in wrapper
results = func(self, process, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 597, in get_simulation_results
SolutionSolid(
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\solution.py", line 1484, in __init__
super().__init__(name, component_system, time, solution)
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\solution.py", line 127, in __init__
self.solution = solution
^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 176, in __set__
value = self._prepare(instance, value, recursive=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 1342, in _prepare
self.check_size(instance, value_array)
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 1161, in check_size
raise ValueError(f"Expected size {expected_size}")
ValueError: Expected size (101, 100, 1)
Traceback (most recent call last):
File "c:\Users\elena.bull\Desktop\CADET - VS CODE\ZRM papers\Ghosh_2013\probleem spreading model.py", line 41, in <module>
simulation_results = simulator.simulate(process)
^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\simulator.py", line 275, in simulate
results = self.simulate_n_cycles(
^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\log.py", line 164, in wrapper
result = function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\log.py", line 225, in wrapper
results = function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\log.py", line 200, in wrapper
raise e
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\log.py", line 192, in wrapper
return function(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\simulator.py", line 334, in simulate_n_cycles
return self._run(process, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 154, in wrapper
results = func(self, process, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 297, in _run
results = self.get_simulation_results(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 154, in wrapper
results = func(self, process, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\simulator\cadetAdapter.py", line 597, in get_simulation_results
SolutionSolid(
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\solution.py", line 1484, in __init__
super().__init__(name, component_system, time, solution)
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\solution.py", line 127, in __init__
self.solution = solution
^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 176, in __set__
value = self._prepare(instance, value, recursive=True)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 1342, in _prepare
self.check_size(instance, value_array)
File "c:\Users\elena.bull\AppData\Local\miniconda3\envs\cadet_env1\Lib\site-packages\CADETProcess\dataStructure\parameter.py", line 1161, in check_size
raise ValueError(f"Expected size {expected_size}")
ValueError: Expected size (101, 100, 1)
How to produce bug (including a minimal reproducible example)
from CADETProcess.processModel import ComponentSystem, Inlet, Outlet, LumpedRateModelWithoutPores, Spreading, FlowSheet, Process
component_system = ComponentSystem(1)
inlet = Inlet(component_system, name='inlet')
inlet.c = 0.0152 # mol/m^3
inlet.flow_rate = 1e-6 # m^3/s
outlet = Outlet(component_system, name='outlet')
binding_model = Spreading(component_system, n_binding_sites=2, name="Spreading")
binding_model.adsorption_rate = [5.333, 0]
binding_model.desorption_rate = [1.06E-05, 0]
binding_model.capacity = [4.304, 3.762]
binding_model.exchange_from_1_2 = [0.049]
binding_model.exchange_from_2_1 = [9.41E-03]
binding_model.is_kinetic = True
column = LumpedRateModelWithoutPores(component_system, name="column")
column.length = 0.0022
column.diameter = 0.04
column.total_porosity = 0.7
column.axial_dispersion = 7e-11
column.binding_model = binding_model
column.solution_recorder.write_solution_solid = True
flow_sheet = FlowSheet(component_system, "flow_sheet")
flow_sheet.add_unit(inlet)
flow_sheet.add_unit(column)
flow_sheet.add_unit(outlet)
flow_sheet.add_connection(inlet, column)
flow_sheet.add_connection(column, outlet)
process = Process(flow_sheet, name="process")
process.cycle_time = 100 # s
from CADETProcess.simulator import Cadet
simulator = Cadet()
simulation_results = simulator.simulate(process)