{"id":24737448,"url":"https://github.com/engineersbox/fluid-advection","last_synced_at":"2025-06-21T18:09:40.376Z","repository":{"id":183361775,"uuid":"624875345","full_name":"EngineersBox/Fluid-Advection","owner":"EngineersBox","description":"Simulation of fluid advection (substrate in liquid) using MPI for execution on a massively parallel architecture (NCI Gadi)","archived":false,"fork":false,"pushed_at":"2023-07-24T04:13:07.000Z","size":5091,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-14T09:40:29.894Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/EngineersBox.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}},"created_at":"2023-04-07T13:28:09.000Z","updated_at":"2023-07-24T04:14:21.000Z","dependencies_parsed_at":"2023-07-24T06:35:23.908Z","dependency_job_id":null,"html_url":"https://github.com/EngineersBox/Fluid-Advection","commit_stats":null,"previous_names":["engineersbox/fluid-advection"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/EngineersBox/Fluid-Advection","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineersBox%2FFluid-Advection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineersBox%2FFluid-Advection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineersBox%2FFluid-Advection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineersBox%2FFluid-Advection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EngineersBox","download_url":"https://codeload.github.com/EngineersBox/Fluid-Advection/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EngineersBox%2FFluid-Advection/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261170422,"owners_count":23119513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-01-27T22:08:22.663Z","updated_at":"2025-06-21T18:09:35.355Z","avatar_url":"https://github.com/EngineersBox.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Fluid Advection MPI\n\nImplementation of fluid advection solver using MPI for massively parallel distributed architectures.\n\n\n## Setup\n\nThe project contains a test program `testAdvect.c`, a file `serAdvect.c` containing a serial advection solver and support functions, some header files, and a template parallel advection solver `parAdvect.c`. The test program can be built using the command `make`. \n\nIt also contains a report writeup `ps-ass1Rep.pdf`, detailing discussion of questions presented in the assignment description in [docs/assignmet_outline.md](./docs/assignment_outline.md). \n\nThe usage for the test program is: \n\n```bash\nmpirun -np p ./testAdvect [-P P] [-w w] [-o] [-x] M N [r] \n```\n\nwith default values `P=p, w=1, r=1`. This will run an `M` by `N` advection simulation over `r` timesteps (repetitions) using a `P` by `Q` process grid, where `p=PQ`. `w` specifies the halo width (normally it is 1). If `-o` is specified, halo communication should be overlapped with computation. The `-x` is used to invoke an optional extra optimization. \n\nThere is also a `-v` option which can be used for debugging (try using `-v 1`, `-v 2` etc). \n\nThe test program initializes the local field array `u` with leading dimension `ldu`, calls the appropriate parallel advection function (in `parAdvect.c`), and determines the error in the final field. It assumes a 2D block distribution of the global advection field. However, `parAdvect.c` determines the details of this distribution (i.e. how to deal with remainders), and exports: \n\n* `M_loc`, `N_loc`: the local advection field size (excluding the halo). \n* `M0`, `N0`: the local field element `(0,0)` is global element `(M0,N0)` \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineersbox%2Ffluid-advection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fengineersbox%2Ffluid-advection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fengineersbox%2Ffluid-advection/lists"}