This is the Feel++ user manual version 0.107.
The Feel++ project is the flagship software of Cemosis, the Center of Modeling and Simulation in Strasbourg for mathematics, industry and other disciplines, is currently managed by Christophe Prud’homme, Professor in applied mathematic and scientific computing at the University of Strasbourg, France.
Feel++ is a unified C++ implementation of Galerkin methods (finite and spectral element methods) in 1D, 2D and 3D to solve partial differential equations.
Feel++ comprises three components: Feel++:: the mathematical kernel libraries, applications and tools. Feel++ Toolboxes:: the Feel++ mono and multi-physics toolboxes to solve physic based problems Feel++ Model Order Reduction:: the Feel++ model order reduction applications, tools and models
Each component provides a Python interface to access that mimic the C++ counterpart.
a versatile mathematical kernel solving easily problems using different techniques thus allowing testing and comparing methods, e.g. cG versus dG.
a small and manageable library which nevertheless encompasses a wide range of numerical methods and techniques and in particular reduced order methods such as the reduced basis method.
a software that follows closely the mathematical abstractions associated with partial differential equations (PDE) and in particular the finite element mathematical framework and variational formulations.
a library that offers solving strategies that scales up to thousands and even tens of thousands of cores.
a library entirely in C++ allowing to create C++ complex and typically non-linear multi-physics applications currently in industry, physics and health-care.
pyFeel++ to manipulate Feel++ mathematical objects in Python to solve PDE
Feel++ Toolboxes provides :
libraries to manipulate physics based models and couple them
a set of mono and multi-physics application readily available :
fluid structure interaction
electro and magnetostatic
levelset and multifluid
pyFeel++ Toolboxes which provides an interface to the different physical based models and reproduces the main toolbox applications in Python.
We need to define first what is a Feel++ user to define the scope.
- Feel++ User
A Feel++ user can be either
an application-user who runs the applications provided by Feel++ either via Docker or via an installation on a system or infrastructure.
a dsel-user who implements C++ code using Feel++ Galerkin domain specific embdedded language, see e.g. Laplacian.
a Python developer who uses pyFeel++ to solve PDEs.
This book discusses the Feel++ user perspective. This book does not discuss or present in-depth Feel++ API or internal programming but rather present the principles and essential ingredients to get started.
This book is for students, engineers, scientists and researchers who want to use Feel++:
solve PDEs using Feel++ toolboxes;
solve PDEs using the embedded language for Galerkin methods;
more generally develop numerical methods in a framework readily available for high performance computing.
To discuss this manual, we provide Slack channel (recommended) to announce, support and discuss book modifications. Don’t hesitate to participate to the discussions!
|Joining Slack channels works by invitation, to receive an invitation send an email to email@example.com.|
We’re always happy to help out with Feel++ or any other questions you might have. You can ask a question or signal an issue at the Slack support salon.
If you find an bug or have a feature proposal, please check first the issue does not already exist in the issue list. If not, post a new issue on the github repository. If you want to go further, you can contribute to the code by forking the repository, then proposing a pull request (PR) into the develop branch.
For more information about PR, see github documentation.
Feel++ and its documentation is copyrighted
Copyright © 2010-2018 by Feel++ Consortium
Copyright © 2005-2015 by Université Joseph Fourier (Grenoble, France)
Copyright © 2005-2015 by University of Coimbra (Portugal)
Copyright © 2011-2018 by Université de Strasbourg (France)
Copyright © 2011-2018 by CNRS (France)
Copyright © 2005-2006 by Ecole Polytechnique Fédérale de Lausanne (EPFL, Switzerland)
Free use of this software is granted under the terms of the LGPL License.
See the LICENSE file for details
This book is part of Feel++ and is licensed under the LGPL license.
The following typographical conventions are used in the book
Italic indicates new terms
typewriter is used on program listings as well as when referring to
programming elements, e.g. functions, variables, statements, data types,
environment variables or keywords.
\$ typewriter or
> typewriter displays commands that the user types literally without the
|this is a general note.|
|this is a general warning.|
Hereafter, in the context of tutorial or the documentation of a specific process, four difficulty levels can be displayed: