Sorry, this has taken a bit. You are correct there is a big with the keq transform where it doesn’t accept index. I have just fixed that in version 0.8.10 and I will put that version out on PyPi and conda later today. It is already up on GitHub now.
You can use the set_value transform to copy a value so you only have to estimate it once.
This is the configuration file I used to setup everything
"parameters": [
{
"location": "/input/model/unit_001/adsorption/MCL_QMAX",
"min": 1,
"max": 10,
"index": 0,
"transform": "auto"
},
{
"location": "/input/model/unit_001/adsorption/MCL_QMAX",
"min": 1,
"max": 10,
"index": 1,
"transform": "auto"
},
{
"location": "/input/model/unit_001/adsorption/MCL_QMAX",
"min": 1,
"max": 10,
"index": 2,
"transform": "auto"
},
{
"transform": "auto_keq",
"index": 0,
"location": [
"/input/model/unit_001/adsorption/MCL_KA",
"/input/model/unit_001/adsorption/MCL_KD"
],
"minKA": 1e-3,
"maxKA": 1e3,
"minKEQ": 1e-3,
"maxKEQ": 1e3
},
{
"transform": "auto_keq",
"index": 1,
"location": [
"/input/model/unit_001/adsorption/MCL_KA",
"/input/model/unit_001/adsorption/MCL_KD"
],
"minKA": 1e-3,
"maxKA": 1e3,
"minKEQ": 1e-3,
"maxKEQ": 1e3
},
{
"transform": "auto_keq",
"index": 2,
"location": [
"/input/model/unit_001/adsorption/MCL_KA",
"/input/model/unit_001/adsorption/MCL_KD"
],
"minKA": 1e-3,
"maxKA": 1e3,
"minKEQ": 1e-3,
"maxKEQ": 1e3
},
{
"transform": "auto",
"index": 0,
"location": "/input/model/unit_001/PAR_DIFFUSION",
"min": 1e-14,
"max": 1e-6
},
{
"transform": "set_value",
"indexFrom": 0,
"locationFrom": "/input/model/unit_001/PAR_DIFFUSION",
"indexTo": 1,
"locationTo": "/input/model/unit_001/PAR_DIFFUSION"
},
{
"transform": "set_value",
"indexFrom": 0,
"locationFrom": "/input/model/unit_001/PAR_DIFFUSION",
"indexTo": 2,
"locationTo": "/input/model/unit_001/PAR_DIFFUSION"
}
],
"experiments": [
{
"name": "main",
"csv": "Dispalcement_breakthrough_experiment_comp0.csv",
"HDF5": "ds_cex_reference.h5",
"isotherm": "/output/solution/unit_002/SOLUTION_OUTLET_COMP_000",
"features": [
{
"name": "Pulse0",
"type": "Shape",
"csv": "Dispalcement_breakthrough_experiment_comp0.csv",
"isotherm": "/output/solution/unit_002/SOLUTION_OUTLET_COMP_000"
},
{
"name": "Pulse1",
"type": "Shape",
"csv": "Dispalcement_breakthrough_experiment_comp1.csv",
"isotherm": "/output/solution/unit_002/SOLUTION_OUTLET_COMP_001"
},
{
"name": "Pulse2",
"type": "Shape",
"csv": "Dispalcement_breakthrough_experiment_comp2.csv",
"isotherm": "/output/solution/unit_002/SOLUTION_OUTLET_COMP_002"
}
]
}
],