Hi,
I am trying to model radial flow chromatography in CADET, but I am stuck on how to import the RFC in the code.
Does anyone want to share their experience on this matter?
Hi,
I am trying to model radial flow chromatography in CADET, but I am stuck on how to import the RFC in the code.
Does anyone want to share their experience on this matter?
Hi Kauthar and welcome to the forum!
Maybe you could give us some more information about what you’ve already tried?
Best regards,
Johannes
Hi, I tried using one of the projects in the CADET process. I tried to modify it for RFC but I was getting an error “ImportError: cannot import name ‘radialcolumn’ from ‘CADETProcess.processModel’”
Q = 1e-6/60
from CADETProcess.processModel import ComponentSystem
from CADETProcess.processModel import Langmuir
from CADETProcess.processModel import (
Inlet, Cstr, LumpedRateModelWithPores, Outlet
)
from CADETProcess.processModel import FlowSheet
from CADETProcess.processModel import Process
# Component System
component_system = ComponentSystem(['Protein'])
# Binding Model
binding_model = Langmuir(component_system, name='langmuir')
binding_model.is_kinetic = False
binding_model.adsorption_rate = [0.02]
binding_model.desorption_rate = [1]
binding_model.capacity = [100]
# Unit Operations
feed = Inlet(component_system, name='feed')
feed.c = [10]
eluent = Inlet(component_system, name='eluent')
eluent.c = [0]
# Mixer
valve = Cstr(component_system, 'valve')
valve.V = 1e-6
valve.flow_rate = Q
# Column
column = LumpedRateModelWithPores(component_system, 'column')
column.binding_model = binding_model
column.length = 0.1
column.diameter = 0.01
column.bed_porosity = 0.37
column.particle_radius = 4.5e-5
column.particle_porosity = 0.33
column.axial_dispersion = 2.0e-7
column.film_diffusion = [1e-4]
outlet = Outlet(component_system, name='outlet')
# Flow Sheet
flow_sheet = FlowSheet(component_system)
flow_sheet.add_unit(feed)
flow_sheet.add_unit(eluent)
flow_sheet.add_unit(valve)
flow_sheet.add_unit(column)
flow_sheet.add_unit(outlet)
flow_sheet.add_connection(feed, valve)
flow_sheet.add_connection(eluent, valve)
flow_sheet.add_connection(valve, column)
flow_sheet.add_connection(column, outlet)
# Process
process = Process(flow_sheet, 'batch elution')
## Create Events and Durations
process.add_event('feed_on', 'flow_sheet.feed.flow_rate', Q, 0)
process.add_event('feed_off', 'flow_sheet.feed.flow_rate', 0.0, 60)
process.add_event('eluent_off', 'flow_sheet.eluent.flow_rate', 0.0, 0)
process.add_event('eluent_on', 'flow_sheet.eluent.flow_rate', Q, 60)
## Set Process Times
process.cycle_time = 1200
from CADETProcess.simulator import Cadet
process_simulator = Cadet()
simulation_results = process_simulator.simulate(process)
_ = simulation_results.solution.column.inlet.plot()
_ = simulation_results.solution.column.outlet.plot() or paste code here
Since the radial flow code is still quite experimental in CADET-Core, it’s not yet supported in CADET-Process. I’ve opened an issue on Github to track progress. If you want to work on this, I’m happy to review a PR.
Best
Jo
Hi Kauthar,
alternatively you can use the CADET-Python interface and configure the radial flow column according to the CADET-Python documentation Radial Flow Models — CADET
Best regards,
Jan
Hi Jan,
Thanks for the suggestions. I will have a look at that.
Regards
Kauthar