User Manual
This is the Feel++ user manual version 0.109.
1. Authors
The Feel++ user manual is actively developed by Christophe Prud’homme, Vincent Chabannes, Guillaume Dollé.
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.
2. What is Feel++?
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.
2.1. Feel++
-
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
2.2. Feel++ Toolboxes
Feel++ Toolboxes provides :
-
libraries to manipulate physics based models and couple them
-
a set of mono and multi-physics application readily available :
-
fluid mechanics
-
solid mechanics
-
heat transfer
-
fluid structure interaction
-
electro and magnetostatic
-
thermoelectric
-
levelset and multifluid
-
-
pyFeel++ Toolboxes which provides an interface to the different physical based models and reproduces the main toolbox applications in Python.
3. What is the purpose of this manual ?
The purpose of this manual is to allow the Feel++ user
-
get started with Feel++ and its toolboxes using Docker or Singularity.
4. What is the scope of this manual?
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.
5. Who is this book for?
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.
6. Where to discuss about this manual
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 support@feelpp.org. |
7. How to contribute to this manual
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.
8. Licenses
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.
9. Conventions
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 \$
or >
.
this is a general note. |
this is a general warning. |
be cautious |
Hereafter, in the context of tutorial or the documentation of a specific process, four difficulty levels can be displayed:
-
Difficulty: easy!
-
Difficulty: average!
-
Difficulty: advanced!
-
Difficulty: hard!