Closed samuel-zhang01 closed 11 months ago
Hi Samuel,
Thanks for bringing this up! This was a minor bug that we missed. The commit I just pushed should fix this bug. @longemen3000 shall we bump versions?
Thanks Pierre!
Unfortunately, after the fix, there are still some errors on my side. I'm not sure if this a local problem but there seems to be a conversion error.
InexactError: Int64(3.125281051899621e-10)
Stacktrace:
[1] Int64
@ .\float.jl:900 [inlined]
[2] convert
@ .\number.jl:7 [inlined]
[3] setindex!
@ .\array.jl:969 [inlined]
[4] d(model::pharmaPCSAFT{BasicIdeal}, V::ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}, 1}, T::Int64, z::Vector{Float64})
@ Clapeyron C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\models\SAFT\PCSAFT\variants\PharmaPCSAFT.jl:80
[5] macro expansion
@ C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\utils\macros.jl:77 [inlined]
[6] data(model::pharmaPCSAFT{BasicIdeal}, V::ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}, 1}, T::Int64, z::Vector{Float64})
@ Clapeyron C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\models\SAFT\PCSAFT\PCSAFT.jl:78
[7] macro expansion
@ C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\utils\macros.jl:77 [inlined]
[8] a_res
@ C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\models\SAFT\PCSAFT\PCSAFT.jl:73 [inlined]
[9] eos_res(model::pharmaPCSAFT{BasicIdeal}, V::ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}}, ForwardDiff.Dual{ForwardDiff.Tag{Clapeyron.var"#fAᵣ#209"{pharmaPCSAFT{BasicIdeal}, Int64, Vector{Float64}}, Float64}, Float64, 1}, 1}, T::Int64, z::Vector{Float64})
@ Clapeyron C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\base\EoSModel.jl:80
[10] fAᵣ
@ C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\methods\VT.jl:130 [inlined]
[11] f∂f
@ C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\modules\solvers\ad.jl:40 [inlined]
...
@ Clapeyron C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\methods\property_solvers\multicomponent\solids\sle_solubility.jl:59
[27] sle_solubility(model::CompositeModel{pharmaPCSAFT{BasicIdeal}, pharmaPCSAFT{BasicIdeal}, SolidHfus, pharmaPCSAFT{BasicIdeal}, Nothing}, p::Float64, T::Int64, z::Vector{Float64}; solute::Vector{String})
@ Clapeyron C:\Users\USER\.julia\packages\Clapeyron\lzs2z\src\methods\property_solvers\multicomponent\solids\sle_solubility.jl:28
[28] top-level scope
@ c:\Users\USER\Documents\solubility-of-lidocaine\solubility.ipynb:2
Hi Samuel,
This error is a bit more subtle. In short, within Julia, 298
is Int64
while 298.
is Float64
. When you pass through an integer temperature through Clapeyron, it gets confused as most values are Floats and there's no easy conversion. Nevertheless, the fix is simple, just use:
sle_solubility(model,101325.,298.,[1.,0.];solute=["lidocaine2013"])
2-element Vector{Float64}:
0.9778550968509979
0.02214490314900212
I've been playing around with modelling a PC-SAFT based model with binary interaction parameters $k{slope}$ and $k{intercept}$. I found
pharmaPCSAFT
. However when using pharmaPCSAFT inCompositeModel
,sle_solubility
failed to calculate theCompositeModel
. The same calculations were done inPCSAFT
andogSAFT
without problems. I've linked my database files. data.zipCould you please help me with this error?