Skip to content

Commit

Permalink
Merge branch 'main' into pandamesh
Browse files Browse the repository at this point in the history
  • Loading branch information
tkoyama010 authored Jan 21, 2025
2 parents 2bed7c5 + b0e6f76 commit d98c9a2
Show file tree
Hide file tree
Showing 5 changed files with 195 additions and 24 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/awesome_bot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Ruby
on:
push:
branches: ["*"]
pull_request:
branches: ["*"]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- name: Set up Ruby 2.6
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.6.10
- name: Checks
run: |
gem install awesome_bot
awesome_bot --allow-redirect --request-delay 1 README.md
17 changes: 14 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ci:
autoupdate_schedule: weekly
repos:
- repo: https://github.com/python-jsonschema/check-jsonschema
rev: 0.29.3
rev: 0.31.0
hooks:
- id: check-github-workflows
- repo: https://github.com/codespell-project/codespell
Expand All @@ -18,7 +18,7 @@ repos:
- id: prettier
types_or: [yaml, markdown, html, css, scss, javascript, json]
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
Expand Down Expand Up @@ -47,8 +47,19 @@ repos:
language: python
files: README.md
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.6.8
rev: v0.9.1
hooks:
- id: ruff
args: [--fix]
- id: ruff-format
- repo: https://github.com/ComPWA/taplo-pre-commit
rev: v0.9.3
hooks:
- id: taplo-format
# See options: https://taplo.tamasfe.dev/configuration/formatter-options.html
args: [--option, "reorder_arrays=true", --option, "reorder_keys=true"]

- repo: https://github.com/woodruffw/zizmor-pre-commit
rev: v1.1.1
hooks:
- id: zizmor
35 changes: 19 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ Contributions _very welcome_ but first see [Contributing](CONTRIBUTING.md).

## CAD

