Feel++
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++.
Feel++
Environnement | Linux, Mac OS X. |
---|---|
Type | Calcul numérique |
Licence | LGPL/GPL |
Site web | www.feelpp.org |
Histoire
modifierExemple
modifierVoici 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
modifierRéférences
modifier- 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.
- 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.
- 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
- 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