GithubHelp home page GithubHelp logo

feelpp / book.feelpp.org Goto Github PK

View Code? Open in Web Editor NEW
9.0 22.0 30.0 144 MB

:globe_with_meridians: The Feel++ Book

Home Page: https://docs.feelpp.org

License: GNU General Public License v3.0

Makefile 1.37% TeX 12.31% Shell 0.73% Dockerfile 0.51% Jupyter Notebook 85.07%
feelpp finite-elements fem book user-manual developer-manual toolbox-manual contributor-manual tutorial mathematical-framework

book.feelpp.org's Introduction

Feel++: Finite Element Embedded Library in C++

Zenodo DOI Build Status Build and Deploy Index

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++ is

  1. a versatile mathematical kernel solving easily problems using different techniques thus allowing testing and comparing methods, e.g. cG versus dG.

  2. 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.

  3. 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.

  4. a library that offers solving strategies that scales up to thousands and even tens of thousands of cores.

  5. a library entirely in C++ allowing to create C++ complex and typically non-linear multi-physics applications currently in industry, physics and health-care.

Read the Feel++ Book

All the Feel++ manuals are available at http://book.feelpp.org.

Help and Support

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 Gitter Feel++ salon.

Join the chat at https://gitter.im/feelpp/feelpp

Contribute to this documentation

You can contribute to improve this documentation on GitHub.

Generating the website

Feel++ uses Antora to generate the website http://docs.feelpp.org.

❗

Prerequisites : npm, curl

You can install these dependencies on Ubuntu/Debian OS by executing :

sudo apt install npm curl

Once you have installed prerequisites, follow the next steps to generate a local preview of the website http://docs.feelpp.org.

git clone https://github.com/feelpp/book.feelpp.org.git # (1)
git clone https://github.com/feelpp/toolbox.git # (2)
cd book.feelpp.org # (3)
npm install # (4)
npm run dev # (5)
npm run serve # (6)
  1. clone the source for the website

  2. clone the source for toolbox cases doc

  3. go the toplevel directory

  4. install antora and some other dependencies

  5. build a local preview of the website with Antora

  6. start the node.js webserver serve, see the docs.

book.feelpp.org's People

Contributors

cdaversin avatar ddrous avatar dependabot[bot] avatar francoisdh avatar gdolle avatar ggrossetie avatar gqmp avatar guillaume-steimer avatar idrissaniakh avatar jbwahl avatar lberti avatar lsala avatar miinguyen avatar olmes-sch avatar philippericka avatar prudhomm avatar romainhild avatar thomas-saigre avatar trophime avatar valletromain avatar vincentchabannes avatar youssefessousy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

book.feelpp.org's Issues

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

update documentation after update of feelpp-env

Now feelpp-env incorporates tools to

  • make a release automatically of feel++ using various tools (curl, jq, github_changelog_generator...)
  • asciidoctor tools suite for book.feelpp.org

We could probably have the book install in a docker image very soon

move book architecture to antora

Context

book.feelpp.org is based currently on Jekyll and Asciidoc. Antora has been developed and provides a nice framework to document code using Asciidoc.
After a few tests, it is clear that it is the way to go for our documentation.

Architecture

Antora has a flexible architecture described here.

I propose that we split book into several manuals as currently done on the website and reorganize ala antora. We would have

  • User Manual
  • Developer Manual
  • The Mathematics of Feel++ (we merge fem, anafunc, rb and hdg)
  • Feel++ Toolboxes Manual
  • Infrastructure manual (Atlas, Mesocentre, ...)

/cc @feelpp/mso4sc

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

Documentation FSI

I can't find the FSI toolbox documentation explaining the various possible options that one can choose, (neither in books nor in docs)

Add documentation for singularity

Provide documentation for Feel++ singularity images

  • how to download
  • how to run applications
  • provides examples for sequential and parallel applications

Add postprocessing section documentation

We should add a section to explain how to post process data with feel++ (basics, + ref to paraview, gmsh, ... doc)

In particular, how to use

  • paraview Insitu with feel++
  • paraview pvserver
  • paraweb (later)
  • gmsh

etc...

Review User Manual

review the user manual and proposes fixes, modifications, additions...
http://docs.feelpp.org/user/0.1/index.html

  • Does it answer basic questions about Feel++?
  • Does it provide proper installation procedures?
  • Does it provide basic examples?
  • Does it enable a quick start with Feel++? (within 1 hour counting software download)

Add CmakeLists.txt template

Looking at the minimal example there is no cmake file example, unless I'm mistaken.

Maybe we should add the following:

cmake_minimum_required(VERSION 2.8)

if ( ${CMAKE_MAJOR_VERSION} EQUAL 3 AND ${CMAKE_MINOR_VERSION} GREATER 3 )
  message(STATUS "[feelpp] use OLD policy CMP0064" )
  cmake_policy(SET CMP0064 OLD)
