{"id":16457426,"url":"https://github.com/asinghvi17/diffusion-final","last_synced_at":"2026-06-13T00:31:29.194Z","repository":{"id":100133229,"uuid":"171534068","full_name":"asinghvi17/diffusion-final","owner":"asinghvi17","description":"A flexible heat diffusion simulator written in Julia","archived":false,"fork":false,"pushed_at":"2019-02-27T19:47:36.000Z","size":24479,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-22T00:03:21.034Z","etag":null,"topics":["finite-difference","heat-transfer","julia"],"latest_commit_sha":null,"homepage":"","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/asinghvi17.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2019-02-19T19:15:00.000Z","updated_at":"2022-02-21T06:50:15.000Z","dependencies_parsed_at":"2023-05-12T12:15:14.010Z","dependency_job_id":null,"html_url":"https://github.com/asinghvi17/diffusion-final","commit_stats":{"total_commits":83,"total_committers":2,"mean_commits":41.5,"dds":0.03614457831325302,"last_synced_commit":"dc3fe7d715e9d77df215ed0b7967dd51849a2749"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/asinghvi17/diffusion-final","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asinghvi17%2Fdiffusion-final","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asinghvi17%2Fdiffusion-final/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asinghvi17%2Fdiffusion-final/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asinghvi17%2Fdiffusion-final/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/asinghvi17","download_url":"https://codeload.github.com/asinghvi17/diffusion-final/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/asinghvi17%2Fdiffusion-final/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34268187,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-12T02:00:06.859Z","response_time":109,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finite-difference","heat-transfer","julia"],"created_at":"2024-10-11T10:31:25.667Z","updated_at":"2026-06-13T00:31:29.173Z","avatar_url":"https://github.com/asinghvi17.png","language":"Julia","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Diffusion\n\n## CMPT 260 Final Project\n\n### Anshul Singhvi\n\n#### Language - Julia\n\n# Broad goals\n\nExplore heat diffusion\n\nExamine them for stability (or not)\n\nImplement a diffusion animator\n\n# Formulae\n\n∂Ψ/∂t = D⋅∇²Ψ\n\nΨ = cos(ax)⋅eᵇᵗ\n\n∂Ψ/∂t = D⋅∂²Ψ/∂x² + ℽ (where ℽ is the noise term)\n\n# Method\n\nWe solve the one-dimensional case numerically, using a backward-time centered-space 'implicit' method of solving a system.  Currently, both Dirichlet and Neumann methods have been implemented.\n\nAn example of the Dirichlet is shown in the following animation, where a system in which the ends have been set to 10 K and the rest of the points are at 0 K is evolved over a timespan of a few seconds.  Due to the high differential in temperature, as well as the constant influx of heat, this happens relatively fast.\n\n![Dirichlet BC with all other temperatures at 0 K](example/lol.gif \"Logo Title Text 1\")\n\nAnother example of Dirichlet boundary conditions is this, a system in which the boundary temperatures are lower than the interior temperatures, so the system goes into a pseudostable state.\n\n![Dirichlet BC with all other temperatures at 10 K](example/dirichletDown1D.gif \"Logo Title Text 1\")\n\nBelow is an example of the Neumann boundary condition, with a flux of 0.1 temperature per timestep out of the system.\n\n![Neumann with flux out=0.1 per timestep](example/NeumannOut.11D.gif \"Logo Title Text 1\")\n\nBelow is an example of a mixed boundary condition - the flux on the left is constant, and the temperature on the right is fixed.\n\n![Neumann-Dirichlet](example/neumannLdirichletR.gif \"Logo Title Text 1\")\n\nThe two-dimensional case, in order to save memory, uses an alternating-direction implicit solver.  The problem is solved first for time n+⅟₂ either explicitly or implicitly along the x-axis, and then using the other method along the other axis.  An example of 2D diffusion with this is below: it has a flux of 0.1 K per timestep out of the system on the left, and a stable-temperature state of 20 K on the right.\n\n![Neumann-Dirichlet](example/2d-dirichletRneumannL.gif \"Logo Title Text 1\")\n\nAs for plotting, it is planned to store the plots in the `.hdf5` format to allow for easy replotting.\n\n# Terminology\n\nA *Dirichlet boundary condition* is a boundary condition that forces the temperature on the edges of a system to be a certain value.  \n\nA *Neumann boundary condition* is a boundary condition that forces the flux on the edges of a system to be a certain value, i.e., that there is a constant flow of heat outwards.  \n\n\n# Julia installation instructions\nSee [Julia homepage](https://julialang.org/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasinghvi17%2Fdiffusion-final","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fasinghvi17%2Fdiffusion-final","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fasinghvi17%2Fdiffusion-final/lists"}