Skip to content

zulianp/utopia

Repository files navigation

License CodeFactor

Utopia

Utopia is a C++ embedded domain specific language designed for parallel non-linear solution strategies and finite element analysis.

Main contributors of utopia

  • Dr. Patrick Zulian (Lead developer, Euler institute, USI)
  • Dr. Alena Kopanicakova (Linear and nonlinear solvers, Euler institute, USI)
  • Dr. Maria Giuseppina Chiara Nestola (MOOSE integrations, Euler institute, USI)
  • Andreas Fink (CSCS)
  • Dylan Ramelli (USI)
  • Dr. Nur Aiman Fadel (CSCS)

Developed at the Euler institute, USI, Lugano, Switzerland (https://www.euler.usi.ch/).

License

The software is realized with NO WARRANTY and it is licenzed under BSD 3-Clause license

Copyright

Copyright (c) 2015 Institute of Computational Science - USI Università della Svizzera Italiana, ETH-Z Eidgenössische Technische Hochschule Zürich

Getting started

(More in-depth guide here)

Downloading utopia

Clone the repository and its submodules

or for older git versions

Compiling utopia

Define the utopia path (you can also add it to your .bash_profile) export UTOPIA_DIR=

Go to the folder utopia/utopia:

  • mkdir bin
  • cd bin
  • cmake .. -DCMAKE_INSTALL_PREFIX=$UTOPIA_DIR
  • make
  • make install.

For compiling the very experimental FE library follow the instructions HERE. In the future the Utopia FE library will be removed from this repository and will have its own repo (after a large scale refactoring).

MacOS Big Sur

For avoiding problems with cmake define the following env variable export SYSTEM_VERSION_COMPAT=1.

Contact

Using Utopia for your research? Here is how you can cite it

If you use Utopia for your research please use the following bibtex entry to cite us

@article{utopia2021,
    author = {Zulian, Patrick and Kopani{\v{c}}{\'{a}}kov{\'{a}}, Alena and Nestola, Maria G C and Fadel, Nur and Fink, Andreas and VandeVondele, Joost and Krause, Rolf},
    title = {Large scale simulation of pressure induced phase‐field fracture propagation using {U}topia},
    journal = {CCF Transactions on High Performance Computing},
    year = {2021},
    month = {06},
    doi = {10.1007/s42514-021-00069-6},
    url = {https://doi.org/10.1007/s42514-021-00069-6},
    eprint = {https://doi.org/10.1007/s42514-021-00069-6},
}

Use the following bibtex to refer to the repository

@misc{utopiagit,
	author = {Patrick Zulian and Alena Kopani{\v c}{\'a}kov{\'a} and Maria Chiara Giuseppina Nestola and Andreas Fink and Nur Fadel and Alessandro Rigazzi and Victor Magri and Teseo Schneider and Eric Botter and Jan Mankau and Rolf Krause},
	title = {{U}topia: A performance portable {C}++ library for parallel linear and nonlinear algebra. {G}it repository},
	url = {https://bitbucket.org/zulianp/utopia},
	howpublished = {https://bitbucket.org/zulianp/utopia},
	year = {2016}
}

Several components are the outcome of specific authors' research work. For citing individual components add --citations to your run. For instance,

./my_app --citations

Docker containers

You can use a pre-installed version of utopia in a Docker container. See HERE for more details.

Contributions

Utopia Open-source repository (BSD 3-clause license)

  1. https://bitbucket.org/zulianp/utopia
  2. https://bitbucket.org/zulianp/par_moonolith (frontend and several integrations are in Utopia)

Simulations realized with Utopia

  1. Large-scale simulation of pressure-induced phase-field fracture propagation using Utopia
  2. 3D non-conforming mesh model for flow in fractured porous media using Lagrange multipliers
  3. Comparison and application of non-conforming mesh models for flow in fractured porous media using dual Lagrange multipliers

Contributions to benchmarks

  1. Verification benchmarks for single-phase flow in three-dimensional fractured porous media

Simulations using Utopia as a dependency

  1. Fully coupled dynamic simulations of bioprosthetic aortic valves based on an embedded strategy for fluid-structure interaction with contact
  2. An immersed boundary method for fluid-structure interaction based on variational transfer
  3. Space-time multilevel Monte Carlo methods and their application to cardiac electrophysiology

More details coming soon!