From b53b225132982eb7273a363628f7e6e9bec75f33 Mon Sep 17 00:00:00 2001 From: Gaspard Jankowiak Date: Mon, 30 Mar 2015 14:14:46 +0200 Subject: [PATCH] [fenics] bit about SpatialCoordinate --- divers.markdown | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/divers.markdown b/divers.markdown index f153770..116d2ce 100644 --- a/divers.markdown +++ b/divers.markdown @@ -18,7 +18,15 @@ L'interface Python de FEniCS est rassemblée dans le module `dolfin`, qu'il faut Dans la suite, `mesh` correspondra au maillage, et dans les expressions variationnelles, `u` à la fonction inconnue et `v` à la fonction test, et sont des fonctions scalaires, sauf indication contraire. `M` est la matrice de rigidité et `b` le membre de droite du système linéaire associé à la formulation variationnelle, construits avec les fonctions `assemble` ou `assemble_system`. -- Le vecteur normal au bord d'un maillage s'obtient avec la fonction `FacetNormal`, on peut dont définir des termes de bord, par exemple $\int \frac{\partial u}{\partial \nu}\, v\; \mathrm d x$, de la manière suivante : +- Par défaut, la variable d'espace n'est pas accessible directement pour l'écriture des formes variationnelles, mais on peut la définir avec `SpatialCoordinate`: + +~~~ +x = SpatialCoordinate(mesh) +form = inner(grad(u), grad(v))*dx + (x[0]**2 + x[1]**2)*u*v*dx +~~~ +{: .language-python} + +- De la même façon, le vecteur normal au bord d'un maillage s'obtient avec la fonction `FacetNormal`, on peut dont définir des termes de bord, par exemple $\int \frac{\partial u}{\partial \nu}\, v\; \mathrm d x$, de la manière suivante : ~~~ n = FacetNormal(mesh)