All Projects → zer011b → fdtd3d

zer011b / fdtd3d

Licence: GPL-2.0 license
fdtd3d is an open source 1D, 2D, 3D FDTD electromagnetics solver with MPI, OpenMP and CUDA support for x86, arm, arm64 architectures

Programming Languages

C++
36643 projects - #6 most used programming language
shell
77523 projects
Cuda
1817 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to fdtd3d

Rappel
A linux-based assembly REPL for x86, amd64, armv7, and armv8
Stars: ✭ 818 (+962.34%)
Mutual labels:  x64, x86, arm64, aarch64
Mandibule
linux elf injector for x86 x86_64 arm arm64
Stars: ✭ 171 (+122.08%)
Mutual labels:  arm, x86, arm64, aarch64
Sse2neon
A translator from Intel SSE intrinsics to Arm/Aarch64 NEON implementation
Stars: ✭ 316 (+310.39%)
Mutual labels:  arm, x86, arm64, aarch64
Simdjson
Parsing gigabytes of JSON per second
Stars: ✭ 15,115 (+19529.87%)
Mutual labels:  arm, x64, arm64, aarch64
opcodesDB
x86-64 | ARM (AArch32/AArch64/THUMB) full instruction set.
Stars: ✭ 49 (-36.36%)
Mutual labels:  arm, x64, x86, aarch64
profiler-api
The portable version of JetBrains profiler API for .NET Framework / .NET Core / .NET / .NET Standard / Mono
Stars: ✭ 21 (-72.73%)
Mutual labels:  x64, x86, arm64, aarch64
Capstone.NET
.NET Core and .NET Framework binding for the Capstone Disassembly Framework
Stars: ✭ 108 (+40.26%)
Mutual labels:  arm, x64, x86, arm64
Docker Homebridge
Homebridge Docker. HomeKit support for the impatient using Docker on x86_64, Raspberry Pi (armhf) and ARM64. Includes ffmpeg + libfdk-aac.
Stars: ✭ 1,847 (+2298.7%)
Mutual labels:  arm, arm64, aarch64
Build
Armbian Linux build framework
Stars: ✭ 1,827 (+2272.73%)
Mutual labels:  arm, x86, aarch64
Pwnshop
Exploit Development, Reverse Engineering & Cryptography
Stars: ✭ 167 (+116.88%)
Mutual labels:  arm, x64, x86
Keypatch
Multi-architecture assembler for IDA Pro. Powered by Keystone Engine.
Stars: ✭ 939 (+1119.48%)
Mutual labels:  arm, x86, arm64
tensorflow-serving-arm
TensorFlow Serving ARM - A project for cross-compiling TensorFlow Serving targeting popular ARM cores
Stars: ✭ 75 (-2.6%)
Mutual labels:  arm, arm64, aarch64
Corehook
A library that simplifies intercepting application function calls using managed code and the .NET Core runtime
Stars: ✭ 191 (+148.05%)
Mutual labels:  arm, x86, arm64
Keystone
Keystone assembler framework: Core (Arm, Arm64, Hexagon, Mips, PowerPC, Sparc, SystemZ & X86) + bindings
Stars: ✭ 1,654 (+2048.05%)
Mutual labels:  arm, x86, arm64
Inline Hook
simple inline-hook framework works for x86, x64, arm and thumb
Stars: ✭ 102 (+32.47%)
Mutual labels:  arm, x64, x86
Cross
“Zero setup” cross compilation and “cross testing” of Rust crates
Stars: ✭ 2,461 (+3096.1%)
Mutual labels:  arm, x86, aarch64
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+1123.38%)
Mutual labels:  arm, x86, aarch64
tensorflow-aarch64
Compiled tensorflow for aarch64 architecture
Stars: ✭ 20 (-74.03%)
Mutual labels:  arm, arm64, aarch64
alpine-qbittorrent-openvpn
qBittorrent docker container with OpenVPN client running as unprivileged user on alpine linux
Stars: ✭ 230 (+198.7%)
Mutual labels:  arm, arm64, aarch64
cross
“Zero setup” cross compilation and “cross testing” of Rust crates
Stars: ✭ 3,550 (+4510.39%)
Mutual labels:  arm, x86, aarch64

fdtd3d

Build Status

Unit Tests Status

Cuda Unit Tests Status

Test Suite 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 and for different architectures (x64, Arm, Arm64). 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. Also, doxygen documentation can be generated from config in ./Doxyfile:

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

Build

Build is done using cmake:

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

See documentation for specific details.

Testing

See documentation for specific details.

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 --size x: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
# --size x:80
# --same-size
# --use-tfsf
# --3d
# --angle-phi 0
# --use-pml
# --dx 0.0005
# --wavelength 0.02

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].