Using polymorphism, one of the great advantages of the Object-Oriented Programming, these node classes are naturally manipulated by the same list. We can see in Fig. 5 a class inheritance scheme of these nodes. Several boundary condition types were primarily created, like scalar and vector potential, both of them, floating potential and thermal boundary condition. Any other type can be created and added to this structure. To do so, we just create a class that is a descendant of the BCNode class.