fenicsprecice

preCICE-adapter for the open source computing platform FEniCS

https://github.com/precice/fenics-adapter

Science Score: 77.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 3 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 13 committers (15.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.3%) to scientific vocabulary

Keywords

conjugate-heat-transfer fenics heat-transfer multi-physics precice precice-adapter
Last synced: 6 months ago · JSON representation ·

Repository

preCICE-adapter for the open source computing platform FEniCS

Basic Info
  • Host: GitHub
  • Owner: precice
  • License: lgpl-3.0
  • Language: Python
  • Default Branch: develop
  • Homepage:
  • Size: 5.08 MB
Statistics
  • Stars: 33
  • Watchers: 5
  • Forks: 18
  • Open Issues: 22
  • Releases: 15
Topics
conjugate-heat-transfer fenics heat-transfer multi-physics precice precice-adapter
Created over 7 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog License Citation

README.md

FEniCS-preCICE adapter

GNU LGPL license

DOI

Build and Test Run preCICE Tutorials Upload Python Package

preCICE-adapter for the open source computing platform FEniCS.

Installing the package

Generally, we recommend to create a virtual environment and install the package there. The following commands will create the virtual environment .venv:

bash python3 -m venv --system-site-packages .venv . .venv/bin/activate

You can replace .venv with path/of/your/venv/venv_name if you want to create the virtual environment somewhere else. The command --system-site-packages will allow the virtual environment to access the FEniCS installation on your system. Refer to the Python documentation for further details on virtual environments.

If you do not want to use a virtual environment, you might encounter the error: externally-managed-environment during installation of the adapter; this depends on your pip version and operating system. You can read why this error shows up here.

Using pip to install from PyPI

It is recommended to install fenicsprecice from PyPI via

bash pip install fenicsprecice

This should work out of the box, if all dependencies are installed correctly. If you face problems during installation or you want to run the tests, see below for a list of dependencies and alternative installation procedures

Clone this repository and use pip

Required dependencies

Make sure to install the following dependencies:

Build and install the adapter

After cloning this repository and switching to the root directory (fenics-adapter), run pip install . from your shell.

Test the adapter

As a first test, try to import the adapter via python3 -c "import fenicsprecice".

You can run the other tests via tox. If you want to run them separately, use tox -e unit and tox -e integration respectively.

Single tests can be also be run. For example the test test_vector_write in the file test_write_read.py can be run as follows:

bash tox -e all -- tests/integration/test_write_read.py::TestWriteandReadData::test_vector_write

Troubleshooting

FEniCS is suddenly broken: There are two known issues with preCICE, fenicsprecice and FEniCS:

  • If you see ImportError: cannot import name 'sub_forms_by_domain' run pip3 uninstall -y fenics-ufl. For details, refer to issue #103.
  • If you see ImportError: cannot import name 'cellname2facetname' from 'ufl.cell', refer to issue #154.
  • If you see ModuleNotFoundError: No module named 'dolfin' and have installed PETSc from source, refer to this forum post. Short version: Try to use the PETSc that comes with your system, if possible. Note that you can also compile preCICE without PETSc, if necessary.

If this does not help, you can contact us on gitter or open an issue.

Use the adapter

Please refer to our website.

Packaging

To create and install the fenicsprecice Python package the following instructions were used: "How To Package Your Python Code" from python-packaging.readthedocs.io.

Citing

Development history

The initial version of this adapter was developed by Benjamin Rodenberg during his research stay at Lund University in the group for Numerical Analysis (Philipp Birken) in close collaboration with Peter Meisrimel.

Richard Hertrich contributed the possibility to perform FSI simulations using the adapter in his Bachelor thesis.

Ishaan Desai improved the user interface and extended the adapter to allow for parallel FEniCS computations and 3D cases in certain scenarios.

Owner

  • Name: preCICE
  • Login: precice
  • Kind: organization
  • Location: Germany

