Cyclic VSA simulation with explicit parameter setup
This example sets up a four-stage vacuum swing adsorption (VSA) process by constructing each component explicitly. It shows how to compose an isotherm, mass transfer model, system, domain, and boundary conditions from individual physical parameters. This should act as a minimal example for users who want to set up a custom simulation.
The column separates a CO₂/N₂ mixture on Zeolite 13X.
import Jutul
import Jutul: si_unit
import Mocca
using StaticArrays1. Define the physics
Dual-site Langmuir isotherm for CO₂/N₂ on Zeolite 13X
isotherm = Mocca.DualSiteLangmuir(
qsb = SVector(3489.44, 6613.551), # saturation loading, site b [mol/m³]
b0 = SVector(8.65e-7, 2.5e-6), # pre-exponential factor [m³/mol]
ΔUb = SVector(-36641.21, -15800.0), # adsorption energy, site b [J/mol]
qsd = SVector(2872.35, 0.0), # saturation loading, site d [mol/m³]
d0 = SVector(2.63e-8, 0.0), # pre-exponential factor [m³/mol]
ΔUd = SVector(-35690.66, 0.0), # adsorption energy, site d [J/mol]
)DualSiteLangmuir{2, Float64}([3489.44, 6613.551], [8.65e-7, 2.5e-6], [-36641.21, -15800.0], [2872.35, 0.0], [2.63e-8, 0.0], [-35690.66, 0.0], [-38690.992593180876, -19002.32622975046])Particle and transport properties
D_m = 1.6e-5 # molecular diffusivity [m²/s]
d_p = 2e-3 # particle diameter [m]
mass_transfer = Mocca.LinearDrivingForce(
D_m = D_m,
τ = 3.0, # tortuosity [-]
ϵ_p = 0.35, # particle porosity [-]
d_p = d_p,
)LinearDrivingForce{Float64}(1.6e-5, 3.0, 0.35, 0.002)Assemble the adsorption system
system = Mocca.AdsorptionSystem(
isotherm = isotherm,
mass_transfer = mass_transfer,
molecular_masses = SVector(44.01e-3, 28.0e-3), # [kg/mol]
component_names = ["CO2", "N2"],
heat_capacity_gas = SVector(697.5687, 1096.4), # C_pg [J/(kg·K)]
heat_capacity_adsorbed = SVector(697.5687, 1096.4), # C_pa [J/(kg·K)]
)AdsorptionSystem{2, Float64, DualSiteLangmuir{2, Float64}, LinearDrivingForce{Float64}}(["CO2", "N2"], [0.04401, 0.028], [697.5687, 1096.4], [697.5687, 1096.4], DualSiteLangmuir{2, Float64}([3489.44, 6613.551], [8.65e-7, 2.5e-6], [-36641.21, -15800.0], [2872.35, 0.0], [2.63e-8, 0.0], [-35690.66, 0.0], [-38690.992593180876, -19002.32622975046]), LinearDrivingForce{Float64}(1.6e-5, 3.0, 0.35, 0.002))2. Build the column domain
ncells = 200
L = 1.0 # column length [m]
r_in = 0.1445 # inner radius [m]
r_out = 0.162 # outer wall radius [m]
porosity = 0.37 # bed porosity [-]
permeability = Mocca.compute_permeability(porosity, d_p)
dispersion = Mocca.compute_dispersion(D_m, 1.0, d_p)
mesh = Mocca.column_mesh(ncells, L, r_in)
domain = Mocca.mocca_domain(mesh;
porosity = porosity,
permeability = permeability,
r_in = r_in,
r_out = r_out,
diffusion_coefficient = dispersion,
thermal_conductivity = 0.0903, # K_z [W/(m·K)]
adsorbent_density = 1130.0, # ρ_s [kg/m³]
adsorbent_heat_capacity = 1070.0, # C_ps [J/(kg·K)]
wall_density = 7800.0, # ρ_w [kg/m³]
wall_heat_capacity = 502.0, # C_pw [J/(kg·K)]
wall_conductivity = 16.0, # K_w [W/(m·K)]
fluid_viscosity = 1.72e-5, # μ [Pa·s]
fluid_density = 1.22638310956, # ρ_g [kg/m³]
inner_htc = 8.6, # h_in [W/(m²·K)]
outer_htc = 2.5, # h_out[W/(m²·K)]
ambient_temperature = 298.15, # T_a [K]
)DataDomain wrapping CartesianMesh (3D) with 200x1x1=200 cells with 29 data fields added:
200 Jutul.Cells
:porosity => 200 Vector{Float64}
:permeability => 200 Vector{Float64}
:cell_centroids => 3×200 Matrix{Float64}
:volumes => 200 Vector{Float64}
:dx => 200 Vector{Float64}
199 Jutul.Faces
:neighbors => 2×199 Matrix{Int64}
:areas => 199 Vector{Float64}
:normals => 3×199 Matrix{Float64}
:face_centroids => 3×199 Matrix{Float64}
398 Jutul.HalfFaces
:half_face_cells => 398 Vector{Int64}
:half_face_faces => 398 Vector{Int64}
802 Jutul.BoundaryFaces
:boundary_areas => 802 Vector{Float64}
:boundary_centroids => 3×802 Matrix{Float64}
:boundary_normals => 3×802 Matrix{Float64}
:boundary_neighbors => 802 Vector{Int64}
1 Column
:r_in => 1 Vector{Float64}
:r_out => 1 Vector{Float64}
:diffusion_coefficient => 1 Vector{Float64}
:thermal_conductivity => 1 Vector{Float64}
:adsorbent_density => 1 Vector{Float64}
:adsorbent_heat_capacity => 1 Vector{Float64}
:wall_density => 1 Vector{Float64}
:wall_heat_capacity => 1 Vector{Float64}
:wall_conductivity => 1 Vector{Float64}
:fluid_viscosity => 1 Vector{Float64}
:fluid_density => 1 Vector{Float64}
:inner_htc => 1 Vector{Float64}
:outer_htc => 1 Vector{Float64}
:ambient_temperature => 1 Vector{Float64}
3. Create the model, initial state and parameters
model = Mocca.setup_process_model(system, domain)
bar = si_unit(:bar)
state0 = Mocca.setup_process_state(model;
Pressure = 1 * bar,
Temperature = 298.15,
WallTemperature = 298.15,
y = [1e-10, 1.0 - 1e-10],
)
parameters = Mocca.setup_process_parameters(model)Dict{Symbol, Any} with 19 entries:
:Transmissibilities => [4.46487e-8, 4.46487e-8, 4.46487e-8, 4.46487e…
:AdsorbentDensity => [1130.0]
:OuterHeatTransferCoeff => [2.5]
:InnerHeatTransferCoeff => [8.6]
:SolidVolume => [0.000206631, 0.000206631, 0.000206631, 0.000…
:WallAreaIn => [0.0045396, 0.0045396, 0.0045396, 0.0045396, …
:DiffusionTransmissibilities => [0.00490856, 0.00490856, 0.00490856, 0.004908…
:AdsorbentHeatCapacity => [1070.0]
:AmbientTemperature => [298.15]
:WallCrossSectionArea => [0.0168507]
:FluidViscosity => [1.72e-5]
:WallDensity => [7800.0]
:WallConductivity => [16.0]
:WallAreaOut => [0.00508938, 0.00508938, 0.00508938, 0.005089…
:CellDx => [0.005, 0.005, 0.005, 0.005, 0.005, 0.005, 0.…
:ThermalConductivities => [1.18469, 1.18469, 1.18469, 1.18469, 1.18469,…
:FluidVolume => [0.000121355, 0.000121355, 0.000121355, 0.000…
:WallHeatCapacity => [502.0]
:FluidDensity => [1.22638]4. Boundary conditions for each stage
y_feed = SVector(0.15, 0.85)
T_feed = 298.15
p_high = 1e5
p_low = 0.1e5
p_inter = 0.2e5
λ = 0.5
stage_times = [15.0, 15.0, 30.0, 40.0]
bcs = [
Mocca.PressurisationBC(y_feed = y_feed, PH = p_high, PL = p_low, λ = λ, T_feed = T_feed),
Mocca.AdsorptionBC(y_feed = y_feed, PH = p_high, v_feed = 0.37, T_feed = T_feed),
Mocca.BlowdownBC(PH = p_high, PI = p_inter, λ = λ),
Mocca.EvacuationBC(PL = p_low, PI = p_inter, λ = λ),
]4-element Vector{Any}:
Mocca.PressurisationBC{Float64, 2}
y_feed: StaticArraysCore.SVector{2, Float64}
PH: Float64 100000.0
PL: Float64 10000.0
λ: Float64 0.5
T_feed: Float64 298.15
stage_start: Float64 0.0
Mocca.AdsorptionBC{Float64, 2}
y_feed: StaticArraysCore.SVector{2, Float64}
PH: Float64 100000.0
v_feed: Float64 0.37
T_feed: Float64 298.15
Mocca.BlowdownBC{Float64}
PH: Float64 100000.0
PI: Float64 20000.0
λ: Float64 0.5
stage_start: Float64 0.0
Mocca.EvacuationBC{Float64}
PL: Float64 10000.0
PI: Float64 20000.0
λ: Float64 0.5
stage_start: Float64 0.0
5. Assemble forces and simulate
sim_forces, timesteps = Mocca.setup_forces(model, stage_times, bcs;
num_cycles = 3, max_dt = 1.0)
case = Mocca.MoccaCase(model, timesteps, sim_forces;
state0 = state0, parameters = parameters)
states, timesteps_out = Mocca.simulate_process(case;
output_substates = true,
info_level = 0,
)(OrderedCollections.OrderedDict{Symbol, Any}[OrderedCollections.OrderedDict(:Pressure => [45353.269621329026, 45469.67918723362, 45585.041031128756, 45699.4468974994, 45812.90675166647, 45925.429008042265, 46037.02190855787, 46147.69354770629, 46257.451876359875, 46366.30470514188 … 55452.061553216176, 55456.081243010936, 55459.65396647988, 55462.77984307531, 55465.45897683802, 55467.691456410525, 55469.47735504845, 55470.8167306298, 55471.70962566219, 55472.15606728812], :y => [0.30581659635636277 0.004801391498987895 … 1.4061081353332653e-10 1.4061031181921688e-10; 0.6941834036436373 0.9951986085010122 … 0.9999999998593893 0.9999999998593896], :AdsorbedConcentration => [152.00480322010029 2.4656509220429537 … 3.071539295802476e-5 3.071539327656103e-5; 16.60613141237096 196.29079993279146 … 253.78935865076093 253.7905559515231], :Temperature => [295.40429186757837, 296.9830424308859, 297.07858845287376, 297.0828868815415, 297.0852198250829, 297.08750086183335, 297.0897622546325, 297.09200469574387, 297.09422836117113, 297.09643341561014 … 297.27952464893036, 297.27960524491516, 297.2796768818113, 297.27973956213054, 297.2797932880614, 297.27983806146983, 297.2798738839036, 297.27990075662115, 297.27991868081915, 297.27992765919504], :WallTemperature => [298.149765677646, 298.149851129462, 298.149870525035, 298.1498733707348, 298.1498739675117, 298.1498742780076, 298.14987455066716, 298.14987481663434, 298.1498750798231, 298.14987534074015 … 298.1498970044369, 298.14989701397434, 298.14989702246015, 298.1498970299533, 298.1498970369238, 298.14989704712605, 298.14989709057176, 298.14989740717306, 298.14989991478404, 298.14991994471205]), OrderedCollections.OrderedDict(:Pressure => [66892.94269091116, 66889.04816730996, 66884.91127091952, 66880.45437254036, 66875.70272974127, 66870.70044983596, 66865.49792737873, 66860.14491980462, 66854.68652032685, 66849.16131960007 … 66473.90009293778, 66473.80089127092, 66473.71278177932, 66473.63573983494, 66473.56974389058, 66473.51477547904, 66473.47081921237, 66473.43786278131, 66473.41589695476, 66473.40491557938], :y => [0.1164015271654451 0.07544928532498375 … 1.4129992702136104e-10 1.4129978122246732e-10; 0.8835984728345548 0.9245507146750161 … 0.9999999998587001 0.9999999998587], :AdsorbedConcentration => [233.94972232853095 58.4894935702149 … 3.0715539034879625e-5 3.071553921529817e-5; 27.783430676391237 51.11869205533428 … 254.8867742214806 254.8870382126735], :Temperature => [298.0985894905229, 297.67523525212283, 297.1117579252855, 296.88854384838214, 296.81608388627575, 296.823831107903, 296.8702890826056, 296.93080889368633, 296.9918617001701, 297.04692328757983 … 297.28824987311026, 297.2882670574389, 297.2882823352318, 297.2882957065697, 297.288307171522, 297.28831673014895, 297.2883243825224, 297.28833012885866, 297.2883339704032, 297.28833591442907], :WallTemperature => [298.1498159081436, 298.14979208616995, 298.1497505673431, 298.14972659614494, 298.1497176908549, 298.1497181702179, 298.1497234587364, 298.14973061285093, 298.14973796470167, 298.14974468749506 … 298.1497950573725, 298.1497950689511, 298.14979507931065, 298.14979508886336, 298.1497951005378, 298.14979513482416, 298.1497953321843, 298.1497966289349, 298.14980501883605, 298.1498564957474]), OrderedCollections.OrderedDict(:Pressure => [79924.91505263236, 79911.82089860187, 79898.93828155327, 79886.23288247148, 79873.62231852673, 79861.02865277528, 79848.38412795114, 79835.6334360347, 79822.73455410758, 79809.65834128937 … 78248.69568726215, 78247.92238582684, 78247.2350252389, 78246.63359894254, 78246.11810121311, 78245.68852715708, 78245.3448727121, 78245.08713464701, 78244.91531056193, 78244.82939888818], :y => [0.1396397743603273 0.1218390009567082 … 1.2694708340445825e-10 1.269471540933373e-10; 0.8603602256396726 0.8781609990432916 … 0.999999999873053 0.9999999998730527], :AdsorbedConcentration => [346.7640470441423 162.39569053784064 … 3.0719746220019596e-5 3.07197463514577e-5; 25.44342219743023 30.006451764642083 … 286.24279484177623 286.24263402289773], :Temperature => [300.82120368110793, 300.816486750145, 299.84548332888596, 299.0747304860344, 298.4932333047094, 298.052536828574, 297.71916188222286, 297.46994050464946, 297.2877085522682, 297.1590036662124 … 297.525263467187, 297.5252517555718, 297.52524134858095, 297.5252322460647, 297.52522444789435, 297.5252179539709, 297.525212764286, 297.52520887927716, 297.5252063018399, 297.5252050466563], :WallTemperature => [298.1500981781493, 298.1500875993242, 298.1499545135888, 298.1498415968033, 298.1497625972627, 298.1497096066454, 298.1496745090862, 298.1496515524097, 298.1496369331048, 298.1496281535975 … 298.1497211699842, 298.14972118021524, 298.14972118960253, 298.1497211997416, 298.14972122081974, 298.14972131603656, 298.14972186296524, 298.1497250045924, 298.14974203393234, 298.1498258263648]), OrderedCollections.OrderedDict(:Pressure => [87826.78126400415, 87812.92331376448, 87799.26982450868, 87785.89055789818, 87772.76018496505, 87759.84164054388, 87747.09932174344, 87734.50061230788, 87722.01601081164, 87709.61922091158 … 86451.59918887196, 86450.96797228784, 86450.40688961423, 86449.91594127464, 86449.49512764662, 86449.14444906182, 86448.863905806, 86448.65349811906, 86448.51322619502, 86448.44309018197], :y => [0.14066525666376745 0.12473644050683581 … 1.1601752662229758e-10 1.1601760867057246e-10; 0.8593347433362325 0.8752635594931639 … 0.9999999998839825 0.9999999998839821], :AdsorbedConcentration => [466.140379411703 274.0043955649343 … 3.0723294650622624e-5 3.072329478368329e-5; 26.611493088517413 30.9429493598872 … 315.0787549575797 315.07853597872344], :Temperature => [302.96443480852923, 304.1686826478279, 303.1741811021812, 302.0552611032941, 301.09783327818354, 300.30358252145055, 299.6466351690634, 299.1051731497318, 298.66226915525243, 298.304180184936 … 297.7432359119592, 297.743220221263, 297.74320627691554, 297.7431940788513, 297.74318362701916, 297.7431749214059, 297.74316796217335, 297.743162750376, 297.7431592914714, 297.743157608792], :WallTemperature => [298.15052867606744, 298.150734650941, 298.15054245492286, 298.1503102938268, 298.15011850847617, 298.14997006954934, 298.14985591962443, 298.1497679368529, 298.1497002258265, 298.14964856906 … 298.14967308492476, 298.14967309342103, 298.1496731018942, 298.1496731148557, 298.14967315841744, 298.149673377746, 298.14967453868593, 298.14968040398776, 298.1497076468374, 298.1498187834209]), OrderedCollections.OrderedDict(:Pressure => [92618.03366392155, 92606.67696185828, 92595.47474247123, 92584.52597906544, 92573.82269314348, 92563.33734035505, 92553.04268519235, 92542.91511260312, 92532.93487590906, 92523.08587598614 … 91681.44157828912, 91681.02540452937, 91680.65546795363, 91680.33177008589, 91680.05431226252, 91679.8230956323, 91679.63812115636, 91679.49938960826, 91679.40690157391, 91679.36065745153], :y => [0.13899172499116694 0.12100580851192484 … 1.094110536514338e-10 1.0941110891529672e-10; 0.861008275008833 0.8789941914880749 … 0.999999999890589 0.9999999998905887], :AdsorbedConcentration => [584.7958403821037 382.7549579165835 … 3.072564827248879e-5 3.072564841539838e-5; 28.203265369779114 34.136540437698265 … 335.3526014198081 335.35243162447114], :Temperature => [304.82289985573516, 307.29014514850377, 306.36544101174013, 304.9385220711933, 303.6184771236345, 302.483960150997, 301.5236061229679, 300.71717695969926, 300.04639250523485, 299.4950979646281 … 297.89652317301994, 297.89651082199316, 297.8964998460436, 297.89649024514677, 297.89648201929435, 297.8964751685447, 297.89646969328226, 297.89646559543365, 297.89646288368095, 297.89646159012597], :WallTemperature => [298.15106909863334, 298.15168341288677, 298.15148638168034, 298.1511177336011, 298.15077518159234, 298.1504917203984, 298.15026240253445, 298.1500777071014, 298.1499296237617, 298.1498119407627 … 298.14964314455744, 298.1496431519002, 298.1496431607748, 298.1496431815921, 298.14964326938633, 298.14964370081736, 298.1496457789287, 298.14965512104874, 298.14969301072114, 298.14982462487467]), OrderedCollections.OrderedDict(:Pressure => [95523.3785162772, 95514.95706740924, 95506.66447774817, 95498.59310932607, 95490.7391449662, 95483.07915372709, 95475.59051255746, 95468.25542264477, 95461.0612277428, 95453.99993031853 … 94926.8902860214, 94926.63206391598, 94926.40252965208, 94926.2016844627, 94926.02952942785, 94925.88606547442, 94925.7712933763, 94925.6852137543, 94925.62782707617, 94925.59913365646], :y => [0.13564417583899802 0.1139141389041049 … 1.0555929926102126e-10 1.0555933279664968e-10; 0.864355824161002 0.8860858610958948 … 0.9999999998944407 0.9999999998944405], :AdsorbedConcentration => [698.4715526881408 483.19139370305487 … 3.072710931715472e-5 3.07271094678985e-5; 30.13740073587879 38.356834213398805 … 348.40066518115634 348.40055234766186], :Temperature => [306.61226777330063, 310.1179541421868, 309.20463235283887, 307.45413497756624, 305.7649136773969, 304.29627415961374, 303.05328614847525, 302.01588960347345, 301.1614786061249, 300.46781585092396 … 297.99519727029946, 297.99518880081393, 297.99518127507906, 297.9951746930758, 297.99516905481306, 297.995164360421, 297.995160610583, 297.99515780836396, 297.99515596615294, 297.9951551241943], :WallTemperature => [298.1517052383325, 298.1528825221533, 298.1527338906243, 298.15221657536273, 298.1516879023787, 298.1512316749709, 298.1508537674809, 298.1505446696596, 298.1502940664743, 298.1500930948258 … 298.1496248841977, 298.14962489120427, 298.14962490258506, 298.14962493913293, 298.14962510188997, 298.14962585372643, 298.1496291590433, 298.14964253192574, 298.1496906479481, 298.14983612072194]), OrderedCollections.OrderedDict(:Pressure => [97285.20079785679, 97279.29381320544, 97273.50611413647, 97267.90732629896, 97262.4922977197, 97257.24207209541, 97252.14088437069, 97247.17923331121, 97242.35332538994, 97237.66351551749 … 96917.38126214614, 96917.22416802542, 96917.08452651359, 96916.96233841882, 96916.85760444867, 96916.77032521008, 96916.70050120933, 96916.64813285207, 96916.6132204433, 96916.59576418722], :y => [0.1303018666884941 0.10374206371523877 … 1.0330726299397295e-10 1.0330728297471517e-10; 0.8696981333115058 0.8962579362847609 … 0.9999999998966927 0.9999999998966926], :AdsorbedConcentration => [804.0875420556927 571.7016450554737 … 3.072799769559026e-5 3.072799785125406e-5; 32.62830741618763 43.86478513352311 … 356.5097201578737 356.5096493544965], :Temperature => [308.40347446568103, 312.6218522025422, 311.5927958649685, 309.4887983272801, 307.4401829391953, 305.6721656410013, 304.19894417401656, 302.9931509472763, 302.0200458095531, 301.2440161374285 … 298.05652956906806, 298.05652397084737, 298.05651899735614, 298.05651464857266, 298.0565109245239, 298.0565078254403, 298.05650535241034, 298.05650350989794, 298.05650231429206, 298.0565018129076], :WallTemperature => [298.15242769155736, 298.15428179110785, 298.154223059854, 298.1535465151528, 298.1528006485019, 298.1521391549365, 298.15158562714663, 298.1511317018147, 298.1507638832127, 298.1504692227598 … 298.1496138837724, 298.1496138913999, 298.14961390827773, 298.14961397165445, 298.14961424888196, 298.1496154432672, 298.1496202657691, 298.14963800513567, 298.14969539442575, 298.14984922460843]), OrderedCollections.OrderedDict(:Pressure => [98353.60075205928, 98349.62773637725, 98345.76863167126, 98342.06769055934, 98338.51875926882, 98335.109791411, 98331.83407661114, 98328.69055729319, 98325.68115008912, 98322.80762939272 … 98130.72319967089, 98130.6282159967, 98130.54378465867, 98130.46990615242, 98130.40658091172, 98130.35380930855, 98130.3115916531, 98130.2799281937, 98130.25881911688, 98130.2482645472], :y => [0.12223412848461701 0.09057454670616417 … 1.0197851097263877e-10 1.0197852297366084e-10; 0.877765871515383 0.9094254532938356 … 0.9999999998980215 0.9999999998980214], :AdsorbedConcentration => [898.9791675229264 645.7884850412877 … 3.0728534531530185e-5 3.0728534689989226e-5; 36.02929535783304 51.26862209558894 … 361.47476657145006 361.47472302353725], :Temperature => [310.17522685800225, 314.76017808639443, 313.48972782740526, 311.0268872779125, 308.6660050428708, 306.66886485724257, 305.0409291172167, 303.73365024081323, 302.6904013873494, 301.857907462026 … 298.0940858886826, 298.0940821583963, 298.09407884530947, 298.0940759494015, 298.094073470731, 298.0940714096725, 298.0940697678382, 298.09406855132136, 298.0940677806227, 298.094067508845], :WallTemperature => [298.1532228547455, 298.15583011666934, 298.1558898002653, 298.1550462652094, 298.15406016830485, 298.1531701192542, 298.1524228928172, 298.1518113496554, 298.15131706713197, 298.150921176885 … 298.14960732906695, 298.14960733851325, 298.1496073650125, 298.14960746985366, 298.14960790891894, 298.1496096745679, 298.14961626505095, 298.1496385046127, 298.1497039482401, 298.14986193675793]), OrderedCollections.OrderedDict(:Pressure => [99001.50808908814, 98998.93195968874, 98996.46231112328, 98994.12334768107, 98991.91050043331, 98989.81873852627, 98987.84678448936, 98985.99417679869, 98984.25778234671, 98982.63012251559 … 98867.71972631727, 98867.66238902508, 98867.6114217, 98867.56682463948, 98867.52859810383, 98867.49674231626, 98867.4712574628, 98867.4521436924, 98867.43940111675, 98867.43302981035], :y => [0.11073528061831402 0.07523142318180412 … 1.0118824699491785e-10 1.0118825434947373e-10; 0.8892647193816859 0.9247685768181956 … 0.9999999998988117 0.9999999998988116], :AdsorbedConcentration => [980.6943538816116 704.2616577861443 … 3.0728858458882716e-5 3.0728858618783936e-5; 40.87303693007032 61.274990483778495 … 364.4944655213681 364.49443879334535], :Temperature => [311.85193451684086, 316.49997852618196, 314.91624105839503, 312.13379950125494, 309.5366436724514, 307.3853013100422, 305.656586713114, 304.27370725336795, 303.16215933854954, 302.26192627402685 … 298.11692862969835, 298.1169260576926, 298.1169237742057, 298.11692177922555, 298.1169200728613, 298.1169186556828, 298.1169175299459, 298.116916703558, 298.11691620109127, 298.11691608010807], :WallTemperature => [298.15406997360077, 298.15747619557936, 298.15767484435094, 298.15666296721463, 298.1554241853875, 298.1542917324959, 298.15333906937485, 298.15256001013745, 298.15193014861546, 298.15142416868474 … 298.1496034786352, 298.1496034914797, 298.1496035330968, 298.149603697673, 298.149604352277, 298.1496068174651, 298.14961537649833, 298.1496420822441, 298.14971428560966, 298.14987341319517]), OrderedCollections.OrderedDict(:Pressure => [99394.4290719803, 99392.80816085555, 99391.2832620547, 99389.86569596898, 99388.55215946939, 99387.33905673563, 99386.22190422045, 99385.19285268728, 99384.24043841605, 99383.35130118304 … 99314.42848543824, 99314.39387955276, 99314.36311826225, 99314.33620174434, 99314.31313015454, 99314.29390362611, 99314.27852227015, 99314.26698617554, 99314.25929540895, 99314.25545001467], :y => [0.095900687758354 0.05958105242176821 … 1.0071556143148343e-10 1.0071556607789578e-10; 0.9040993122416459 0.9404189475782315 … 0.9999999998992845 0.9999999998992843], :AdsorbedConcentration => [1047.4413100988734 747.7202086911228 … 3.072905391022739e-5 3.072905407073627e-5; 47.81916278954691 74.20876428154996 … 366.32518824963773 366.32517168383447], :Temperature => [313.34197776710937, 317.8462943658697, 315.9473500344042, 312.9110062957396, 310.1440460827622, 307.87942067035385, 306.0639852765819, 304.6050304078529, 303.424602872944, 302.46450402226804 … 298.1307776858608, 298.1307758189448, 298.1307741622199, 298.1307727156911, 298.1307714795399, 298.1307704545868, 298.1307696438448, 298.1307690571704, 298.1307687230496, 298.13076870223574], :WallTemperature => [298.15494264321734, 298.15917255068905, 298.1595293561098, 298.15835588905594, 298.15686075528413, 298.1554774480156, 298.15430950450656, 298.1533530943861, 298.15257855041864, 298.15195459146656 … 298.1496012681521, 298.1496012864894, 298.1496013502689, 298.14960159634273, 298.1496025246079, 298.1496058111432, 298.14961648495097, 298.1496474953195, 298.1497252086633, 298.14988341056255]) … OrderedCollections.OrderedDict(:Pressure => [10000.004950272341, 9999.986551343529, 9999.952720340063, 9999.908462419082, 9999.857913007982, 9999.804435967231, 9999.750427150011, 9999.697238626131, 9999.64529984347, 9999.594374147633 … 9998.382200492155, 9998.382376410424, 9998.38253284276, 9998.3826697765, 9998.382787198088, 9998.382885092833, 9998.382963444625, 9998.383022235654, 9998.38306144636, 9998.383081057118], :y => [0.6632590523057802 0.658752279137062 … 7.557328541678001e-8 7.089132117293771e-8; 0.33674094769421914 0.3412477208629377 … 0.9999999244267153 0.9999999291086794], :AdsorbedConcentration => [3346.6961992085876 3095.094554406582 … 0.002668565597761593 0.002455715528842059; 1.8854957102793242 2.150625070148163 … 41.22726825081424 41.22713428943628], :Temperature => [298.8254599616997, 304.78498734929497, 311.9086588678974, 318.9265790047391, 325.32332108321134, 330.8256931732091, 335.3173262246326, 338.806189341276, 341.39084600485415, 343.21834139264683 … 295.7635124989249, 295.7635054021099, 295.7635155264806, 295.76354335935633, 295.76358963187295, 295.76365536279803, 295.76374191702473, 295.7638509092619, 295.76398211705003, 295.7641148026632], :WallTemperature => [298.2161515046239, 298.3487802306972, 298.4791112656304, 298.60378064852847, 298.71959251690987, 298.82387263993127, 298.9146486834998, 298.99071766894633, 299.0516198969224, 299.09754091705565 … 298.1047883859754, 298.10672417107236, 298.1090661793341, 298.11188353334705, 298.11525943934606, 298.1192963305483, 298.1241216471225, 298.12989301307186, 298.136800891309, 298.1450665033258]), OrderedCollections.OrderedDict(:Pressure => [10000.003219670769, 9999.983180601965, 9999.94795699634, 9999.902434256368, 9999.850635140278, 9999.7958425146, 9999.740412629428, 9999.685697005787, 9999.632151773982, 9999.579579450914 … 9998.296816021955, 9998.296958894962, 9998.2970859506, 9998.297197177364, 9998.297292562691, 9998.297372092728, 9998.297435752034, 9998.297483523316, 9998.297515387363, 9998.297531324768], :y => [0.6624480197333056 0.6579945461753032 … 7.558504806720308e-8 7.09044643560651e-8; 0.3375519802666937 0.34200545382469655 … 0.9999999244149526 0.9999999290955363], :AdsorbedConcentration => [3345.4649359517925 3094.355296827442 … 0.00266889054001827 0.002456167509993428; 1.8916084062576275 2.156736046315371 … 41.226477809230055 41.22634317792886], :Temperature => [298.8151551852299, 304.767239830293, 311.8921328153703, 318.9128640967876, 325.3121479533109, 330.8163517038271, 335.3090180386444, 338.79822079110664, 341.38270726465083, 343.20971208617993 … 295.7638724516094, 295.76386565546375, 295.7638761422958, 295.7639044103078, 295.7639512037913, 295.76401755772827, 295.7641048563655, 295.76421472891616, 295.76434689416254, 295.7644802178232], :WallTemperature => [298.2162746324845, 298.3491592484591, 298.4797629468345, 298.60472076072574, 298.720834185867, 298.82542647018164, 298.91652273321796, 298.99291680825615, 299.05414473394774, 299.1003867389085 … 298.1045700952039, 298.10651528341026, 298.10886832454264, 298.1116989703491, 298.11509123856473, 298.11914845788743, 298.12399884508415, 298.1298003783995, 298.1367431153235, 298.1450468948192]), OrderedCollections.OrderedDict(:Pressure => [10000.002070525183, 9999.980959625815, 9999.94490315173, 9999.898670846374, 9999.846173907077, 9999.790613328445, 9999.73430341057, 9999.678591966038, 9999.62395863688, 9999.57024256865 … 9998.237833580915, 9998.237953077396, 9998.238059351746, 9998.238152393267, 9998.238232190093, 9998.23829872894, 9998.238351994834, 9998.238391970819, 9998.238418637908, 9998.23843197683], :y => [0.6616321569159025 0.6572291784190722 … 7.559657427204561e-8 7.091738536433138e-8; 0.33836784308409684 0.3427708215809275 … 0.9999999244034263 0.9999999290826153], :AdsorbedConcentration => [3344.2508030238027 3093.6287839458755 … 0.0026692155728542675 0.0024566193626858897; 1.8977922645828145 2.1629438718299596 … 41.22581378559406 41.22567848466932], :Temperature => [298.80532278752673, 304.7499017456561, 311.87581144893255, 318.89917982073905, 325.30088511978687, 330.8068609323618, 335.3005556913648, 338.7901305363248, 341.3744965051108, 343.2010616042659 … 295.764233261864, 295.76422676819914, 295.76423761952117, 295.7642663250134, 295.76431364224794, 295.7643806225525, 295.7644686695986, 295.76457942682305, 295.76471255296457, 295.7648465189406], :WallTemperature => [298.21639808683693, 298.34953884635456, 298.48041515504656, 298.60566124657845, 298.7220760458997, 298.8269802200371, 298.9183962440548, 298.995114708523, 299.0566674104215, 299.1032293394853 … 298.1043520821899, 298.1063067427008, 298.1086709171922, 298.1115149826369, 298.11492375150544, 298.1190014149273, 298.1238769184142, 298.12970854318013, 298.1366859105014, 298.14502749518545]), OrderedCollections.OrderedDict(:Pressure => [10000.001303581075, 9999.979519876008, 9999.943021368623, 9999.896466464907, 9999.843656941295, 9999.787712228243, 9999.73090335886, 9999.67457201043, 9999.619218582782, 9999.564716465049 … 9998.197505922986, 9998.197608892016, 9998.197700473842, 9998.197780658318, 9998.197849434062, 9998.197906788184, 9998.197952706018, 9998.19798717082, 9998.198010163744, 9998.198021665592], :y => [0.6608159411235783 0.656461093686118 … 7.560793358554952e-8 7.093014886453414e-8; 0.339184058876421 0.3435389063138816 … 0.999999924392067 0.9999999290698518], :AdsorbedConcentration => [3343.05298415749 3092.9142617500165 … 0.0026695406926689237 0.002457071084079813; 1.9040097818216388 2.1692028563003376 … 41.22523913963879 41.22510316811115], :Temperature => [298.79593821887084, 304.7329527728546, 311.85968074070075, 318.885516190278, 325.28952434826783, 330.79721215031594, 335.29192839586455, 338.7819051439529, 341.3661979933495, 343.19237274567496 … 295.76459465199764, 295.76458846253524, 295.764599680302, 295.76462882555995, 295.76467666928363, 295.76474427927246, 295.7648330786853, 295.7649447248918, 295.7650788153163, 295.76521342778693], :WallTemperature => [298.2165218589957, 298.34991902059966, 298.48106789383166, 298.6066021015092, 298.72331807091695, 298.8285338422225, 298.9202691596108, 298.99731131969276, 299.05918789434895, 299.1060687097485 … 298.10413435131113, 298.10609855385735, 298.1084739614163, 298.1113315715075, 298.1147569741022, 298.11885519007564, 298.12375584773866, 298.12961748369895, 298.13662925638147, 298.1450082961258]), OrderedCollections.OrderedDict(:Pressure => [10000.000789216192, 9999.978611930199, 9999.941942751575, 9999.895333149014, 9999.842478280942, 9999.786417124116, 9999.729376858819, 9999.672691152247, 9999.61687874944, 9999.561845051474 … 9998.170347622978, 9998.170438914893, 9998.170520116091, 9998.170591216816, 9998.170652206007, 9998.170703071044, 9998.170743797453, 9998.170774368627, 9998.170794765787, 9998.170804969772], :y => [0.6600024217210921 0.6556936601094652 … 7.561917527508684e-8 7.094280066416075e-8; 0.3399975782789072 0.3443063398905345 … 0.9999999243808253 0.9999999290572], :AdsorbedConcentration => [3341.8707697784066 3092.2110974099337 … 0.0026698658968693045 0.002457522672231613; 1.9102350807925639 2.1754814496890855 … 41.22472764062143 41.22459099662553], :Temperature => [298.78698016564664, 304.7163753982455, 311.8437298483926, 318.8718671094849, 325.2780620179154, 330.78740182707475, 335.28313086844554, 338.7735367682589, 341.3578014787847, 343.18363357423976 … 295.76495642537697, 295.7649505417782, 295.7649621278964, 295.7649917151692, 295.76504008809263, 295.76510833105846, 295.76519788676717, 295.765310426221, 295.7654454842739, 295.765580747335], :WallTemperature => [298.21664594085, 298.3502997658025, 298.48172116335354, 298.6075433182772, 298.7245602343847, 298.8300872907957, 298.92214142520396, 298.999506592624, 299.06170615334645, 299.1089048390823 … 298.10391690681627, 298.105890721554, 298.10827746099653, 298.1111487378442, 298.11459090195194, 298.11870977171833, 298.1236356142308, 298.1295271773892, 298.1365731338018, 298.14498928995556]), OrderedCollections.OrderedDict(:Pressure => [10000.000442649805, 9999.978066349191, 9999.941413499853, 9999.894933018493, 9999.842216655132, 9999.78622457383, 9999.729140029729, 9999.672287220601, 9999.616201103405, 9999.560817003436 … 9998.15247728887, 9998.15256033672, 9998.152634209242, 9998.15269889694, 9998.152754388972, 9998.152800672886, 9998.152837734335, 9998.152865556778, 9998.152884121464, 9998.152893409238], :y => [0.6591936541392486 0.6549291680999608 … 7.563033422037996e-8 7.09553731949886e-8; 0.3408063458607507 0.34507083190003884 … 0.9999999243696663 0.9999999290446275], :AdsorbedConcentration => [3340.703530356858 3091.518747020887 … 0.0026701911835772286 0.002457974125833079; 1.916450412006623 2.181757947786701 … 41.22426072244275 41.22412340350604], :Temperature => [298.77842974075685, 304.7001541962011, 311.82795017682315, 318.85822913916337, 325.2664976245118, 330.7774299445613, 335.2741616043211, 338.7650214549269, 341.34930057660034, 343.1748358985747 … 295.7653184428436, 295.76531286672997, 295.76532482307675, 295.7653548545928, 295.7654037594121, 295.765472638634, 295.76556295454714, 295.7656763914769, 295.7658124204661, 295.7659483381345], :WallTemperature => [298.2167703247232, 298.3506810752558, 298.4823749609888, 298.60848488751236, 298.72580250964097, 298.8316405213605, 298.92401298813246, 299.0017004794637, 299.0642221551084, 299.11173771579854 … 298.1036997528282, 298.10568325023263, 298.1080814193788, 298.1109664821461, 298.11442553035783, 298.1185651482621, 298.12351619961754, 298.1294376027686, 298.13651752478535, 298.14497046953653]), OrderedCollections.OrderedDict(:Pressure => [10000.000208124462, 9999.9777676222, 9999.941258628427, 9999.895031818625, 9999.842578973794, 9999.786783425363, 9999.729784788262, 9999.672896645421, 9999.616668262479, 9999.56106293403 … 9998.141149915318, 9998.141227147755, 9998.14129585064, 9998.141356014665, 9998.141407629126, 9998.141450681675, 9998.141485158028, 9998.14151104168, 9998.141528313867, 9998.141536955422], :y => [0.6583910017276629 0.6541691573317002 … 7.564143510216181e-8 7.096788940700826e-8; 0.34160899827233643 0.3458308426682995 … 0.9999999243585654 0.9999999290321113], :AdsorbedConcentration => [3339.5506975251105 3090.8367328681256 … 0.002670516551421218 0.0024584254440262595; 1.9226437051731744 2.1880175210239527 … 41.22382525078378 41.22368725402331], :Temperature => [298.77026990995506, 304.6842753219478, 311.8123347246773, 318.844600640499, 325.25483273974066, 330.7672988346184, 335.26502166729074, 338.75635794414404, 341.3406916214508, 343.1659741904969 … 295.76568060597066, 295.76567533893876, 295.7656876673745, 295.76571814535254, 295.7657675847583, 295.7658371035088, 295.7659281835198, 295.76604252212206, 295.7661795253213, 295.7663161015387], :WallTemperature => [298.21689500325687, 298.35106294115747, 298.4830292818098, 298.60942679812695, 298.72704487010367, 298.83319349116505, 298.92588379780557, 299.00389293387923, 299.06673586773155, 299.11456732750787 … 298.1034828933455, 298.105476144109, 298.1078858396876, 298.11078480455564, 298.11426085436835, 298.11842130816973, 298.1233975861794, 298.12934873937695, 298.13646241243777, 298.1449518282191]), OrderedCollections.OrderedDict(:Pressure => [10000.00004878015, 9999.977636785377, 9999.941357336747, 9999.89546706757, 9999.84336133743, 9999.787848830354, 9999.731026051484, 9999.674195062444, 9999.61791772569, 9999.562183471902 … 9998.134425334636, 9998.134498468778, 9998.13456352854, 9998.13462050472, 9998.134669386702, 9998.1347101622, 9998.13474281696, 9998.134767334464, 9998.13478369593, 9998.134791882156], :y => [0.6575953456390979 0.653414644096053 … 7.565249537445547e-8 7.098036553156334e-8; 0.34240465436090134 0.34658535590394673 … 0.9999999243475052 0.9999999290196352], :AdsorbedConcentration => [3338.411750620053 3090.164627332869 … 0.0026708419993888917 0.0024588766262721223; 1.9288068630692006 2.194250146773499 … 41.223411939213605 41.22327326147536], :Temperature => [298.76248508312887, 304.6687261525215, 311.7968776286556, 318.8309811805291, 325.2430702884116, 330.7570123685938, 335.2557138414505, 338.7475468268623, 341.3319728554155, 343.15704481618326 … 295.76604284518567, 295.76603788881766, 295.7660505911951, 295.76608151785194, 295.76613149453533, 295.7662016560852, 295.766293504076, 295.76640874851824, 295.76654672917005, 295.76668396780593], :WallTemperature => [298.2170199693193, 298.35144535478065, 298.48368411896774, 298.6103690376359, 298.72828728940476, 298.8347461591254, 298.92775380578587, 299.0060839111911, 299.06924725993684, 299.1173936613927 … 298.1032663322428, 298.10526940717784, 298.10769072474005, 298.1106037048838, 298.1140968688123, 298.1182782399894, 298.1232797567458, 298.129260567717, 298.1364077808557, 298.14493335979256]), OrderedCollections.OrderedDict(:Pressure => [9999.999940108875, 9999.97761967963, 9999.94162607178, 9999.89612594144, 9999.844421800082, 9999.789249981794, 9999.73266457855, 9999.675955408082, 9999.619695379188, 9999.563898336937 … 9998.130932503727, 9998.131002753233, 9998.131065248797, 9998.131119981292, 9998.131166940148, 9998.131206113103, 9998.131237485904, 9998.131261042012, 9998.131276762595, 9998.131284628413], :y => [0.6568072318645941 0.6526662806088411 … 7.566352737603767e-8 7.099281304438561e-8; 0.3431927681354051 0.3473337193911586 … 0.9999999243364732 0.9999999290071877], :AdsorbedConcentration => [3337.286207044615 3089.5020414651653 … 0.0026711675267220973 0.0024593276722572398; 1.9349345643544895 2.200449159001733 … 41.22301422408238 41.22287486203962], :Temperature => [298.75506082161354, 304.6534950310085, 311.78157384498815, 318.8173711202729, 325.2312140483563, 330.7465753947231, 335.2462420388921, 338.738589952009, 341.3231438544786, 343.14804549124653 … 295.76640511133365, 295.7664004672048, 295.7664135453754, 295.76644492293104, 295.766495439588, 295.76656624720937, 295.7666588670529, 295.76677502147595, 295.7669139827933, 295.7670518876479], :WallTemperature => [298.2171452159359, 298.3518283066086, 298.48433946400127, 298.61131159241035, 298.7295297414753, 298.8362984858017, 298.9296229657728, 299.00827336843605, 299.071756301218, 299.12021670440987 … 298.1030500732713, 298.10506304321785, 298.1074960770589, 298.11042318263446, 298.1139335683305, 298.11813593237895, 298.1231626946866, 298.12917306919684, 298.13635361504475, 298.14491505844165]), OrderedCollections.OrderedDict(:Pressure => [9999.999865743946, 9999.977679114749, 9999.942007068652, 9999.896930203331, 9999.845661725647, 9999.790867965316, 9999.734561407522, 9999.67801904668, 9999.62182342523, 9999.566011183248 … 9998.129703433091, 9998.129771655169, 9998.12983234859, 9998.12988550426, 9998.129931111636, 9998.129969158455, 9998.129999630448, 9998.13002251103, 9998.130037781317, 9998.130045422024], :y => [0.6560269736872898 0.651924465877517 … 7.567453982383171e-8 7.100524005383777e-8; 0.3439730263127095 0.3480755341224828 … 0.9999999243254608 0.9999999289947606], :AdsorbedConcentration => [3336.1736153075003 3088.8486168189665 … 0.0026714931328427876 0.002459778581827829; 1.9410234271981652 2.206610236635643 … 41.22262746938952 41.2224874196119], :Temperature => [298.74798362692815, 304.6385710831297, 311.7664189266734, 318.8037713299659, 325.219268305383, 330.7359933484315, 335.23661088653955, 338.72949000980975, 341.314205122798, 343.1389748935666 … 295.7667673697148, 295.76676303939865, 295.7667764952172, 295.76680832589847, 295.7668593852325, 295.76693084220085, 295.76702423776254, 295.76714130628187, 295.7672812514499, 295.76741982625634], :WallTemperature => [298.21727073623725, 298.3522117864443, 298.4849953070873, 298.6122544478804, 298.7307722005969, 298.83785043334507, 298.93149123354937, 299.01046126438257, 299.0742629619379, 299.12303644344115 … 298.10283412005805, 298.10485705579595, 298.1073018988852, 298.1102432370271, 298.11377094740425, 298.1179943741255, 298.12304638390117, 298.12908622607665, 298.13629990084576, 298.1448969187096])], [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 … 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0])6. Visualise
f_outlet = Mocca.plot_cell(states, model, timesteps_out, ncells)
f_column = Mocca.plot_state(states[end], model)
Example on GitHub
If you would like to run this example yourself, it can be downloaded from the Mocca.jl GitHub repository.
This page was generated using Literate.jl.