- [CadQuery](https://cadquery.readthedocs.io/en/latest/) - A python parametric CAD scripting framework based on OCCT ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [FreeCAD](https://www.freecad.org/) - A free and opensource multiplatform 3D parametric modeler. ![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black) ![macOS](https://img.shields.io/badge/mac%20os-000000?logo=macos&logoColor=F0F0F0) ![Windows](https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white)
- [CadQuery](https://cadquery.readthedocs.io/en/latest/) – A python parametric CAD scripting framework based on OCCT
- [FreeCAD](https://www.freecad.org/) – A free and opensource multiplatform 3D parametric modeler.
- [Shapely](https://github.com/shapely/shapely) – Manipulation and analysis of geometric objects.

## Mesh

- [Gmsh](https://gitlab.onelab.info/gmsh/gmsh) – A three-dimensional finite element mesh generator with built-in pre- and post-processing facilities.
- [Netgen/NGSolve](https://ngsolve.org/) - Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily. ![C++](https://img.shields.io/badge/c++-%2300599C.svg?logo=c%2B%2B&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54) [![lite-badge](https://jupyterlite.rtfd.io/en/latest/_static/badge.svg)](https://ngsolve.github.io/jupyterlite_ngsolve/lab?path=poisson.ipynb)
- [pandamesh](https://github.com/Deltares/pandamesh) - 🐼 From geodataframe to mesh ▦ ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [pyGIMLi](https://github.com/gimli-org/gimli) - Geophysical Inversion and Modeling Library 🌍 ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54) ![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?logo=jupyter&logoColor=white)
Expand All @@ -41,26 +43,27 @@ Contributions _very welcome_ but first see [Contributing](CONTRIBUTING.md).

## Others

- [DefElement](https://defelement.com/) - an encyclopedia of finite element definitions ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [DefElement](https://defelement.org/) an encyclopedia of finite element definitions

## PDE Solver

- [dolfinx](https://github.com/FEniCS/dolfinx) - Next generation FEniCS problem solving environment ![C++](https://img.shields.io/badge/c++-%2300599C.svg?logo=c%2B%2B&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [FeenoX](https://github.com/seamplex/feenox) - Cloud-first free no-fee no-X uniX-like finite-element(ish) computational engineering tool. ![Linux](https://img.shields.io/badge/Linux-FCC624?logo=linux&logoColor=black) ![Windows](https://img.shields.io/badge/Windows-0078D6?logo=windows&logoColor=white)
- [FElupe](https://felupe.readthedocs.io/en/latest/) - 🔍 finite element analysis for continuum mechanics of solid bodies ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54) ![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?logo=jupyter&logoColor=white)
- [GetFEM](https://getfem.org) - Framework for solving systems of coupled nonlinear PDEs. ![C++](https://img.shields.io/badge/c++-%2300599C.svg?logo=c%2B%2B&logoColor=white) ![Octave](https://img.shields.io/badge/OCTAVE-darkblue?logo=octave&logoColor=fcd683) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [Gridap.jl](https://github.com/gridap/Gridap.jl) - Grid-based approximation of partial differential equations in Julia ![Julia](https://img.shields.io/badge/-Julia-9558B2?logo=julia&logoColor=white)
- [MFEM](https://mfem.org/) - Lightweight, general, scalable C++ library for finite element methods ![C++](https://img.shields.io/badge/c++-%2300599C.svg?logo=c%2B%2B&logoColor=white)
- [pyelmer](https://github.com/nemocrys/pyelmer) - A python interface to Elmer. ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [PyMAPDL](https://github.com/ansys/pymapdl) - The PyMAPDL project supports Pythonic access to MAPDL. ![pyansys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [scikit-fem](https://scikit-fem.readthedocs.io/en/latest/) - Simple finite element assemblers ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [Symfem](https://symfem.readthedocs.io/en/latest/) - A symbolic finite element definition library ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [dolfinx](https://github.com/FEniCS/dolfinx) Next generation FEniCS problem solving environment
- [FeenoX](https://github.com/seamplex/feenox) Cloud-first free no-fee no-X uniX-like finite-element(ish) computational engineering tool.
- [FElupe](https://felupe.readthedocs.io/en/latest/) 🔍 finite element analysis for continuum mechanics of solid bodies
- [GetFEM](https://getfem.org) Framework for solving systems of coupled nonlinear PDEs.
- [Gridap.jl](https://github.com/gridap/Gridap.jl) Grid-based approximation of partial differential equations in Julia
- [MFEM](https://mfem.org/) Lightweight, general, scalable C++ library for finite element methods
- [pyelmer](https://github.com/nemocrys/pyelmer) A python interface to Elmer.
- [PyMAPDL](https://github.com/ansys/pymapdl) The PyMAPDL project supports Pythonic access to MAPDL.
- [scikit-fem](https://scikit-fem.readthedocs.io/en/latest/) Simple finite element assemblers
- [Symfem](https://symfem.readthedocs.io/en/latest/) A symbolic finite element definition library

## Tutorial

- [comet-fenicsx](https://bleyerj.github.io/comet-fenicsx/) - COmputational MEchanics numerical Tours. ![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?logo=jupyter&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [The DOLFINx tutorial](https://github.com/jorgensd/dolfinx-tutorial) - This is the source code for the dolfinx-tutorial webpage. ![Jupyter Notebook](https://img.shields.io/badge/jupyter-%23FA0F00.svg?logo=jupyter&logoColor=white) ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [comet-fenicsx](https://bleyerj.github.io/comet-fenicsx/) COmputational MEchanics numerical Tours.
- [The DOLFINx tutorial](https://github.com/jorgensd/dolfinx-tutorial) This is the source code for the dolfinx-tutorial webpage.

## Visualization

- [PyVista](https://docs.pyvista.org/version/stable/) - 3D plotting and mesh analysis through a streamlined interface for VTK ![Python](https://img.shields.io/badge/python-3670A0?logo=python&logoColor=ffdd54)
- [PyVista](https://docs.pyvista.org/version/stable/) – 3D plotting and mesh analysis through a streamlined interface for VTK
- [vedo](https://github.com/marcomusy/vedo) – A python module for scientific analysis of 3D data based on VTK and Numpy
140 changes: 140 additions & 0 deletions awesome.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Our Definition of Awesome

If you want a project to be included in this `awesome` list, please check our definition of awesome. After all, it's a curation, not a collection. We base it loosely on the [manifesto of the Journal of Open Source Software (JOSS)](https://joss.readthedocs.io/en/latest/review_criteria.html). We say loosely, because their standards are higher. Our definition of awesome is more like guidelines to aim for and less like a strict set of rules. If you're new to coding and aren't sure if something qualifies, submit a pull request following the [contribution guidelines](contributing.md) and maintainers will help you out!

For now, we choose English as a common language for the list and as acceptable contributions to the list.

But **what is awesome?**

# Contents

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [Choose an appropriate license](#choose-an-appropriate-license)
- [Software](#software)
- [Non-Software](#non-software)
- [Unacceptable Licenses](#unacceptable-licenses)
- [Project Community Guidelines](#project-community-guidelines)
- [Datasets](#datasets)
- [Dataset Documentation](#dataset-documentation)
- [Download Instructions](#download-instructions)
- [Publications and Cheat Sheets](#publications-and-cheat-sheets)
- [Software](#software-1)
- [Software Documentation](#software-documentation)
- [Readme](#readme)
- [Installation Instructions](#installation-instructions)
- [Examples and Tutorials](#examples-and-tutorials)
- [API Documentation](#api-documentation)
- [Software Tests](#software-tests)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

# Choose an appropriate license

Need help?

**http://choosealicense.com/**

There should be an [Open Software Initiative](https://opensource.org/licenses/) or [Free Software Foundation](https://www.fsf.org/licensing/licenses/) approved license file for software included in the repository. Keep in mind that if you [haven't selected a license](http://choosealicense.com/no-license/), it very likely means the people are _not_ allowed to reproduce, distribute or create derivative works.

## Software

Common licenses for software are [found here](http://choosealicense.com/):

- [Apache License 2.0](https://opensource.org/licenses/Apache-2.0)
- [BSD 3-Clause "New" or "Revised" license](https://opensource.org/licenses/BSD-3-Clause)
- [BSD 2-Clause "Simplified" or "FreeBSD" license](https://opensource.org/licenses/BSD-2-Clause)
- [GNU General Public License (GPL)](https://opensource.org/licenses/gpl-license)
- [GNU Lesser General Public License version 3](https://opensource.org/license/lgpl-3-0)
- [MIT license](https://opensource.org/licenses/MIT)

## Non-Software

Non-software typically use Creative Commons:

- [CC0](https://creativecommons.org/publicdomain/zero/1.0/)
- [CC-BY](https://creativecommons.org/licenses/by/4.0/).
- [CC-BY-SA](https://creativecommons.org/licenses/by-sa/4.0/).
- Code licenses like MIT, BSD, GPL, and so forth are **not** recommended for this type.

## Unacceptable Licenses

Some licenses that are **_not_** open and **cannot be included**:

- [No license](http://choosealicense.com/no-license/)
- [CC-BY-NC](https://creativecommons.org/licenses/by-nc/4.0/)
- [CC-BY-ND](https://creativecommons.org/licenses/by-nd/4.0/)
- [NASA Open Source Agreement](http://directory.fsf.org/wiki/License:NASA-OSA_v1.3)
- [Microsoft's Shared Source CLI, C#, and Jscript License](http://directory.fsf.org/wiki/License:Ms-SS)
- [Oculus Rift SDK License](http://directory.fsf.org/wiki/License:Oculus_VR_Rift_SDK_License)
- More exhaustive lists: [Software](http://www.gnu.org/licenses/license-list.html#NonFreeSoftwareLicenses) and [Others](http://www.gnu.org/licenses/license-list.html#NonFreeDocumentationLicenses)

# Project Community Guidelines

Awesome projects make it easy to get involved with. Tell the community, how you would like your issues and pull requests and how you credit them when they contribute to the software, report issues or problems with the software or simply seek support.

# Datasets

Awesome datasets need an open license and should be accessible. Ideally, they should be obtainable online, without sign-up. We appreciate that sometimes data portals with sign-ups are necessary. The sign-up for these portals _must be_ automatic, meaning no long wait for response, and _cannot_ limit usage of the data, meaning license restrictions that would make it non-open.

Awesome: Open downloadable data like an S3 bucket, API, kaggle dataset, or data.world dataset.
Awesome-ish (we get it, sometimes it's necessary): Data Portal with sign-up
Bad (not acceptable): Contact the authors / maintainers and ask for the thing in the back of the cabinet.

## Dataset Documentation

Awesome datasets contain a full description of the data included and information about acquisition, processing and ideally reference implementations of loading and visualization of the adata.

## Download Instructions

Awesome datasets make it easy to obtain the data. Tell the community, how they can best obtain the data in the most stable way.

# Publications and Cheat Sheets

Awesome publications make it easy for the reader to navigate and obtain the information they need. These publications condense information in a unique way or offer a complete, exhaustive and comprehensive overview of a topic.

# Software

Awesome software is easy to install, beautifully documented with great examples and fully tested to ensure functionality. We go into more detail in the following sections.

## Software Documentation

For a project to be awesome, documentation should be awesome. Look at our awesome list, we're trying to make this look good and people appreciate it. All of this was achieved with good formatting via [Markdown](https://en.wikipedia.org/wiki/Markdown) in the Readme. If you really enjoy a project, but find the documentation is weak, that might be a great way to contribute to that project!

### Readme

The readme of the repository should be well formatted and contain the gist of the project, and links all the following points, that ideally should be part of the larger documentation.

### Installation Instructions

Awesome software makes it easy to use and include in your programming environment. In Python, Pypi and Conda make package management extremely powerful, ideally the software should be included in at least one of these. Gemfiles for Ruby, or NPM for nodejs are equally great for serving the software.

Awesome: A package management file such as a Gemfile or requirements.txt or equivalent
Awesome-ish (it's missing some of the magic): A list of dependencies to install
Bad (not acceptable): Reliance on other software not listed by the authors

### Examples and Tutorials

Sometimes it can be a little non-obvious how to get the software started. An awesome project includes tutorials and examples how to use the software. This is another easy way to contribute to a project. If you think it is awesome, you've likely already made something that can be used as an example.

### API Documentation

The API, or the collection of functionality should be described in the documentation. Making people guess if it's `xy.from_csv`, `xy.read_csv`, or `xy.load_csv` is less than Awesome. Better let them know and choose good defaults that can be changed regardless for all the edge cases that appear along the way.

Uber-Awesome: All functions methods have tutorials and examples.
Awesome: All functions/methods are documented including example inputs and outputs
Awesome-ish (it could be so much more awesome though): Core API functionality is documented
Bad (not acceptable): API is completely undocumented

## Software Tests

> Untested code is broken code.
Awesome projects make sure their code is working, ideally by automatic tests with full coverage of their software package. Remember many automatic Continuous Integration (CI) tools, offer discounts or free functionality to open source projects.

Tests can also be non-applicable for certain projects and are sometimes really hard to implement, if you're not sure whether the tests are acceptable, just let us know in the pull request and the maintainers will figure it out with you.

Uber-Awesome: Full coverage of all tests, automatically executed and instructions to test by hand
Awesome: An automated test suite hooked up to an external service such as Travis-CI or similar
Awesome-ish (If we're in a really good mood): Documented manual steps that can be followed to objectively check the expected functionality of the software
6 changes: 1 addition & 5 deletions ruff.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,3 @@
[lint]
ignore = ["COM812", "D203", "D212"]
select = ["ALL"]
ignore = [
"COM812",
"D203",
"D212",
]

0 comments on commit d98c9a2

Please sign in to comment.