A Coupling Library for Partitioned Multi-Physics Simulations on Massively Parallel Systems

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: FEniCS-preCICE
message: >-
  If you use this software, please cite it using the metadata from this file. When using or referring to preCICE in
  academic publications, please follow the [citation guidelines](https://precice.org/fundamentals-literature-guide.html). 
type: software
authors:
  - given-names: Benjamin
    family-names: Rodenberg
    orcid: 'https://orcid.org/0000-0002-3116-0133'
    affiliation: Technical University of Munich
  - given-names: Ishaan
    family-names: Desai
    orcid: 'https://orcid.org/0000-0002-2552-7509'
    affiliation: University Stuttgart
  - family-names: Hertrich
    given-names: Richard
    orcid: 'https://orcid.org/0000-0003-1722-2841'
  - affiliation: University of Stuttgart
    given-names: Jaust
    family-names: Alexander
    orcid: 'https://orcid.org/0000-0002-6082-105X'
  - affiliation: University of Stuttgart
    given-names: Uekermann
    family-names: Benjamin
    orcid: 'https://orcid.org/0000-0002-1314-9969'
repository-code: 'https://github.com/precice/fenics-adapter'
abstract: >-
  preCICE-adapter for the open source computing platform
  FEniCS.
license: LGPL-3.0
version: 2.2.0
preferred-citation:
  title: "FEniCS-preCICE: Coupling FEniCS to other Simulation Software"
  type: "article"
  authors: 
    - affiliation: "Technical University of Munich"
      family-names: Rodenberg
      given-names: Benjamin
      orcid: "https://orcid.org/0000-0002-3116-0133"
    - affiliation: "University Stuttgart"
      family-names: Desai
      given-names: Ishaan
      orcid: "https://orcid.org/0000-0002-2552-7509"
    - family-names: Hertrich
      given-names: Richard
      orcid: "https://orcid.org/0000-0003-1722-2841"
    - affiliation: "University of Stuttgart"
      family-names: Jaust
      given-names: Alexander
      orcid: "https://orcid.org/0000-0002-6082-105X"
    - affiliation: "University of Stuttgart"
      family-names: Uekermann
      given-names: Benjamin
      orcid: "https://orcid.org/0000-0002-1314-9969"
  doi: 10.1016/j.softx.2021.100807
  journal: "SoftwareX"
  volume: 16
  pages: 100807
  year: 2021

GitHub Events

Total
  • Create event: 6
  • Issues event: 15
  • Release event: 2
  • Watch event: 3
  • Delete event: 2
  • Issue comment event: 20
  • Push event: 29
  • Pull request review event: 23
  • Pull request review comment event: 14
  • Pull request event: 18
  • Fork event: 3
Last Year
  • Create event: 6
  • Issues event: 15
  • Release event: 2
  • Watch event: 3
  • Delete event: 2
  • Issue comment event: 20
  • Push event: 29
  • Pull request review event: 23
  • Pull request review comment event: 14
  • Pull request event: 18
  • Fork event: 3

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 251
  • Total Committers: 13
  • Avg Commits per committer: 19.308
  • Development Distribution Score (DDS): 0.267
Past Year
  • Commits: 31
  • Committers: 3
  • Avg Commits per committer: 10.333
  • Development Distribution Score (DDS): 0.194
Top Committers
Name Email Commits
Benjamin Rüth b****h@t****e 184
ishaandesai i****i@g****m 48
NiklasV 1****n 5
Alexander Jaust a****t@i****e 2
Benjamin Uekermann b****n@g****m 2
Dmytro Sashko d****o@g****m 2
richahert 3****t 2
Boris Martin 8****n 1
Gerasimos Chourdakis m****s@g****m 1
Muhammad Hassani m****6@g****m 1
RafalKulaga 3****a 1
giuliatum 2****m 1
valentin-seitz v****z@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 67
  • Total pull requests: 84
  • Average time to close issues: 11 months
  • Average time to close pull requests: about 1 month
  • Total issue authors: 13
  • Total pull request authors: 8
  • Average comments per issue: 2.81
  • Average comments per pull request: 1.81
  • Merged pull requests: 75
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 16
  • Average time to close issues: about 2 months
  • Average time to close pull requests: 1 day
  • Issue authors: 2
  • Pull request authors: 4
  • Average comments per issue: 1.0
  • Average comments per pull request: 1.13
  • Merged pull requests: 14
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • BenjaminRodenberg (45)
  • IshaanDesai (7)
  • NiklasVin (3)
  • MakisH (2)
  • davidscn (2)
  • boris-martin (1)
  • richahert (1)
  • ng0177 (1)
  • uekerman (1)
  • muh-hassani (1)
  • ajaust (1)
  • mmichelis (1)
  • valentin-seitz (1)
Pull Request Authors
  • BenjaminRodenberg (63)
  • IshaanDesai (18)
  • NiklasVin (9)
  • giuliatum (2)
  • muh-hassani (1)
  • boris-martin (1)
  • valentin-seitz (1)
  • MakisH (1)
Top Labels
Issue Labels
enhancement (17) bug (8) help wanted (6) student (6) documentation (5) compatibility (4) usability (4) wontfix (4) question (3) maintainability (3) breaking change (1)
Pull Request Labels
enhancement (17) bug (16) compatibility (9) maintainability (7) breaking change (4) documentation (4) usability (2) student (1)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 145 last-month
  • Total dependent packages: 0
    (may contain duplicates)
  • Total dependent repositories: 3
    (may contain duplicates)
  • Total versions: 16
  • Total maintainers: 1
pypi.org: fenicsprecice

FEniCS-preCICE adapter is a preCICE adapter for the open source computing platform FEniCS.

  • Versions: 14
  • Dependent Packages: 0
  • Dependent Repositories: 1
  • Downloads: 145 Last month
Rankings
Forks count: 9.8%
Dependent packages count: 10.1%
Stargazers count: 11.9%
Average: 15.5%
Dependent repos count: 21.6%
Downloads: 24.3%
Maintainers (1)
Last synced: 6 months ago
conda-forge.org: fenicsprecice

preCICE-adapter for the open source computing platform FEniCS. Note: The adapter currently only supports 2D simulations in FEniCS.

  • Homepage: https://precice.org
  • License: LGPL-3.0-or-later
  • Latest release: 1.3.0
    published about 4 years ago
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 2
Rankings
Dependent repos count: 20.3%
Average: 40.7%
Forks count: 42.7%
Stargazers count: 48.4%
Dependent packages count: 51.6%
Last synced: 6 months ago

Dependencies

setup.py pypi
  • mpi4py *
  • numpy >=1.13.3
  • pyprecice >=2.0.0
  • scipy *