Thanks to visit codestin.com
Credit goes to github.com

Skip to content
forked from zer011b/fdtd3d

fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support

License

Notifications You must be signed in to change notification settings

Ryangoabroad/fdtd3d

 
 

Repository files navigation

fdtd3d

Build Status

fdtd3d

This is an open-source implementation of FDTD Maxwell's equations solver for different dimensions (1, 2 or 3) with support of concurrency (MPI/OpenMP/Cuda) if required. The key idea is building of solver for your specific needs with different components, i.e. concurrency support with enabled MPI, OpenMP or GPU support, parallel buffer types, specific dimension and others. OpenMP support is WIP.

For additional info on current project development status and future plans check issues and milestones, design docs are available at documentation

Build

Build is done using cmake:

mkdir Release
cd Release
cmake .. -DCMAKE_BUILD_TYPE=Release
make

See documentation for specific details.

Testing

Testing is performed using Travis CI. Open pull request with your changes and it will be automatically tested. For details, see See .travis.yml. Cuda tests are only built but not launched on Travis CI.

Launch

Parameters can be passed directly to fdtd3d through command line or config file. See documentation for specific details.

# show help
./fdtd3d --help

# show version of solver
./fdtd3d --version

# example of launch command for 3D build
./fdtd3d --load-eps-from-file /tmp/eps.txt --save-res --time-steps 10 --sizex 80 --same-size --use-tfsf \
         --3d --angle-phi 0 --use-pml --dx 0.0005 --wavelength 0.02 --save-cmd-to-file cmd.txt

# example of the same launch with command line file
./fdtd3d --cmd-from-file cmd.txt

# cmd.txt file has the next format
#
# --load-eps-from-file
# /tmp/eps.txt
# --save-res
# --time-steps
# 1
# --sizex
# 80
# --same-size
# --use-tfsf
# --3d
# --angle-phi
# 0
# --use-pml
# --dx
# 0.0005
# --wavelength
# 0.02

Documentation

Doxygen documentation is available at Documentation.

To generate it manually from config in ./Doxyfile run next commands:

sudo apt-get install doxygen
doxygen
firefox docs/index.html

How To Cite

You can site the following papers about the techniques used in fdtd3d:

  • Balykov G. (2017) Parallel FDTD Solver with Optimal Topology and Dynamic Balancing. In: Voevodin V., Sobolev S. (eds) Supercomputing. RuSCDays 2017. Communications in Computer and Information Science, vol 793. Springer, Cham. https://doi.org/10.1007/978-3-319-71255-0_27

  • Balykov G. (2019) Parallel FDTD Solver with Static and Dynamic Load Balancing. In: Voevodin V., Sobolev S. (eds) Supercomputing. RuSCDays 2018. Communications in Computer and Information Science, vol 965. Springer, Cham. https://doi.org/10.1007/978-3-030-05807-4_26

Third Party

EasyBMP lib is used to output resulting electromagnetic fields. It is downloaded from sourceforge and used as is.

About

fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 88.8%
  • Shell 6.6%
  • Cuda 3.3%
  • CMake 1.1%
  • C 0.2%