TugJulia/julia/tests/julia_bench/FTCS_500_500_300.jl
nebmit 9f952c91b0
feat: modifed structure into a Julia compliant package
Added Project.toml and Manifest.toml.
Moved sourcecode to julia/TUG/src/

[skip ci]
2023-12-04 09:15:08 +01:00

41 lines
1.2 KiB
Julia

include("../../TUG/src/TUG.jl")
using .TUG
function main()
# **** GRID ****
rows::Int = 500
cols::Int = 500
alphaX = fill(0.7, rows, cols)
alphaY = fill(0.7, rows, cols)
alphaX[201:300, 201:300] .= 0.4
alphaY[201:300, 201:300] .= 0.4
grid::Grid = Grid{Float64}(rows, cols, alphaX, alphaY)
concentrations = fill(0.0, rows, cols)
concentrations[51:150, 51:150] .= 1500
concentrations[351:450, 351:450] .= 1200
concentrations[251, 251] = 2000
setConcentrations!(grid, concentrations)
# **** BOUNDARY ****
bc::Boundary = Boundary(grid)
setBoundarySideClosed!(bc, LEFT)
setBoundarySideClosed!(bc, RIGHT)
setBoundarySideClosed!(bc, TOP)
setBoundarySideClosed!(bc, BOTTOM)
# **** SIMULATION ****
simulation::Simulation = Simulation(grid, bc, FTCS)
simulation = setTimestep(simulation, 2.5)
simulation = setIterations(simulation, 300)
simulation = setOutputConsole(simulation, CONSOLE_OUTPUT_OFF)
simulation = setOutputCSV(simulation, CSV_OUTPUT_ON)
# **** RUN SIMULATION ****
elapsed_time_ns = (@elapsed TUG.run(simulation)) * 1e9
println("Simulation Time (nanoseconds): ", elapsed_time_ns)
end
main()