Giter Club home page Giter Club logo

dolfinx's Introduction

DOLFINx

DOLFINx CI CircleCI Actions Docker images Actions Spack build Actions Conda install Actions macOS/Homebrew install

DOLFINx is the computational environment of FEniCSx and implements the FEniCS Problem Solving Environment in C++ and Python.

DOLFINx is a new version of DOLFIN and is being actively developed.

Documentation

Documentation can be viewed at:

Installation

From source

C++ core

To build and install the C++ core, in the cpp/ directory, run::

mkdir build
cd build
cmake ..
make install

Python interface

To install the Python interface, first install the C++ core, and then in the python/ directory run::

pip install .

(you may need to use pip3, depending on your system).

For detailed instructions, see https://docs.fenicsproject.org/dolfinx/main/python/installation.

Spack

Spack automates the installation from source and is recommended for building DOLFINx on HPC systems. To build the most recent release using Spack (assuming a bash-compatible shell):

git clone https://github.com/spack/spack.git
. ./spack/share/spack/setup-env.sh
spack env create fenicsx-env
spack env activate fenicsx-env
spack add py-fenics-dolfinx cflags="-O3" fflags="-O3"
spack install

See the Spack documentation for comprehensive instructions.

Binary

Recommendations

conda

To install the latest stable release of the Python interface, with pyvista support for visualisation, using conda:

conda create -n fenicsx-env
conda activate fenicsx-env
conda install -c conda-forge fenics-dolfinx mpich pyvista

conda is distributed with Anaconda and Miniconda. The conda recipe is hosted on conda-forge.

Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Note Windows packages are not available. This is due to some DOLFINx dependencies not supporting Windows.

Ubuntu packages

The Ubuntu PPA contains binary packages of the FEniCSx components. To install:

add-apt-repository ppa:fenics-packages/fenics
apt update
apt install fenicsx

When a version of DOLFINx is released we aim to provide a build for the latest stable version of Ubuntu. All other versions are provided on a best-effort basis.

Debian packages

DOLFINx is included with various versions of Debian. Install with apt-get install fenicsx.

Docker images

A Docker image with the latest stable release of DOLFINx:

docker run -ti dolfinx/dolfinx:stable

To switch between real and complex builds of DOLFINx/PETSc.

source /usr/local/bin/dolfinx-complex-mode
source /usr/local/bin/dolfinx-real-mode

A Jupyter Lab environment with the latest stable release of DOLFINx:

docker run --init -ti -p 8888:8888 dolfinx/lab:stable  # Access at http://localhost:8888

A Docker image with DOLFINx built nightly:

docker run -ti dolfinx/dolfinx:nightly

A development image with all of the dependencies required to build the latest stable release of the FEniCSx components:

docker run -ti dolfinx/dev-env:stable

A development image with all of the dependencies required to build the main branch of the FEniCSx components:

docker run -ti dolfinx/dev-env:current

All Docker images support arm64 and amd64 architectures.

For a full list of tags, including versioned images, see https://hub.docker.com/u/dolfinx

Contributing

Information about how to contribute to DOLFINx can be found here.

License

DOLFINx is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

DOLFINx is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with DOLFINx. If not, see http://www.gnu.org/licenses/.

Contact

For questions about using DOLFINx, visit the FEniCS Discourse page:

https://fenicsproject.discourse.group/

or use the FEniCS Slack channel:

https://fenicsproject.slack.com/

(use https://join.slack.com/t/fenicsproject/shared_invite/zt-1lraknsp1-6_3Js5kueDIyWgF192d3nA to sign up)

For bug reports visit:

https://github.com/FEniCS/dolfinx

dolfinx's People

Contributors

garth-wells avatar anderslogg avatar chrisrichardson avatar johanhake avatar blechta avatar johannesring avatar meg-simula avatar skavhaug avatar jorgensd avatar jhale avatar kent-and avatar igorbaratta avatar pefarrell avatar michalhabera avatar nate-sime avatar tormodlandet avatar jobh avatar solveigm avatar quang-ha avatar mscroggs avatar ivanyashchuk avatar nschloe avatar cianwilson avatar mmorandi avatar ettieunwin avatar cmaurini avatar francesco-ballarin avatar tianyikillua avatar aslakbergersen avatar magneano avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.