-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathmesh.jl
51 lines (36 loc) · 972 Bytes
/
mesh.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
struct Mesh
dimx::Float64
nx::Int64
dx::Float64
dimy::Float64
ny::Int64
dy::Float64
kx::Any
ky::Any
function Mesh(dimx, nx, dimy, ny)
dx = dimx / nx
dy = dimy / ny
kx = 2π ./ dimx .* vcat(0:nx÷2-1, -nx÷2:-1)
ky = 2π ./ dimy .* vcat(0:ny÷2-1, -ny÷2:-1) |> transpose
new(dimx, nx, dx, dimy, ny, dy, kx, ky)
end
end
struct MeshFields
mesh::Mesh
ex::Array{Float64,2}
ey::Array{Float64,2}
bz::Array{Float64,2}
function MeshFields(mesh)
nx, ny = mesh.nx, mesh.ny
ex = zeros(Float64, (nx, ny + 1))
ey = zeros(Float64, (nx + 1, ny))
bz = zeros(Float64, (nx + 1, ny + 1))
new(mesh, ex, ey, bz)
end
function MeshFields(mesh, nx, ny)
ex = zeros(Float64, (nx + 1, ny + 1))
ey = zeros(Float64, (nx + 1, ny + 1))
bz = zeros(Float64, (nx + 1, ny + 1))
new(mesh, ex, ey, bz)
end
end