  There is an increasing need to model plasma interaction with complex
engineered surfaces, notably to verify that power deposition rates are
acceptable. The SMARDDA algorithm has been developed to meet this requirement,
with particular reference to the neutral beam ducts that feed into the vacuum
vessels of tokamaks. Application to limiters and divertors is made in a
companion paper. The algorithm is described in detail, highlighting key novel
features, and illustrative duct calculations presented.
