Skip to content

Instantly share code, notes, and snippets.

@benjamin5988
Last active September 27, 2023 20:54
Show Gist options
  • Save benjamin5988/d0b6b24bdf4fb6ecade1e014938b7d9c to your computer and use it in GitHub Desktop.
Save benjamin5988/d0b6b24bdf4fb6ecade1e014938b7d9c to your computer and use it in GitHub Desktop.
Reproduction of Circuit Library Bug
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "4777bd76",
"metadata": {},
"outputs": [],
"source": [
"using EquivalentCircuits"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "2fd034a6",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"\"R0-[P1-[P1,R1],C1]\""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"circuit_init=\"R0-[P1-[P1,R1],C1]\""
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a98fed61",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"7-element Vector{Float64}:\n",
" 249.3712\n",
" 8.9111e-9\n",
" 0.9175\n",
" 2.2931e-10\n",
" 0.9552\n",
" 78528.9522\n",
" 8.3193e-15"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"initial_guess=[249.3712, [8.9111e-09, 0.9175], [2.2931e-10, 0.9552], 78528.9522, 8.3193e-15]"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "6df038e8",
"metadata": {},
"outputs": [
{
"ename": "LoadError",
"evalue": "MethodError: no method matching min()\n\n\u001b[0mClosest candidates are:\n\u001b[0m min(\u001b[91m::T\u001b[39m, \u001b[91m::T\u001b[39m) where T<:Union{Float32, Float64}\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mmath.jl:854\u001b[24m\u001b[39m\n\u001b[0m min(\u001b[91m::RoundingMode\u001b[39m, \u001b[91m::ForwardDiff.Dual{Ty}\u001b[39m) where Ty\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mForwardDiff\u001b[39m \u001b[90m~/.julia/packages/ForwardDiff/vXysl/src/\u001b[39m\u001b[90m\u001b[4mdual.jl:145\u001b[24m\u001b[39m\n\u001b[0m min(\u001b[91m::Rational\u001b[39m, \u001b[91m::ForwardDiff.Dual{Ty}\u001b[39m) where Ty\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mForwardDiff\u001b[39m \u001b[90m~/.julia/packages/ForwardDiff/vXysl/src/\u001b[39m\u001b[90m\u001b[4mdual.jl:145\u001b[24m\u001b[39m\n\u001b[0m ...\n",
"output_type": "error",
"traceback": [
"MethodError: no method matching min()\n\n\u001b[0mClosest candidates are:\n\u001b[0m min(\u001b[91m::T\u001b[39m, \u001b[91m::T\u001b[39m) where T<:Union{Float32, Float64}\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mmath.jl:854\u001b[24m\u001b[39m\n\u001b[0m min(\u001b[91m::RoundingMode\u001b[39m, \u001b[91m::ForwardDiff.Dual{Ty}\u001b[39m) where Ty\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mForwardDiff\u001b[39m \u001b[90m~/.julia/packages/ForwardDiff/vXysl/src/\u001b[39m\u001b[90m\u001b[4mdual.jl:145\u001b[24m\u001b[39m\n\u001b[0m min(\u001b[91m::Rational\u001b[39m, \u001b[91m::ForwardDiff.Dual{Ty}\u001b[39m) where Ty\n\u001b[0m\u001b[90m @\u001b[39m \u001b[36mForwardDiff\u001b[39m \u001b[90m~/.julia/packages/ForwardDiff/vXysl/src/\u001b[39m\u001b[90m\u001b[4mdual.jl:145\u001b[24m\u001b[39m\n\u001b[0m ...\n",
"",
"Stacktrace:",
" [1] exhaustive_search(circuit::String, circuit_parameters::Vector{Float64})",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/Circuits.jl:296",
" [2] circuit_to_karva(circuit::String, circuit_parameters::Vector{Float64}; head::Int64, terminals::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/Circuits.jl:515",
" [3] circuit_to_karva",
" @ ~/.julia/packages/EquivalentCircuits/DjNzz/src/Circuits.jl:511 [inlined]",
" [4] add_to_circuitlibrary(circuit::String, parameters::Vector{Float64}, type::String, source::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/CircuitLibrary.jl:71",
" [5] add_to_circuitlibrary(circuit::String, parameters::Vector{Float64})",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/CircuitLibrary.jl:66",
" [6] top-level scope",
" @ In[5]:1"
]
}
],
"source": [
"EquivalentCircuits.add_to_circuitlibrary(circuit_init,initial_guess)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "b9d4acc6",
"metadata": {},
"outputs": [
{
"ename": "LoadError",
"evalue": "MethodError: \u001b[0mCannot `convert` an object of type \u001b[92mVector{Float64}\u001b[39m\u001b[0m to an object of type \u001b[91mFloat64\u001b[39m\n\n\u001b[0mClosest candidates are:\n\u001b[0m convert(::Type{T}, \u001b[91m::Base.TwicePrecision\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mtwiceprecision.jl:273\u001b[24m\u001b[39m\n\u001b[0m convert(::Type{T}, \u001b[91m::AbstractChar\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mchar.jl:185\u001b[24m\u001b[39m\n\u001b[0m convert(::Type{T}, \u001b[91m::CartesianIndex{1}\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mmultidimensional.jl:127\u001b[24m\u001b[39m\n\u001b[0m ...\n",
"output_type": "error",
"traceback": [
"MethodError: \u001b[0mCannot `convert` an object of type \u001b[92mVector{Float64}\u001b[39m\u001b[0m to an object of type \u001b[91mFloat64\u001b[39m\n\n\u001b[0mClosest candidates are:\n\u001b[0m convert(::Type{T}, \u001b[91m::Base.TwicePrecision\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mtwiceprecision.jl:273\u001b[24m\u001b[39m\n\u001b[0m convert(::Type{T}, \u001b[91m::AbstractChar\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mchar.jl:185\u001b[24m\u001b[39m\n\u001b[0m convert(::Type{T}, \u001b[91m::CartesianIndex{1}\u001b[39m) where T<:Number\n\u001b[0m\u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m\u001b[4mmultidimensional.jl:127\u001b[24m\u001b[39m\n\u001b[0m ...\n",
"",
"Stacktrace:",
" [1] setindex!(A::Vector{Float64}, x::Vector{Float64}, i1::Int64)",
" @ Base ./array.jl:969",
" [2] karva_parameters2(karva::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/CircuitLibrary.jl:165",
" [3] circuitparameters(circuit::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/CircuitLibrary.jl:150",
" [4] circuit_to_karva(circuit::String; head::Int64, terminals::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/Circuits.jl:526",
" [5] circuit_to_karva(circuit::String)",
" @ EquivalentCircuits ~/.julia/packages/EquivalentCircuits/DjNzz/src/Circuits.jl:525",
" [6] top-level scope",
" @ In[6]:1"
]
}
],
"source": [
"EquivalentCircuits.circuit_to_karva(circuit_init)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "29655067",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Julia 1.9.2",
"language": "julia",
"name": "julia-1.9"
},
"language_info": {
"file_extension": ".jl",
"mimetype": "application/julia",
"name": "julia",
"version": "1.9.2"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment