Aller au contenu

1 · Hello workflow

  • Un compte MecaPy actif (login OK).
  • Le package eurocode-1-1-4 (version ≥ 0.3.0) est déployé sur ton environnement — sinon contacte ton administrateur.

À la fin de ce chapitre, tu sauras :

  • Créer un workflow vide depuis l’espace Workflows.
  • Ajouter un nœud d’entrée (input) typé.
  • Ajouter un nœud fonction depuis le catalogue des packages.
  • Créer un nœud constante depuis un port d’entrée vacant (la manière la plus rapide pour figer une valeur normative).
  • Connecter les ports en respectant les types.
  • Sauvegarder et exécuter le workflow.
  • Lire le résultat d’un calcul.

L’Eurocode 1 partie 1-4 (vent) définit la pression dynamique de pointe qp(z)q_p(z) à une altitude zz au-dessus du sol :

qp(z)  =  (1+7Iv(z))    12ρvm(z)2q_p(z) \;=\; \bigl(1 + 7\,I_v(z)\bigr)\;\cdot\;\tfrac{1}{2}\,\rho\,v_m(z)^{2}

Iv(z)I_v(z) est l’intensité de turbulence et vm(z)v_m(z) la vitesse moyenne, toutes deux calculées depuis la vitesse de référence vb,0v_{b,0} (région climatique) et la rugosité du terrain — chaîne complète §4 :

vb=cdircseasonvb,0vm(z)=cr(z)c0(z)vbIv(z)=kIc0(z)ln(z/z0)\begin{aligned} v_b &= c_\text{dir} \cdot c_\text{season} \cdot v_{b,0} \\ v_m(z) &= c_r(z) \cdot c_0(z) \cdot v_b \\ I_v(z) &= \frac{k_I}{c_0(z) \cdot \ln(z/z_0)} \end{aligned}

Les coefficients cdirc_\text{dir}, cseasonc_\text{season}, c0c_0 et kIk_I valent 1,0 dans les conditions standard ; le package les expose avec cette valeur par défaut, donc on n’aura pas à les câbler.

Pour notre exemple :

  • vb,0=26 m/sv_{b,0} = 26\ \text{m/s} (région française 3, Bretagne intérieure)
  • terrain="II"\text{terrain} = \texttt{"II"} (zone à végétation basse, fermes isolées)
  • ze=3,40 mz_e = 3{,}40\ \text{m} (altitude du centre de notre panneau)
  • ρ=1,25 kg/m3\rho = 1{,}25\ \text{kg/m}^{3} (masse volumique de l’air à basse altitude)

Résultat attendu : qp722 Pa=0,72 kN/m2q_p \approx 722\ \text{Pa} = 0{,}72\ \text{kN/m}^{2}.

  1. Créer le workflow

    Depuis le menu Workflows, clique sur + New workflow. Donne un nom : Tutoriel ch01 - Pression vent.

    Canvas vide juste après création du workflow

    Le canvas est la zone centrale où tu vas composer ton calcul, sous forme de graphe orienté. À gauche, la palette d’outils ; à droite, le panneau de propriétés (vide pour l’instant).

  2. Ajouter le nœud fonction qp

    On part de la fonction et on tirera les inputs depuis ses ports — c’est plus rapide que de placer les inputs d’abord.

    Clic droit sur le canvas → Add function node. Dans le picker :

    • Package : eurocode-1-1-4
    • Version : 0.3.0 (dernière déployée)
    • Function : qp

    Picker function ouvert sur eurocode-1-1-4 qp

    Le nœud apparaît avec ses ports d’entrée à gauche (vb,0v_{b,0}, zz, terrain\text{terrain}, ρ\rho, cdirc_\text{dir}, …) et sa sortie qpq_p à droite. Les ports avec une valeur par défaut (cdirc_\text{dir}, cseasonc_\text{season}, c0c_0, kIk_I — tous à 1,0) peuvent rester non-connectés : la fonction utilisera la valeur recommandée Eurocode automatiquement.

    Nœud fonction qp placé sur le canvas

  3. Créer les trois inputs depuis les ports

    Plutôt que d’aller chercher le nœud Input dans la palette, tu peux partir du port d’entrée : clique sur le point du port d’entrée à gauche du nœud qp, garde appuyé, et relâche sur une zone vide du canvas. Un popup apparaît :

    • Add input → crée un nœud Input typé et le câble pour toi.
    • Add constant → crée un nœud Constante typé et le câble.

    Fais cette manipulation 3 fois, une par port, en choisissant Add input. Chaque Input créé prend automatiquement le label <fonction>.<port> :

    Port de qpTypeLabel auto-rempli
    vb_0Velocityqp.vb_0
    zLengthqp.z
    terrainLiteral["0", "I", "II", "III", "IV"]qp.terrain

    Trois inputs créés depuis les ports et déjà câblés

  4. Créer la constante rho depuis son port

    Le port ρ\rho attend la masse volumique de l’air. Sa valeur normative est 1,25 kg/m31{,}25\ \text{kg/m}^3 — pas la peine d’en faire un input que l’utilisateur devrait re-saisir à chaque run.

    Refais la même manipulation que pour les inputs (clic sur le point du port ρ\rho, drag jusqu’à une zone vide du canvas, relâche), mais cette fois choisis Add constant dans le popup :

    Popup port-drop : Add input vs Add constant

    Le panneau de propriétés s’ouvre sur le nouveau nœud :

    • Label : rho
    • Type : Density (déjà rempli, hérité du port)
    • Value : 1.25

    Constante rho créée et câblée

    Les autres ports adimensionnels — cdirc_\text{dir}, cseasonc_\text{season}, c0c_0, kIk_I — restent non-connectés. La fonction utilisera leur valeur par défaut (1,0). On n’a donc à câbler que 4 entrées significatives sur 8.

  5. Ajouter le nœud de sortie

    Clic droit sur le canvas → Add output. Connecte la sortie qpq_p du nœud fonction sur le port d’entrée du nœud Output.

    Graphe complet, tout connecté

    Le canvas refuse les branchements incompatibles : si tu essaies de brancher un Velocity sur le port Pressure du nœud Output, l’edge n’est pas créée.

  6. Sauvegarder

    Clique sur Save. Une notification confirme la sauvegarde.

    Toast de confirmation après save

    Sous le capot, MecaPy a créé une version du workflow. Chaque sauvegarde produit une nouvelle version immuable — tu peux toujours revenir à un état précédent.

  7. Exécuter

    Clique sur Run (en haut à droite). Renseigne les 3 inputs :

    InputValeur
    qp.vb_026.0
    qp.z3.40
    qp.terrain"II"

    MecaPy schedule le calcul, qui se termine en quelques secondes. Sur la page du run, tu vois la valeur de sortie :

    qp    722 Paq_p \;\approx\; 722\ \text{Pa}

    Résultat du run avec qp visible

    Soit 0,72 kN/m² — cohérent avec l’Eurocode pour ce site et cette altitude.

  • Tu as composé un calcul normatif sous forme de graphe.
  • Le typage des ports a évité les erreurs d’unités à la construction (impossible de brancher un Velocity sur un port Length).
  • Les valeurs par défaut sur les facteurs adimensionnels recommandés Eurocode t’ont évité de câbler 4 nœuds redondants.
  • L’exécution a été reproductible : mêmes inputs → même résultat, toujours.

Si tu veux comparer ton graphe à la version de référence, ou éviter de tout re-cliquer pour le chapitre 2, tu peux importer le workflow directement :

📥 Télécharger ch01-pression-vent.workflow.yaml

Depuis l’espace Workflows, clique sur Import, sélectionne le fichier, et MecaPy recrée le graphe à l’identique (en s’appuyant sur le digest source du package eurocode-1-1-4 pour résoudre les références fonction). Tu n’as plus qu’à le lancer.

2 · Composition de plusieurs fonctions (à venir) : on ajoute Fw_signboard (force du vent sur panneau), puis on introduit les operators natifs (subtract, multiply) pour calculer le bras de levier et le moment au pied du poteau.