Giter Club home page Giter Club logo

mnpbem's Introduction

MNPBEM

image

MNPBEM is a toolbox for the simulation of metallic nanoparticles (MNP), using a boundary element method (BEM) approach developed by F. J. Garcia de Abajo and A. Howie, Phys. Rev. B 65, 115418 (2002). The main purpose of the toolbox is to solve Maxwell's equations for a dielectric environment where bodies with homogeneous and isotropic dielectric functions are separated by abrupt interfaces. Although the approach is in principle suited for arbitrary body sizes and photon energies, it is tested (and probably works best) for metallic nanoparticles with sizes ranging from a few to a few hundreds of nanometers, and for frequencies in the optical and near-infrared regime.

From our experience with the toolbox it appears that there exist no "standard" applications, but each problem requires a slightly different implementation. For this reason we have decided to provide a set of general Matlab® classes that can be easily combined to simulate the problem of interest. The toolbox comes along with detailed help pages and a number of examples that can be used as templates for other simulations.

As an alternative to MNPBEM, and especially for the study of dielectric nanoparticles, you can use nanobem. Nanobem is a Matlab toolbox for the solution of Maxwell's equations for metallic and dielectric nanoparticles using a Galerkin boundary element method (BEM) approach.

Reference and Download

When publishing results obtained with the MNPBEM toolbox, we ask you to cite one of the following papers:

U. Hohenester and A. Trügler, Comp. Phys. Commun. 183, 370 (2012).
U. Hohenester, Comp. Phys. Commun. 185, 1177 (2014).
J. Waxenegger, A. Trügler, and U. Hohenester, Comp. Phys. Commun. 193, 138 (2015).

In comparison to the toolbox published in these papers, the current version includes a number of new features, as detailed in the help pages of the toolbox. Also the calling sequence for some of the classes and functions has changed.

Additionally, acknowledging the efforts of the github page manager Nikolaos Matthaiakakis in the acknowledgement section of your publication would be appreciated.

  • Copyright. The MNPBEM toolbox is distributed under the terms of the GNU General Public License. See the file COPYING in the main directory for license details.
  • Download. Simply download the files from the repository.
  • Installation. Unzip the downloaded file and follow the instructions given in the file Readme.txt in the main directory of the toolbox.
  • Developers. Ulrich Hohenester, Andreas Trügler (University of Graz)
  • Github page manager. Nikolaos Matthaiakakis

Path to MNPBEM directory

To use the MNPBEM toolbox, you must add at the beginning of each session the MNPBEM17 directory and all subdirectories to the Matlab path, e.g. by calling

  addpath( genpath( 'MNPBEMDIR' ) );

Here, MNPBEMDIR is the full directory name of the MNPBEM17 toolbox.

The MNPBEM14 Toobox was developed under Matlab 8.6.0.

Help pages

To set up the MNPBEM help pages, you must install them once.
To this end, you must

(1) change in Matlab to the main directory of the MNPBEM toolbox, and (2) run the file makemnpbemhelp.

A detailed help of the Toolbox and a number of demo files are then available in the Matlab help pages which can be found on the start page of the help browser under Supplemental Software.

Short overview

  • Purpose. The main purpose of the toolbox is to provide a flexible simulation toolkit for the calculation of the electromagnetic properties of plasmonic nanoparticles. In principle, the toolbox works for arbitrary dielectric bodies with homogeneous dielectric properties, which are separated by abrupt interfaces. We have primarily used and tested the toolbox for metallic nanoparticles with diameters ranging from a few to a few hundred nanometers, and for frequencies in the optical and near-infrared regime.
  • Implementation. The toolbox has been implemented with Matlab classes. These classes can be easily combined, which has the advantage that one can adapt the simulation programs flexibly to the user's needs. Our approach requires from the user some basic understanding of the working principle of the MNPBEM toolbox. This is what will be given in the user guide.
  • Simulation scheme. The toolbox provides a number of routines for discretizing the boundaries of the dielectric particles, as will be discussed below. Once one has specified the dielectric properties of the particles, together with a few additional informations, one can solve Maxwell's equations using a boundary element method (BEM) approach. Different solution schemes exist based on either the quasistatic approximation or the full Maxwell equations.
  • Examples. A number of demo programs are distributed with the toolbox.

Features of the toolbox

  • Plane wave excitation. We have implemented plane wave excitation of dielectric nanoparticles, together with the calculation of the corresponding scattering and extinction cross sections.
  • Dipole excitation. We also provide excitation of oscillating dipoles, together with a calculation of the resulting total and radiative scattering rates for the dipole. With such excitations, it is also possible to compute the photonic local density of states (LDOS) and dyadic Green functions.
  • Layer structure. Plane wave and dipole excitations have been implemented for layer structures and substrates.
  • EELS simulation. We additionally provide classes for the simulation of electron energy loss spectroscopy (EELS) of plasmonic nanoparticles.
  • Iterative solvers and H-matrices. The latest version of the toolbox now also includes iterative solvers and H-matrices for the simulation of large nanoparticles (consisting of a few 10 000 boundary elements).
  • Nonlocality. We provide a simple model accounting for nonlocal dielectric functions. Following the approach of Pendry and coworkers, nonlocailty within the hydrodynamic model is modeled throgh a thin, artificial cover layer with local dielectric properties.

Toolbox history

In the last couple of years the toolbox has been extensively used by us and other groups for the simulation of plasmonic nanoparticles. The 2012 paper has currently been cited about 140 times and the latest version of the toolbox has been downloaded from our MNPBEM website more than 1000 times.

  • MNPBEM11 was the first release, which was described in U. Hohenester and A. Trügler, Comp. Phys. Commun. 183, 370 (2012).
  • MNPBEM13 was the second release, which was described in U. Hohenester, Comp. Phys. Commun. 185, 1177 (2014). In comparison to MNPBEM11 this second release includes EELS excitations and mirror symmetry, and corrects a number of small errors and inconsistencies.
  • MNPBEM14 was the third release, which was described in J. Waxenegger et al., Comp. Phys. Commun. 193, 138 (2015). It introduced simulations of nanoparticles situated in stratified media, as well as a more flexible user interface (one common options structure, improved Green function evaluation, improved plot functionality, etc.).
  • MNPBEM17 is the latest release which introduces hierarchical matrices (in short H-matrices) and iterative solvers for the simulation of larger nanoparticles consisting of a few 1000 to several 10000 boundary elements. We also introduce a simple simulation approach for nonlocal dielectric functions, following a proposal of Pendry and coworkers.

Bug report

A list of recent changes and updated code elements can be found here.

User developed GUI

This is a link for a user developed GUI for the MNPBEM toolbox MNPBEM-GUI

Copyright

Copyright (C) 2017 Ulrich Hohenester. This code is distributed under the terms of the GNU General Public License. See the file COPYING for license details.

MNPBEM is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

MNPBEM is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with MNPBEM; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA

mnpbem's People

Contributors

nikolaos-matthaiakakis avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.