GithubHelp home page GithubHelp logo

bblankrot / particlescattering.jl Goto Github PK

View Code? Open in Web Editor NEW
4.0 1.0 4.0 2.43 MB

A Julia package for solving two-dimensional electromagnetic scattering from numerous particles

License: MIT License

Julia 99.20% TeX 0.80%
julia multiple particle scattering computational-electromagnetics optimization

particlescattering.jl's Introduction

ParticleScattering

Travis AppVeyor codecov.io doc-latest DOI

A Julia package for solving large-scale electromagnetic scattering problems in two dimensions; specifically, those containing a large number of penetrable smooth particles. Provides the ability to optimize over the particle parameters for various design problems.

Installation

ParticleScattering for julia 0.7 can be installed using Pkg.add:

Pkg.add("ParticleScattering")
using ParticleScattering

For julia 0.6, an older version of ParticleScattering can be installed manually by cloning release v0.0.4 from GitHub.

Community

The easiest way to contribute is by opening issues! Of course, we'd be more than happy if you implement any fixes and send a PR. If you have any relevant scattering problems that would make good examples for the docs, feel free to open an issue for that as well.

Citation

If you publish work that utilizes ParticleScattering, please cite it using:

@article{Blankrot2018joss,
  title={ParticleScattering: Solving and optimizing multiple-scattering problems in {Julia}},
  author={Blankrot, Boaz and Heitzinger, Clemens},
  journal={Journal of Open Source Software},
  publisher={The Open Journal},
  volume={3},
  pages={691},
  number={25},
  DOI={10.21105/joss.00691},
  year={2018},
  month={May}
}

particlescattering.jl's People

Contributors

bblankrot avatar ysimillides avatar ziotom78 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

particlescattering.jl's Issues

Implement lower complexity `verify_min_distance`

Currently, this is an O(M^2) algorithm. This can be improved substantially, for example by recursively subdividing the domain or by using an FMM-type approach (divide into boxes of size d_min, and then check only near neighbors).

Partial optimization

Add ability to optimize only a subset of the particles in optimize_ฯ† and optimize_radius.

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.