Hi,

here is a patch that makes ktechlab to use Eigen for calculations, so the internal matrix implementation can be removed.

 Steps to use:
1. patch the source. If it fails, tell me, because I haven't tested the patch :D 2. download and extract eigen somewhere. I've used version 2.0.3. (Note: see a comment in the patch about an eigen bug -- we should use a newer version when we import eigen in ktechlab ) 3. in kdevelop, in the automake manager, add the path of the extraced eigen sources to the includes. This should be done for all subfolders...
 4. compile
 5. run

 Known problems:
- the caching and changed/unchanged flags probabily don't work as they should - when inserting a reactive element in the circuit, the cpu usage will increase to 100% after a time. Probable causes are that eigen uses great precision calculation, so the circuit will never enter in steady state. Or just some caching problem...

 Todos:
 - test it :D
- we'll have to define _clearly_ the algorithms and data structures used in the cirucit solving process. Currently I don't know how the A, b changed flags should work and what is the purpose of CNode and CBranch classes, how/when the iterations shoud be done, and so on...

 Here is the sketch of the algorithm (should be extended...):

if a component is added, removed, connected, ... in the circuitdocument:
 split the document in circuits, by connectivity
 create elementset from the circuit
    create the matrix corresponding to the elements

a step in the simulator:
  if the circuit contains nonlinear elements
    solve the cirucit by iterations
     in each iteration
       call the handler of nonlinear elements
       recreate the LU of the eqation matrix
       update nodes (why?)
       run logic (here -- why?)
       check for convergence
  else
    solve as a linear system
  run logic

 (where are the components updated?)


All the above shoudl be clearly defined, an only after, starting to test/refactor the implementation

Attachment: convert-to-eigen-00.path.bz2
Description: application/bzip2

------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ktechlab-devel mailing list
Ktechlab-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ktechlab-devel

Reply via email to