diff --git a/.github/workflows/url-check.yml b/.github/workflows/url-check.yml new file mode 100644 index 00000000..e10aecf1 --- /dev/null +++ b/.github/workflows/url-check.yml @@ -0,0 +1,27 @@ +name: Check URLs + +on: + push: + branches: + - main + - docs + pull_request: + branches: + - main + - docs + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: urls-checker + uses: urlstechie/urlchecker-action@master + with: + subfolder: docs + file_types: .md,.py,.rst,.txt + print_all: false + timeout: 5 + retry_count: 3 + force_pass : false diff --git a/docs/index.md b/docs/index.md index 551a7e82..393f5393 100644 --- a/docs/index.md +++ b/docs/index.md @@ -72,10 +72,12 @@ The main executable, `./PolyFEM_bin`, can be called as a command-line interface. PolyFEM in Python ------ -[![Last update](https://anaconda.org/conda-forge/polyfempy/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/polyfempy) +[![Version](https://anaconda.org/conda-forge/polyfempy/badges/version.svg)](https://anaconda.org/conda-forge/polyfempy) +[![Latest Release Date](https://anaconda.org/conda-forge/polyfempy/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/polyfempy) [![Downloads](https://anaconda.org/conda-forge/polyfempy/badges/downloads.svg)](https://anaconda.org/conda-forge/polyfempy) -[![Install](https://anaconda.org/conda-forge/polyfempy/badges/installer/conda.svg)](https://anaconda.org/conda-forge/polyfempy) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/polyfem/polyfem.github.io.git/docs?filepath=docs%2Fpython_examples.ipynb) +[![Platforms](https://anaconda.org/conda-forge/polyfempy/badges/platforms.svg)](https://anaconda.org/conda-forge/polyfempy) +[![License](https://anaconda.org/conda-forge/polyfempy/badges/license.svg)](https://anaconda.org/conda-forge/polyfempy) For more details refer to the [Python section](python.md) diff --git a/docs/polyfempy_doc.md b/docs/polyfempy_doc.md index e3bba948..1a43463e 100644 --- a/docs/polyfempy_doc.md +++ b/docs/polyfempy_doc.md @@ -87,7 +87,7 @@ stringyfied json description of this class, used to run the solver ### set_advanced_option `set_advanced_option(key, value)` -Used to set any advanced option not present in this class, for instance set_advanced_option("use_spline",True), see https://polyfem.github.io/documentation/ for full list +Used to set any advanced option not present in this class, for instance set_advanced_option("use_spline",True), see https://polyfem.github.io/ for full list ### set_isolines_export_path `set_isolines_export_path(path)` @@ -97,7 +97,7 @@ Sets the path to export the isolines of the solution ### set_material_params `set_material_params(name, value)` -set the material parameters, for instance set_material_params("E", 200) sets the Young's modulus E to 200. See https://polyfem.github.io/documentation/#formulations for full list +set the material parameters, for instance set_material_params("E", 200) sets the Young's modulus E to 200. See https://polyfem.github.io/details/formulations/ for full list ### set_pde `set_pde(pde)` @@ -144,7 +144,7 @@ Classical driven cavity problem in fluid simulation ## class Flow -Inflow/outflow problem for fluids. You can specify the sideset for the moving fluxes, the axial direction of the flow, and the list of obstacle sidesets. https://polyfem.github.io/documentation/#flow +Inflow/outflow problem for fluids. You can specify the sideset for the moving fluxes, the axial direction of the flow, and the list of obstacle sidesets. https://polyfem.github.io/details/problems/?h=flow#flow ### init `__init__(inflow=1, outflow=3, inflow_amout=0.25, outflow_amout=0.25, direction=0, obstacle=[7])` @@ -156,14 +156,14 @@ Initialize . See help(type()) for accurate signature. ## class Franke -Franke problem with exact solution https://polyfem.github.io/documentation/#franke +Franke problem with exact solution https://polyfem.github.io/details/problems/?h=franke#franke ## class GenericScalar -Generic scalar problem https://polyfem.github.io/documentation/#genericscalar +Generic scalar problem https://polyfem.github.io/details/problems/?h=genericscalar#genericscalar ### add_dirichlet_value `add_dirichlet_value(id, value)` @@ -180,7 +180,7 @@ add the Neumann value value for the sideset id ## class GenericTensor -Generic tensor problem https://polyfem.github.io/documentation/#generictensor +Generic tensor problem https://polyfem.github.io/details/problems/?h=gener#generictensor ### add_dirichlet_value `add_dirichlet_value(id, value, is_dirichlet_dim=None)` @@ -212,7 +212,7 @@ set the velocity value for the sideset id. Note the value must be a vector in 2D ## class Gravity -time dependent gravity problem https://polyfem.github.io/documentation/#gravity +time dependent gravity problem https://polyfem.github.io/details/problems/?h=gravity#gravity ### init `__init__(force=0.1)` @@ -224,7 +224,7 @@ Initialize . See help(type()) for accurate signature. ## class Torsion -3D torsion problem, specify which sideset to fix (fixed_boundary) and which one turns turning_boundary https://polyfem.github.io/documentation/#torsionelastic +3D torsion problem, specify which sideset to fix (fixed_boundary) and which one turns turning_boundary https://polyfem.github.io/details/problems/?h=torsionelastic#torsionelastic ### init `__init__(axis_coordiante=2, n_turns=0.5, fixed_boundary=5, turning_boundary=6)` diff --git a/docs/python.md b/docs/python.md index 0935f7bc..c9f5dc38 100644 --- a/docs/python.md +++ b/docs/python.md @@ -4,10 +4,12 @@ Python bindings !!! warning The python bindings are in beta. Expect API changes and possible bugs. Use at your own peril! -[![Last update](https://anaconda.org/conda-forge/polyfempy/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/polyfempy) +[![Version](https://anaconda.org/conda-forge/polyfempy/badges/version.svg)](https://anaconda.org/conda-forge/polyfempy) +[![Latest Release Date](https://anaconda.org/conda-forge/polyfempy/badges/latest_release_date.svg)](https://anaconda.org/conda-forge/polyfempy) [![Downloads](https://anaconda.org/conda-forge/polyfempy/badges/downloads.svg)](https://anaconda.org/conda-forge/polyfempy) -[![Install](https://anaconda.org/conda-forge/polyfempy/badges/installer/conda.svg)](https://anaconda.org/conda-forge/polyfempy) [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/polyfem/polyfem.github.io.git/docs?filepath=docs%2Fpython_examples.ipynb) +[![Platforms](https://anaconda.org/conda-forge/polyfempy/badges/platforms.svg)](https://anaconda.org/conda-forge/polyfempy) +[![License](https://anaconda.org/conda-forge/polyfempy/badges/license.svg)](https://anaconda.org/conda-forge/polyfempy) I am making efforts to provide a simple python interface to Polyfem. diff --git a/docs/tutorials/sling-shot/sling-shot.md b/docs/tutorials/sling-shot/sling-shot.md index c63f228e..4b751f02 100644 --- a/docs/tutorials/sling-shot/sling-shot.md +++ b/docs/tutorials/sling-shot/sling-shot.md @@ -31,7 +31,7 @@ To build this project, there are some other dependencies we need. Note that `mes The data needed in this tutorial can be found [here](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data). For triangle meshes, they are in [surf_mesh folder](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data/surf_mesh) and the volume meshes are in [vol_mesh folder](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial/tree/main/slingshot/assets/data/vol_mesh) The volume mesh files are all made by [fTetWild](https://github.com/wildmeshing/fTetWild). Feel free you make you own sphere, rubber band and fingers. ## Tutorial -All the code and JSONs can be found at [Github: Slingshot Tutorial](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial). +All the code and JSONs can be found at [Github: Slingshot Tutorial](https://github.com/KraftOreo/Slingshot_Polyfem_Tutorial) The file tree of this project is: ``` project @@ -377,4 +377,4 @@ You can create a test.py file for this, and run it in the project folder: ```shell= python test.py ``` -The result should be like the gifs at the beginning. \ No newline at end of file +The result should be like the gifs at the beginning. diff --git a/docs/tutorials/sphere-pushing-box/sphere-pushing-box.md b/docs/tutorials/sphere-pushing-box/sphere-pushing-box.md index 65942d9a..247f263c 100644 --- a/docs/tutorials/sphere-pushing-box/sphere-pushing-box.md +++ b/docs/tutorials/sphere-pushing-box/sphere-pushing-box.md @@ -37,7 +37,7 @@ To build this project, there are some other depencies we need. Note that meshio ## Data Preparation -The data needed in this tutorial can be found [here](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data). For triangle meshes, they are in [surf_mesh folder](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data/surf_mesh) and the volume meshes are in [vol_mesh folder](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/tree/main/assets/data/vol_mesh). The volume mesh files are all made using [fTetWild](https://github.com/wildmeshing/fTetWild). Feel free you make your own spheres and boxes. +The data needed in this tutorial can be found [here](https://github.com/DuoZhangRobotics/PushBox_PolyFEM_Tutorial/tree/main/pushbox/assets/data). For triangle meshes, they are in [surf_mesh folder](https://github.com/DuoZhangRobotics/PushBox_PolyFEM_Tutorial/tree/main/pushbox/assets/data/surf_mesh) and the volume meshes are in [vol_mesh folder](https://github.com/DuoZhangRobotics/PushBox_PolyFEM_Tutorial/tree/main/pushbox/assets/data/vol_mesh). The volume mesh files are all made using [fTetWild](https://github.com/wildmeshing/fTetWild). Feel free you make your own spheres and boxes. All the codes and JSON files can be found [here](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial). @@ -359,4 +359,4 @@ from pushbox.src.pushbox_with_obstacles import PushBox The entire script can be viewed in [test_with_obs.py](https://github.com/KraftOreo/PushBox_PolyFEM_Tutorial/blob/main/test_obs.py). -This is the end of the tutorial. Enjoy! \ No newline at end of file +This is the end of the tutorial. Enjoy! diff --git a/docs/tutorials/trajectory-optimization/trajectory-optimization.md b/docs/tutorials/trajectory-optimization/trajectory-optimization.md index d0814df6..f3286c18 100644 --- a/docs/tutorials/trajectory-optimization/trajectory-optimization.md +++ b/docs/tutorials/trajectory-optimization/trajectory-optimization.md @@ -15,7 +15,7 @@ The following items are necessary to complete this tutorial. To reproduce the ex - [ ] [Build PolyFEM](../../cxx_index.md) - [ ] [Download File: square.obj](https://github.com/polyfem/polyfem-data/blob/main/contact/meshes/2D/simple/square.obj) - [ ] [Download File: circle.msh](https://github.com/polyfem/polyfem-data/blob/main/differentiable/circle.msh) -- [ ] [Download File: barycenter-opt.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter-opt.json) +- [ ] [Download File: run.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/run.json) - [ ] [Download File: barycenter.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter.json) - [ ] [Download File: barycenter-target.json](https://github.com/polyfem/polyfem-data/blob/main/differentiable/optimizations/initial-condition-trajectory-opt/barycenter-target.json)