BNL:10.1065/espr2001.09.084.2 BNL:10.1065/jss2004.12.125