[Ktechlab-devel] Calculating the currents in a circuit
Alan Grimes
agrimes at speakeasy.net
Sun Oct 3 21:50:25 UTC 2010
chrome://messenger/locale/messengercompose/composeMsgs.properties:
> - call a calculateCurrents() method on all the elements. This way the
> currents flowing from the elements into the CNodes are calculated, but
> they are stored in the elements. The CNodes are not a good storage for the
> currents, because one CNode is associated with more elements.
The element doesn't really care unless it needs the information for the
next simulation step. In general, I have been working to minimize the
amount of state in each element.
> See the original method, for a resistance, here, at the end of the file:
> http://ktechlab.svn.sourceforge.net/viewvc/ktechlab/branches/ktechlab-0.3.7/src/electronics/simulation/resistance.cpp?revision=172&view=markup
hmm. I don't remember the rationale behind that design.
> - add a method to Element:
> double nodeCurrent(int nodeNumber) const ;
> and implement it, by using a doube m_nodeCurrent[4]; protected member.
Okay, might be a good test.
> - in all the lements, updaete the m_nodeCurrent member, in the
> updateCurrents() method, instead of updating the node currents. As
> explained earlier, the node currents will get updated by many elements, so
> setting the current there is meaningless.
> - add a double sourceCurrent() const; method to the Pin class, and a
> setter method for it. The returned value should be interpreted as the
> current flowing from the element into the pin. If the pin has no attached
> element, then this value must be 0. A currentIsKnown() method already
> exists, so that can be also reused.
All pins have 0 current. I used the pin class only to help pipe
information about currents between elements and wires. (and there may be
more than one of each.) Because the pointer-tool needs a current to
read, I simply sum the currents in the wires to obtain the current at a
pin, it sometimes works...
> - i don't really understand why is the ElementMap a separate class. Maybe
> someone can explain it. That class is a helper for Element, that connects
> the Element to Pins. Wouldn't it be more simple to make the element aware
> of pins? I won't research that, but a wrapper class is needed that sets up
> an element and tranfers the value of currents into the pins.
Yeah, there are a number of sub-optimal things going on there.
In the svn version, you can set "show current animation" to true to see
what the UI thinks the flow of currents are.
--
DO NOT USE OBAMACARE.
DO NOT BUY OBAMACARE.
Powers are not rights.
More information about the Ktechlab-devel
mailing list