{"id":31718423,"url":"https://github.com/jorgensd/fenics22-tutorial","last_synced_at":"2025-10-09T02:39:10.653Z","repository":{"id":37527315,"uuid":"505916715","full_name":"jorgensd/fenics22-tutorial","owner":"jorgensd","description":"Tutorial for the FEniCS [22 conference](https://fenicsproject.org/fenics-2022/) in San Diego","archived":false,"fork":false,"pushed_at":"2025-08-25T04:14:00.000Z","size":68656,"stargazers_count":9,"open_issues_count":0,"forks_count":6,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-09-23T14:55:24.996Z","etag":null,"topics":["dolfinx","fenicsx","tutorial"],"latest_commit_sha":null,"homepage":"https://jsdokken.com/fenics22-tutorial/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jorgensd.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-06-21T16:13:10.000Z","updated_at":"2025-08-25T04:13:58.000Z","dependencies_parsed_at":"2023-02-19T05:31:35.971Z","dependency_job_id":"b4a2d702-e6de-44d2-828f-b946b3c83efd","html_url":"https://github.com/jorgensd/fenics22-tutorial","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/jorgensd/fenics22-tutorial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgensd%2Ffenics22-tutorial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgensd%2Ffenics22-tutorial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgensd%2Ffenics22-tutorial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgensd%2Ffenics22-tutorial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jorgensd","download_url":"https://codeload.github.com/jorgensd/fenics22-tutorial/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jorgensd%2Ffenics22-tutorial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279000775,"owners_count":26082906,"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","status":"online","status_checked_at":"2025-10-09T02:00:07.460Z","response_time":59,"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":["dolfinx","fenicsx","tutorial"],"created_at":"2025-10-09T02:39:05.331Z","updated_at":"2025-10-09T02:39:10.648Z","avatar_url":"https://github.com/jorgensd.png","language":"HTML","readme":"# FEniCSx Tutorial @ [FEniCS 2022](https://fenicsproject.org/fenics-2022/) in San Diego.\n\nThis repository contains the material that was used for the FEniCSx tutorial at the FEniCS 2022 conference.\n\nAll the resources from this tutorial can be found in [this Jupyter book](https://jorgensd.github.io/fenics22-tutorial).\n\n## Developer notes\n\n### Rendering the HTML presentation files directly on Github\n\nUse [githack](https://raw.githack.com/) and add the link to the relevant presentation.\n\nExample:\n\n- [Example page](https://raw.githack.com/jorgensd/fenics22-tutorial/main/presentation-example.html#/)\n- [Time dependent problem](https://raw.githack.com/jorgensd/fenics22-tutorial/main/presentation-heat_eq.html#/)\n- [Helmholtz](https://raw.githack.com/jorgensd/fenics22-tutorial/main/presentation-helmholtz.html#/)\n- [Stokes](https://raw.githack.com/jorgensd/fenics22-tutorial/main/presentation-comparing_elements.html#/)\n\n### Adding a tutorial to the book\n\nAdd a chapter to `_toc.yml`.\n\nInside the Jupyter notebook, go to `Property Inspector` (the two cogwheels in the top right corner of JupyterLab)\nand add the following as notebook metadata:\n\n```yml\n{\n  \"jupytext\": { \"formats\": \"ipynb,py:light\" },\n  \"kernelspec\":\n    {\n      \"display_name\": \"Python 3 (ipykernel)\",\n      \"language\": \"python\",\n      \"name\": \"python3\",\n    },\n  \"language_info\":\n    {\n      \"codemirror_mode\": { \"name\": \"ipython\", \"version\": 3 },\n      \"file_extension\": \".py\",\n      \"mimetype\": \"text/x-python\",\n      \"name\": \"python\",\n      \"nbconvert_exporter\": \"python\",\n      \"pygments_lexer\": \"ipython3\",\n      \"version\": \"3.10.4\",\n    },\n}\n```\n\nThis will choose the default kernel in the `dolfinx/lab` docker image, and automatically convert the notebooks to a `.py` file at saving.\n\nIf you want to use complex numbers, change:\n\n```bash\n \"kernelspec\": {\n   \"display_name\": \"Python 3 (ipykernel)\",\n   \"language\": \"python\",\n   \"name\": \"python3\"\n  },\n```\n\nto\n\n```bash\n  \"kernelspec\": {\n   \"display_name\": \"Python 3 (DOLFINx complex)\",\n   \"language\": \"python\",\n   \"name\": \"python3-complex\"\n  },\n```\n\n### Create slides from your notebook\n\nYou can use `nbconvert` (`pip3 install nbconvert`) to convert the `.ipynb` to a presentation.\nThe command to run is:\n\n```bash\njupyter nbconvert example.ipynb --to html --template reveal\n```\n\nTo change what is rendered on each slide, you can change the notebook metadata,\nwhich is in `Property Inspector` (the two cogwheels in the top right corner of JupyterLab), and change the `Slide Type` to `Slide` to start a new slide. If you want to add the cell below to the same slide, change the type to `-`.\n\nIf a cell should be revealed with `Right Arrow`, choose `Fragment`.\n\nIf you want a sub-slide, i.e. navigating downwards with arrows when rendering the presentation, change the type to `Sub-Slide`.\n\nIf a cell should be ignored in presentation mode, set it to `Notes`.\n\n### Hiding cells/output\n\nSee https://jupyterbook.org/en/stable/interactive/hiding.htm for more details. The setting is also in advanced tools on the RHS of the Jupyterlab interface\n\n### Automatically generate slides\n\nBy adding the following file to the (`jupyter_server_config.py`) `.jupyter` folder on your system.\nYou might need to rename it to `jupyter_notebook_config.py`.\nTo check the config paths, call:\n\n```bash\njupyter server --show-config\njupyter notebook --show-config\njupyer lab --show-config\n```\n\nIf you run the code with `dolfinx/lab:stable` using for instance:\n\n```bash\ndocker run -ti -p 8888:8888 --rm -v $(pwd):/root/shared -w /root/shared dolfinx/lab:stable\n```\n\nno copying is required.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgensd%2Ffenics22-tutorial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgensd%2Ffenics22-tutorial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgensd%2Ffenics22-tutorial/lists"}