From: P Z. <zol...@gm...> - 2009-08-02 21:52:23
|
Hi, I've tried to convert the existing code to use Eigen, but at this moment it's totally broken, due to the fact that if a new element/component is added to the circuit, the corresponding matrix's size doesn't change, so some nodes won't get voltage values. Does anybody know how adding new elements it's supposed to work? Later edit: it seems to me that after each added component, the CircuitDocument is divided in Circuits and ElementSets and each Circuit gets an init() call, where the matrix is recreated. Some more debugging is needed... And also a decent logging method, because debugging complex data structures/classes tends to suck. When I get something more or less functional, I'll send a patch. Zoltan |
From: Alan G. <ag...@sp...> - 2009-08-03 01:01:42
|
P Zoltan wrote: > I've tried to convert the existing code to use Eigen, but at this moment > it's totally broken, due to the fact that if a new element/component is > added to the circuit, the corresponding matrix's size doesn't change, so > some nodes won't get voltage values. Does anybody know how adding new > elements it's supposed to work? Circuit or Circuit document totally destroys the existing elementSet and builds a new one, that's how it works. > Later edit: it seems to me that after each added component, the > CircuitDocument is divided in Circuits and ElementSets and each Circuit > gets an init() call, where the matrix is recreated. Some more debugging is > needed... And also a decent logging method, because debugging complex data > structures/classes tends to suck. Yep. -- New president: Here we go again... Chemistry.com: A total rip-off. Powers are not rights. |
From: P Z. <zol...@gm...> - 2009-08-05 22:28:15
|
Finally... it's working. The big problem was not the porting to Eigen but figuring out how the A,b changed flags should be set/unset. Momentanly they are completely ignored. The strategy of setting/unsetting of these flags would be useful to document. Ideas are welcome. There are some gliches with currents, as Kirchoff's current law is not respected in quite numerous cases. I guess the nodes/branches are not properly updated. It's surprizing how many classes are in the program -- for example CNode, just stores the voltage and current of a node and the value of the currents. All these classes should be properly documented. My suggestions are doxygen in the source, and maybe some wiki documents. The question is where to upload the latter ones... When some decent looking code is ready (the current state is a mess), I'll send a patch to the list for review. |
From: Alan G. <ag...@sp...> - 2009-08-06 00:01:55
|
P Zoltan wrote: > There are some gliches with currents, as Kirchoff's current law is not > respected in quite numerous cases. I guess the nodes/branches are not > properly updated. No, that's a UI issue. =\ Or rather the engine is working but doesn't provide directly useful information for updating the UI so the UI *TRIES* to figure out where the current is coming from and where it is going. It might be possible to expand the matrix a little bit and get more information about currents. > When some decent looking code is ready (the current state is a mess), > I'll send a patch to the list for review. Sounds good. =) It really doesn't make sense for us to maintain our own math library internally to ktechlab. -- New president: Here we go again... Chemistry.com: A total rip-off. Powers are not rights. |
From: P Z. <zol...@gm...> - 2009-08-07 17:39:59
|
On Thu, 06 Aug 2009 02:00:15 +0200, Alan Grimes <ag...@sp...> wrote: > P Zoltan wrote: >> There are some gliches with currents, as Kirchoff's current law is not >> respected in quite numerous cases. I guess the nodes/branches are not >> properly updated. > > No, that's a UI issue. =\ > > Or rather the engine is working but doesn't provide directly useful > information for updating the UI so the UI *TRIES* to figure out where > the current is coming from and where it is going. > Hmm... the UI trying to do something on its own sounds like a bug/design problem for me, not a feature. Obviously more investigation is needed. My sugess is that some currents are not properly updated in some cases. Dumping the object structures would be really useful in the investigation. > It might be possible to expand the matrix a little bit and get more > information about currents. > We should clearly define the algorithm for computation and UI update... Tests that fail, due to bogous currents: - creating a voltage divider, with: ( 2 resistors in parallel ) in series with a another resistor - short-circuiting the 2 resistors in parallel |