Feel++

Un article de Wikipédia, l'encyclopédie libre.
Feel++

Informations
Environnement Linux, Mac OS X.
Type Calcul numérique
Licence LGPL/GPL
Site web www.feelpp.org

Feel++ est un langage dédié (DSEL) à la résolution d'équations différentielles partielles à l'aide de méthodes de Galerkine généralisées [1],[2],[3],[4] (i.e. fem, hp/fem, méthodes spectrales) écrit en C++.

Histoire[modifier | modifier le code]

Exemple[modifier | modifier le code]

Voici un exemple de programme pour résoudre un laplacien avec le choix d'une condition de type dirichlet homogène sur un carré unité (voir Manuel en ligne Feel++).

using namespace Feel;

int main(int argc, char**argv )
{
    Environment env( _argc=argc, _argv=argv,
                     _desc=feel_options(),
                     _about=about(_name="mylaplacian",
                                  _author="Feel++ Consortium",
                                  _email="feelpp-devel at feelpp.org"));
    // create mesh
    auto mesh = unitSquare();

    // function space
    auto Vh = Pch<1>( mesh );
    auto u = Vh->element();
    auto v = Vh->element();

    // left hand side
    auto a = form2( _trial=Vh, _test=Vh );
    a = integrate(_range=elements(mesh), _expr=gradt(u)*trans(grad(v)) );

    // right hand side
    auto l = form1( _test=Vh );
    l = integrate(_range=elements(mesh), _expr=id(v));

    // boundary condition
    a+=on(_range=boundaryfaces(mesh), _rhs=l, _element=u, _expr=constant(0.) );

    // solve the equation a(u,v) = l(v)
    a.solve(_rhs=l,_solution=u);

    // export results
    auto e = exporter( _mesh=mesh );
    e->add( "u", u );
    e->save();
}

Voir aussi[modifier | modifier le code]

Références[modifier | modifier le code]

  1. Di Pietro, D. A., Gratien, J. M., & Prud’Homme, C. (2013). A domain-specific embedded language in C++ for lowest-order discretizations of diffusive problems on general meshes. BIT Numerical Mathematics, 53(1), 111-152.
  2. Prud’Homme, C., Chabannes, V., Doyeux, V., Ismail, M., Samake, A., & Pena, G. (2012, December). Feel++: A computational framework for galerkin methods and advanced numerical methods. In ESAIM: Proceedings (Vol. 38, pp. 429-455). EDP Sciences.
  3. Samake, A., Bertoluzza, S., Pennacchio, M., Prud’Homme, C., & Zaza, C. (2013). A Parallel Implementation of the Mortar Element Method in 2D and 3D. ESAIM: Proceedings, 43, 213–224. doi:10.1051/proc/201343014
  4. Daversin, C., Veys, S., Trophime, C., & Prud’Homme, C. (2013). A Reduced Basis Framework: Application to large scale non-linear multi-physics problems. ESAIM: Proceedings, 43, 225–254. doi:10.1051/proc/201343015

Liens externes[modifier | modifier le code]