MaximeVH / EquivalentCircuits.jl

A julia package to either fit the parameters of a specified equivalent electrical circuit to electrochemical impedance data, or to suggest a plausible circuit configuration for a given set of measurements (either through a comparison of circuits from the literature, or through an evolutionary algorithm approach).
MIT License
22 stars 6 forks source link

Name of functions and variables #9

Closed StefanPofahl closed 1 year ago

StefanPofahl commented 1 year ago

I have a proposal:

Please consider to use more detailed function and variable names. One example is the term: Circuit It is either a string (the string representation of the equivalent circuit) or a mutable struct with three fields. And it would be nice, if you could spent some time to explain the concept of karva and the meaning of fitness of a Circuit.

P.S.: I enjoy to play with your package and I hope you find the time to release the next version.

MaximeVH commented 1 year ago

The package uses an evolutionary algorithm called "Gene expression programming" (more information about this algorithm can be found at https://www.gene-expression-programming.com/webpapers/GEP.pdf) to search for circuits. This evolutionary optimisation method uses three representations for circuits:

  1. The so-called "karva" is the linear encoding of the circuits, which can be easily modified to make changes to the circuits.
  2. A binary tree representation that can be converted back to the "karva", but can also be used as a computational graph for the impedance of the corresponding circuit for given frequencies.
  3. The circuit string that can be obtained from the corresponding binary tree.

I'll be adding more documentation and extending the readme to explain these concepts with examples. After this and some testing/resolving issues, I can release the next version.

StefanPofahl commented 1 year ago

Thank you for the paper!!! P.S.: By the way I wrote my Diploma-Thesis at the institute of Prof. Ingo Rechenberg

MaximeVH commented 1 year ago

Hi Stefan,

Thanks for your suggestion, I have added documentation for the exported functions, removed the ambiguity of the circuit naming, and adjusted the readme.

Kind regards, Maxime