✨ From vibe coding to vibe deployment. UBOS MCP turns ideas into infra with one message.

Learn more

JuliaDDA

Build Status

Usage

This package is based on the reference

Draine, B. T., & Flatau, P. J. (1994). Discrete-dipole approximation for scattering calculations. Josa a, 11(4), 1491-1499.

Testing

using JuliaDDA
using StaticArrays

# Wave parameters
k = 1
ka = 7
a = ka / k

# Define Container for load objects 
C = Container(k)

# Generate Sphere object 
Object = Sphere(a, 20, 2+1.5im, 1)
# You can also Rotate or Pan the Object
# Ojbect = Rotate(Object, pi/4, n̂=SA[0, 0, 1])

# plane wave
# propagation axis :z
# polarization axis : x
Src = PlaneWave(SA[0, 0, 1], SA[1, 0, 0]) 

# Define Recorder to save Electric field at certain position
Rec = SphericalRecorder(50, 50, R=100, mode="full")

# push object to the container
push!(C, Object)

# Calculate the incident field
CalEinc(C, Src)

# Calculate the Polarization of the dipoles
CalPolarization(C)

# Calculate the Farfield at recorder positions
CalFarField(C, Rec, "sca")

Volume = 4/3 * pi * a^3
Po_in = ϵ0 * Volume 

# Plot scatteres in the Container (backend : PlotlyJS)
PlotScatterers(C, :Px, plot_mode=:real)

# Plot Far field power
Plot3DPower(Rec, log=true, Po_in = Po_in)

# Plot DifferentialCrossSection (not accurate yet)
PlotDifferentialCrossSection(C, 50, 50, scale="log", r=100)

Featured Templates

View More
Data Analysis
Pharmacy Admin Panel
236 1697
Verified Icon
AI Assistants
Speech to Text
133 1500
AI Assistants
Talk with Claude 3
156 1158
AI Characters
Your Speaking Avatar
168 683
AI Assistants
Image to text with Claude 3
150 1119

Start your free trial

Build your solution today. No credit card required.

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.