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