Skip to content

finsberg/fenicsx-plotly

Repository files navigation

MIT PyPI version Test package Pre-commit Deploy static content to Pages Code style: black Create and publish a Docker image Coverage

fenicsx-plotly

fenicsx-plotly is package for plotting FEniCSx objects using plotly. It is a successor of fenics-plotly.

Install

To install fenicsx-plotly you need to first install FEniCSx. Next you can install fenicsx-plotly via pip

python3 -m pip install fenicsx-plotly

We also provide a pre-built docker image with FEniCSx and fenicsx-plotly installed. You pull this image using the command

docker pull ghcr.io/finsberg/fenicsx-plotly:v0.3.0

Simple Example

import dolfinx
from mpi4py import MPI
from fenicsx_plotly import plot

mesh = dolfinx.mesh.create_unit_cube(MPI.COMM_WORLD, 3, 3, 3)

plot(mesh)

Supported objects (and object that will be supported in the future)

  • dolfinx.mesh.Mesh
  • dolfinx.mesh.MeshTagsMetaClass
  • dolfinx.fem.FunctionSpace
  • dolfinx.fem.Function
    • Scalar
    • Vector
  • dolfinx.fem.bcs.DirichletBCMetaClass
    • Scalar
    • Vector

Usage with JupyterBook

If you want to embed the visualizations generated by fenicsx-plotly into a webpage generated by JupyterBook such as the documentation for fenicsx-plotly you need to add the following configuration in your _config.yml

sphinx:
  config:
    html_js_files:
      - https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.4/require.min.js

See https://jupyterbook.org/en/stable/interactive/interactive.html#plotly for more information.

Contributing

Contributions are welcomed!

See https://finsberg.github.io/fenicsx-plotly/CONTRIBUTING.html for more info.