vici is a code that provides a many-body treatment of many-electron correlated scattering (MECS) in nanoscale junctions. It relies on a description of the many-electron wavefunction generated by mcci. Mathematically, the physical considerations needed to describe correlated electron transport are translated into a constrained nonlinear optimisation problem, which needs to be solved for applied voltages in order to determine the correct manybody wavefunctions, and then to compute the electronic current from the wavefunction to determine current-voltage relationships in molecular tunnel junctions.
A widely used tool for solving constrained optimisation problems is the method of Lagrange multipliers. The benefit of this approach is that if the correct Lagrange multipliers are known, then we can solve the original constrained problem by solving a related unconstrained problem. Unconstrained problems are much simpler and can be solved by a variety of well known methods, for example conjugate gradients, Newton's method or quasiNewton methods. However, we do not know the correct Lagrange multipliers a priori. There is a wellregarded solution to this difficulty in the optimisation literature, called the Lagrange multiplier penalty function method. This is an iterative method which makes an initial guess for the Lagrange multipliers, solves the related unconstrained problem, then corrects the Lagrange multipliers, and iterates until the constraints are obeyed within a userdefined tolerance. This is the approach implemented in vici to solve the constrained optimisation problem. vici consists of two modules,an integral generation program analytic_integrals, and the other the actual currentvoltage characteristic calculator iv_Wigner_lm_penalty_function.
Jim.Greer 'at' tyndall.ie