Feel++

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

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(); } 

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]