[Ktechlab-devel] Converting to Eigen - patch for revision, ver.1
P Zoltan
zoltan.padrah at gmail.com
Sun Aug 9 12:00:25 UTC 2009
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: convert-to-eigen-00.path.bz2
Type: application/bzip2
Size: 4195 bytes
Desc: not available
URL: <http://mail.kde.org/pipermail/ktechlab-devel/attachments/20090809/8062fdcc/attachment.bin>
More information about the Ktechlab-devel
mailing list