{"id":20213728,"url":"https://github.com/mrp01/heatfun","last_synced_at":"2026-03-19T14:36:31.706Z","repository":{"id":65298101,"uuid":"580119111","full_name":"MrP01/HeatFun","owner":"MrP01","description":"Exploring the heat equation as part of a Special Topic for Approximation of Functions.","archived":false,"fork":false,"pushed_at":"2023-05-05T21:09:29.000Z","size":38971,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-03T10:44:57.066Z","etag":null,"topics":["chebyshev-interpolation","differential-equations","heat-equation","spectral-methods"],"latest_commit_sha":null,"homepage":"","language":"TeX","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MrP01.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-19T19:10:22.000Z","updated_at":"2023-01-31T22:22:29.000Z","dependencies_parsed_at":"2025-01-13T21:41:50.262Z","dependency_job_id":"b595f9d7-b6ae-4d39-8d91-e63a3709ab2b","html_url":"https://github.com/MrP01/HeatFun","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MrP01/HeatFun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrP01%2FHeatFun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrP01%2FHeatFun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrP01%2FHeatFun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrP01%2FHeatFun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MrP01","download_url":"https://codeload.github.com/MrP01/HeatFun/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MrP01%2FHeatFun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30336082,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["chebyshev-interpolation","differential-equations","heat-equation","spectral-methods"],"created_at":"2024-11-14T06:11:12.145Z","updated_at":"2026-03-10T14:03:08.302Z","avatar_url":"https://github.com/MrP01.png","language":"TeX","funding_links":[],"categories":[],"sub_categories":[],"readme":"# HeatFun - a spectral solver\n\nExploring the :fire: heat equation :fire: as part of a Special Topic for Approximation of Functions.\n\n:rocket: **Solving PDEs using Spectral Methods in the Chebyshev basis by example of the Heat Equation.** :rocket:\nA Special Topic on Approximation of Functions.\n\n![Screenshot of the spectral heat equation solver](report/figures/screenshot.png)\n_Screenshot of the graphical user interface. After entering an initial expression\nu0(x), depicted in grey, the simulation will run upon pressing ’Start’. The solution at\ntime t, depicted in blue, is represented as a Chebyshev series of degree 29._\n\n## Usage\n\nHeatFun depends on Qt6, uses conan as a package manager and does analysis in Python and MatLab.\nThe project uses an out-of-source build:\n\n```bash\nmkdir -p build/\ncd build\nconan install ..\ncmake -DCMAKE_BUILD_TYPE=Release ..\nmake -j 4\n```\n\n**To run the graphical user interface**:\n\n```bash\n./bin/main\n```\n\n**For usage as a Python module**:\n\n```python3\nimport pathlib\nimport sys\n\nBASE = pathlib.Path(__file__).parent.parent\nsys.path.append(str(BASE / \"build\" / \"lib\"))\nimport heatfun\n\nheatfun.solve(...)\n```\n\n## Motivation and Background\n\nPartial differential equations are notoriously hard to solve. One more possible approach\nto make way in this important class of problems is by the technique of spectral methods,\nincidentally closely related to finite element methods. The key idea is to perform the\nproblem solution by representation of the occurring functions in a certain basis. For\nnon-periodic problem settings, Chebyshev series are a fantastic choice.\n\nThis work shall attempt to numerically solve the heat equation ut = αuxx\nwith Dirichlet boundary conditions over the domain [−1, 1] × [0, T] by representing the spatial component as a Chebfun (Chebyshev series) and moving on\nin time by the Forward Euler numerical scheme.\n\nThe implementation, centered around what we will refer to as TschebFun, including three major algorithms TschebFun::interpolantThrough(),\nTschebFun::evaluateOn() and TschebFun::derivative(), is done manually\nin C++, extended to work as a Python module and for demonstration, even\nfeatures a high-level graphical interface to play with. Finally, we will compare\nthe numerical results with the output of Chebfun’s high-level pde15s().\n\nDownload the report [here](https://raw.githubusercontent.com/MrP01/HeatFun/master/report/report.pdf).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrp01%2Fheatfun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrp01%2Fheatfun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrp01%2Fheatfun/lists"}