endif()

project(minimalexample)
set(PROJECT_SHORTNAME "me")

if ( ${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR} )
 find_package(Feel++ PATHS $ENV{FEELPP_DIR}/share/feelpp/feel/cmake/modules /usr/share/feelpp/feel/cmake/modules /usr/local/share/feelpp/feel/cmake/modules ) 
 if(NOT FEELPP_FOUND)
      message(FATAL_ERROR "Feel++ was not found on your system. Make sure to install it and specify the FEELPP_DIR to reference the installation directory.")
  endif()
endif()

include_directories(${CMAKE_CURRENT_SOURCE_DIR})
include_directories(${CMAKE_CURRENT_BINARY_DIR})

feelpp_add_application( myapp SRCS myapp.cpp CFG myapp.cfg )

Add ADR, Stokes and Elasticity examples

There is addition of the ADR, Stokes and Elasticity examples to be added to the math manual and incorporated into the user manual in the learn by example section.

the Laplacian example should be most to the math manual to be consistent

Document Feel++ data management plan

The Feel++ data management needs to be documented and should be available online in the feelpp books/docs.

  • A first idea: create a module that should appear in the user, dev and toolbox manuals and contain the overall strategy.
  • A second idea: split the management plan between user, dev and toolbox manuals

what do you think?
I would prefer a overall picture in one module

review and update dev manual

The dev manual is currently in a sorry state and split in non-comprehensive structure.
it needs a major overhaul

Create a functional analysis book

All the functional analysis theory should go in one book for

  • finite element method
  • reduced basis method
  • hybridized discontinuous Galerking method

and more...

Missing link on Feel++ book on how to Compile Boost C++ library

@lberti commented on Mon Apr 09 2018

I was trying to install Feel++ in my computer but it's Ubuntu 16.04 and it has the following problem, already reported in the webpage. The link on how to recompile Boost is not working.

"We are unfortunately stung by the ABI change in GCC 6 when using clang. You need to recompile the Boost C++ libraries to be able to use clang, see the section in the Annexes on Compiling Boost."


@gdolle commented on Mon Apr 09 2018

Hi @lberti,

Here you have the documentation on how to compile boost,
https://www.boost.org/doc/libs/1_66_0/more/getting_started/unix-variants.html

you can have a look at how we build boost for Feel++ on our ubuntu-16.04 docker images:
https://github.com/feelpp/docker/blob/2b53fc9ab1a730327b6f52ed4d06e691d6d36cc8/feelpp-env/Dockerfile-boost

Currently this issue is documentation related, I move this issue in the appropriate repository and close this one.

NB: We are currently moving/updating the documentation to this http://docs.feelpp.org don't hesitate to give us feedback.

Bool missing files

@prudhomm it seems there the file math/fem/macros.tex is missing and the stylesheet (for index.html, stylesheets/custom.css) seems not up to date, I'have blank background from my side

Add documentation of basic toolbox usage

Add in book.feelpp.org and book.mso4sc CSM toolbox usage, eg torsionbar ?
use include in order to deploy on book.mso4sc
describe

  • model
  • expected results
  • expected performance

This is necessary for the MSO4SC project to verify and validate that the application that we run, are indeed running properly

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

review and update dev manual

The dev manual is currently in a sorry state and split in non-comprehensive structure.
it needs a major overhaul

review and update dev manual

The dev manual is currently in a sorry state and split in non-comprehensive structure.
it needs a major overhaul

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

Document usage of Exporter including within loops

We should document the way Exporter should be used within loops (eg time loops)

For example writing this in a loop

    auto e = exporter( _mesh=mesh );
    e->addRegions();
    e->step(t)->add( "u", u );
    e->step(t)->add( "p", p );
    e->save();

at time t would overwrite results at previous time steps.
It should have written this way instead.

auto e = exporter( _mesh=mesh );
for( double t = dt; t < T; t += dt )
{
    // do stuff with u and p
    e->step(t)->add( "u", u );
    e->step(t)->add( "p", p );
    e->save();
}

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

Feature/antora

The PR provides an entirely new framework for our documentation. It is based on Antora .
It implements:

  • #53 review/update dev manual
  • #52 add angiotk manual
  • #51 documentation for data mangement plan
  • #50 journaling and benchmarking documentation
  • #49 the documentation for alsacalcul
  • #48 a review of the user manual
  • #47 re-design the architecture to fit Antora design
  • #45 new toolbox examples and benchmarks from http://github.com/feelpp/toolbox
  • #44 basic documentation for toolbox usage
  • #43 math fixes in dev man for algebraic solutions

review and update dev manual

The dev manual is currently in a sorry state and split in non-comprehensive structure.
it needs a major overhaul

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.