Feel++

From Wikipedia, the free encyclopedia

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

Faits en bref Environnement, Type ...
Feel++
Informations
Environnement Linux, Mac OS X.
Type Calcul numérique
Licence LGPL/GPL
Site web www.feelpp.org
Fermer

Histoire

Exemple

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

#include <feel/feel.hpp>
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

Voir aussi

Related Articles

Wikiwand AI