density functional method