1
2 package org.catacomb.numeric.difnet;
3
4 /** properties of a node in a diffusible network. The corresponding
5 * node may containing multiple diffusible quantities, in which case the
6 * <code>dq</code> argument specifiew which to consult.
7 * NB, as yet dq is unsupported MISSING
8 * hasFixedValue should return true for nodes whosse value can't be changed,
9 * like an isopotential bath. In this case setValue does nothing and
10 * the result of getCapacitance is undefined.
11 * Such odes are important in a DiffusibleNet to break loops and take advantage
12 * of sparse matrix methods in computing the diffusion.
13 */
14
15
16 public interface StructureNode {
17
18 /** returns true only for those nodes whose value is externally fixed,
19 * such as the potential or an earthed bath or a perfect voltage clamp.
20 *
21 * @return true if the node's value for the specified quantity is fixed
22 */
23 boolean hasFixedValue(DiffusibleQuantity dq);
24
25
26
27 void setPosition(double x, double y, double z);
28
29 void setRadius(double r);
30
31
32 /** Stores an integer for later retrieval. This is required so that
33 * NetDiffuser implementations can make certain optimisations
34 * setting up permutations of the network for computing the diffusion.
35 *
36 */
37 void setWork(int i);
38
39 /** retrieves the previously set work integer.
40 *
41 * @return the stored integer
42 */
43 int getWork();
44
45 }
46
47