{"id":18647208,"url":"https://github.com/diffeqml/pde-dataset-generator","last_synced_at":"2025-04-11T13:30:40.633Z","repository":{"id":50973785,"uuid":"362700123","full_name":"DiffEqML/pde-dataset-generator","owner":"DiffEqML","description":"A tool for generating PDEs ground truth datasets from ARCSim, FEniCS and SU2","archived":false,"fork":false,"pushed_at":"2021-07-05T07:12:58.000Z","size":52783,"stargazers_count":32,"open_issues_count":1,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-04-23T00:11:03.128Z","etag":null,"topics":["arcsim","dgl","fenics","generating-datasets","graph","su2"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/DiffEqML.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}},"created_at":"2021-04-29T05:26:50.000Z","updated_at":"2024-02-26T19:58:13.000Z","dependencies_parsed_at":"2022-09-11T20:10:49.242Z","dependency_job_id":null,"html_url":"https://github.com/DiffEqML/pde-dataset-generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiffEqML%2Fpde-dataset-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiffEqML%2Fpde-dataset-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiffEqML%2Fpde-dataset-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DiffEqML%2Fpde-dataset-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DiffEqML","download_url":"https://codeload.github.com/DiffEqML/pde-dataset-generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223468189,"owners_count":17150104,"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":["arcsim","dgl","fenics","generating-datasets","graph","su2"],"created_at":"2024-11-07T06:25:11.140Z","updated_at":"2024-11-07T06:25:11.700Z","avatar_url":"https://github.com/DiffEqML.png","language":"Jupyter Notebook","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📦 PDEs Dataset Generator\n\nA tool for generating datasets for Partial Differential Equations (PDEs) from ARCSim, FEniCS and SU2.\n\n## 💡 Introduction\n\nResearch on PDEs needs ground truth datasets. Several tools have been developed and among all, the open-source FEniCS is one of the most famous ones. Our goal is to provide tools for more easily creating such datasets and save them in the DGL graph format. \n\nFeatures:\n\n- Compressed scripts containing full generating process, including creating domain, generating mesh, creating boundary constrains, solve function, transfer mesh and result to dgl graph and saving \n- Results are transferred to DGL graph, which is convenient to use in graph models; we also provide numpy tools\n- Detailed tutorials with notebooks to show how our scripts work and knowledge about using ARCSim, FEniCS and SU2\n- Useful mini tools, including mesh to DGL transferring and modified dgl graph plotting\n\n## 🔧 Environment \n\n```Python\nPython Version: 3.6 or later\nPython Packages: jupyterlab, fenics, dgl, numpy, torch, matplotlib\n```\n\n## 📁 Structure\n\n```\n.\n├── fig/\n├── notebook/\n│   └── *\n├── src/\n│   ├── utils/\n│   └── *\n└── README.md\n```\n\n- `fig`: example figures\n- `notebook`: tutorials in jupyter notebook format\n- `src`: all source code will be here, including scripts, tools\n  - `utils`: mini tools will be here, including dgl transferring, graph plot\n\nHere are brief guides for the supported PDE simulators:\n- [Guide with ARCSim](#📖-guide-with-arcsim):\n- [Guide with Fenics](#📖-guide-with-fenics):\n- [Guide with SU2](#📖-guide-with-su2):\n\n---\n\n## 📖 Guide with ARCSim\n**Step 1**. [Download](https://github.com/cbhua/tool-pdeset-generator/archive/refs/heads/main.zip) or [Clone](https://github.com/cbhua/tool-pdeset-generator.git) this repository\n\n**Step 2**. _ArcSim installation_\n\nYou may find the repository with fixes [here](https://github.com/kaist-silab/arcsim) with further instructions.\nTo install it, run the following:\n\n```sh\ngit clone https://github.com/kaist-silab/arcsim.git \u0026\u0026 cd arcsim/\nsudo chmod +x install.sh \u0026\u0026 sudo ./install.sh\n```\n\nAt this point, you should be ready to go.\n\n**Step 3**. _ArcSim simulation and `.obj` file saving_\n\nLet's consider the flag example. In the ArcSim folder, make a new directory called data. Then run:\n\n```sh\nbin/arcsim simulate conf/flag.json data/\n```\n\n(you may also run `simulateoffline` if you cannot visualize on your computer\n\nWhen the simulation ends (we may do that with `Esc` as well) copy the `conf/flag.json` into the folder where we saved the simulation, in our case`data/` and run:\n\n```sh\nbin/arcsim generate data/\n```\n\nThis will generate `.obj` files that we can load into Python with `pywavefront` and the `obj_to_dgl` method we provide.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/flag.gif\" alt=\"Flag simulation with adaptive remeshing\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n*Flag simulation with adaptive remeshing*\n\n---\n\n## 📖 Guide with FEniCS\n\n**Step 1**. [Download](https://github.com/cbhua/tool-pdeset-generator/archive/refs/heads/main.zip) or [Clone](https://github.com/cbhua/tool-pdeset-generator.git) this repository.  \n\n**Step 2**. Based on your requirement refer to the notebooks, where there are tutorials and examples. You can find all methods provided in the below list. \n\n**Step 3**. Modify the parameters to generate your own datasets. \n\nProvided methods:\n\n- Poisson process\n  - Customize domain \u0026 Single boundary control\n  - Square domain \u0026 Separate boundary control\n- Gaussian process\n  - Customize domain \u0026 Single boundary control (support time dynamic control)\n  - Square domain \u0026 Separate boundary control (support time dynamic control)\n  - Squares in square domain \u0026 Separate boundary control (support time dynamic control)\n  - Circles in circle domain \u0026 Single boundary control (support time dynamic control)\n\nSupport methods will keep updating. For more detail, you can refer to the [project manager](https://github.com/cbhua/tool-pdeset-generator/projects/1). \n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/gaussian_square.gif\" alt=\"gaussian process, rectangle shape domain, single boundary control\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n*Gaussian process on rectangular domain*\n\n---\n\n## 📖 Guide with SU2\n\n**Step 1**. [Download](https://github.com/cbhua/tool-pdeset-generator/archive/refs/heads/main.zip) or [Clone](https://github.com/cbhua/tool-pdeset-generator.git) this repository\n\n**Step 2**. Install [SU2](https://su2code.github.io/download.html)\n\n**Step 3**. _Generating data_: take a look at the notebooks and the [SU2 tutorial collection](https://su2code.github.io/tutorials/home/) to get started\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/airfoil.gif\" alt=\"Laminar Viscosity on Airfoil\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n*Laminar viscosity of an airfoil*\n\n---\n\n## 📊 Examples Gallery\n\n### T-shirt and interactions with hard bodies\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/t-shirt.gif\" alt=\"T-shirt and interactions with hard bodies\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n### Paper tearing\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/tearing.gif\" alt=\"Paper tearing\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n### Possion process, square domain, single boundary control\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/possion_square.png\" alt=\"possion process, square domain, single boundary control\" style=\"zoom:60%;\" /\u003e\n\u003c/p\u003e\n\n### Possion process, L shape domain, single boundary control\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/possion_l.png\" alt=\"possion process, L shape domain, single boundary control\" style=\"zoom:60%;\" /\u003e\n\u003c/p\u003e\n\n### Possion process, circle shape domain, single boundary control\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/possion_circle.png\" alt=\"possion process, circle shape domain, single boundary control\" style=\"zoom:60%;\" /\u003e\n\u003c/p\u003e\n\n\n### Gaussian process, rectangle shape domain, multi \u0026 dynamic boundary control\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"fig/gaussian_square_dynamic.gif\" alt=\"gaussian process, rectangle shape domain, multi \u0026 dynamic boundary control\" style=\"zoom:80%;\" /\u003e\n\u003c/p\u003e\n\n\n## 📜 References\n\n1. FEniCS project: https://fenicsproject.org/\n2. ARCSim project: http://graphics.berkeley.edu/resources/ARCSim/\n3. DGL project: https://www.dgl.ai/\n4. SU2 project: https://su2code.github.io/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiffeqml%2Fpde-dataset-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdiffeqml%2Fpde-dataset-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdiffeqml%2Fpde-dataset-generator/lists"}