EC1_Vent — EN 1991-1-4¶
Actions du vent selon EN 1991-1-4 et l'Annexe Nationale Française.
vent ¶
building
module-attribute
¶
Action_wind
module-attribute
¶
Batiment ¶
Bases: Projet
Classe définissant la géométrie d'un bâtiment pour les calculs de structure.
Cette classe décrit les dimensions principales du bâtiment et les caractéristiques de sa toiture, nécessaires pour le calcul des charges climatiques (neige, vent) et sismiques.
Attributs de classe
ETAGE (tuple): Liste des niveaux courants (RDC à Toiture).
Initialise les dimensions du bâtiment.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
h_bat
|
m
|
Hauteur totale du bâtiment en mètres, mesurée depuis le soubassement rigide ou les fondations (référence sismique). |
required |
d_bat
|
m
|
Largeur du bâtiment en mètres (dimension perpendiculaire au vent dominant pour le calcul du vent). |
required |
b_bat
|
m
|
Longueur du bâtiment en mètres. |
required |
alpha_toit
|
float
|
Pente du premier versant de toiture en degrés. 0° pour un toit plat, valeur positive pour un versant. |
required |
alpha_toit2
|
float
|
Pente du second versant pour les toits à deux pans (0° si toit à un seul versant ou plat). Defaults to 0. |
0
|
*args
|
Arguments positionnels transmis à la classe parent Projet. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Projet (ingenieur, code_INSEE, alt, etc.). |
{}
|
Vent ¶
Bases: Batiment
Initialise le calcul de l'action du vent selon l'EN 1991-1-4 et son Annexe Nationale française.
Hérite de Batiment. La zone de vent est déterminée automatiquement via le code_INSEE du projet.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
z
|
float
|
Hauteur de référence z_e en m selon EN 1991-1-4 §7.2.2 (hauteur à laquelle est étudiée la pression de vent). |
required |
terrain
|
str
|
Catégorie de rugosité du terrain selon EN 1991-1-4 §4.3.2 : "0", "II", "IIIa", "IIIb" ou "IV". Defaults to "II". |
CAT_TERRAIN
|
oro
|
str
|
Catégorie orographique selon AN français : - "Aucun" : pas d'effet orographique (C_0 = 1). - "Cas 1" : obstacles de hauteurs variées (calcul interactif des altitudes environnantes). - "Cas 2" : non implémenté (levée d'une ValueError). Defaults to "Aucun". |
CAT_ORO
|
CsCd
|
float
|
Coefficient structurel selon EN 1991-1-4 §6. Defaults to 1. |
1
|
**kwargs
|
Arguments transmis à la classe parent Batiment. |
{}
|
Vb_0
property
¶
Retourne la vitesse de base de référence V_b,0 en m/s selon EN 1991-1-4 AN §4.2.
Valeur déterminée par la zone de vent du projet (code_INSEE → zone 1 à 4, ou DOM).
Returns:
| Type | Description |
|---|---|
|
forallpeople.Physical: V_b,0 en m/s. |
Vb
property
¶
Retourne la vitesse de référence du vent V_b en m/s selon EN 1991-1-4 §4.2(2).
Formule : V_b = C_dir × C_season × V_b,0. C_dir et C_season sont pris égaux à 1 (valeurs conservatrices de l'AN français).
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, V_b) où V_b est la vitesse de référence en m/s (avec unité si.m/si.s). |
rayon_secteur_angu
property
¶
Retourne le rayon du secteur angulaire R à l'intérieur duquel la rugosité est à qualifier selon AN français.
Formule : R = max(23 × z^1.2, 300) en m.
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, R) où R est le rayon du secteur angulaire en m (avec unité si.m). |
Co_z
property
¶
Retourne le coefficient orographique C_0(z) selon l'AN français de l'EN 1991-1-4 §4.3.3.
- "Aucun" : C_0 = 1 (pas d'effet orographique).
- "Cas 1" : C_0 calculé en fonction de delta_AC et de la hauteur z.
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, C_0_z) où C_0_z est le coefficient orographique (sans unité, ≥ 1). |
Vm_z
property
¶
Retourne la vitesse moyenne du vent V_m(z) en m/s selon EN 1991-1-4 §4.3.1.
Formule : V_m(z) = C_r(z) × C_0(z) × V_b.
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, V_m_z) où V_m_z est la vitesse moyenne en m/s (avec unité si.m/si.s). |
Qb
property
¶
Retourne la pression dynamique de référence Q_b en N/m² selon EN 1991-1-4 §4.5(1) (valeur informative).
Formule : Q_b = 0.5 × ρ × V_b².
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, Q_b) où Q_b est la pression dynamique de référence en N/m² (avec unité si.Pa). |
Qp_z
property
¶
Retourne la pression dynamique de pointe Q_p(z) en N/m² selon EN 1991-1-4 §4.5(1).
Formule : Q_p(z) = (1 + 7 × I_v(z)) × 0.5 × ρ × V_m(z)². Tient compte de la turbulence via I_v(z).
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, Q_p_z) où Q_p_z est la pression de pointe en N/m² (avec unité si.Pa). |
Ce_z
property
¶
Retourne le coefficient d'exposition C_e(z) selon EN 1991-1-4 §4.5(2) (valeur informative).
Formule : C_e(z) = Q_p(z) / Q_b.
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, C_e_z) où C_e_z est le coefficient d'exposition (sans unité). |
We ¶
Retourne la pression aérodynamique extérieure W_e en N/m² selon EN 1991-1-4 §5.2(1).
Formule : W_e = Q_p(z) × C_pe.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Cpe
|
float
|
Coefficient de pression extérieure (C_pe,10 ou C_pe,1 selon l'aire chargée). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, W_e) où W_e est la pression extérieure en N/m² (avec unité si.Pa). |
Wi ¶
Retourne la pression aérodynamique intérieure W_i en N/m² selon EN 1991-1-4 §5.2(2).
Formule : W_i = Q_p(z) × C_pi. Les valeurs standard de C_pi sont +0.2 (pression) et -0.3 (dépression) selon CPI.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Cpi
|
float
|
Coefficient de pression intérieure (C_pi). |
required |
Returns:
| Name | Type | Description |
|---|---|---|
tuple |
(latex_string, W_i) où W_i est la pression intérieure en N/m² (avec unité si.Pa). |
Ffr ¶
Retourne les forces de frottement sur le bâtiment en N selon l'EN 1991-1-4 §5.7/7.5.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
Afr
|
float
|
aire de référence en m² correspondant à la surface d'application des forces de frottement. Il convient d'appliquer les forces de frottement sur la partie des surfaces extérieures parallèle au vent, située au-delà d'une certaine distance des bords au vent ou des angles au vent de la toiture, distance égale à la plus petite valeur de 2 · b ou 4 · h . |
required |
Cfr
|
str
|
type de surface de frottement - Lisse / exemple: acier, béton lisse - Rugueuse / exemple: béton brut, bardeaux bitumés(shingles) - Très rugueuse / exemple: ondulation, nervures, pliures |
CFR
|
Returns:
| Name | Type | Description |
|---|---|---|
float |
effort en N |
K_red_U ¶
Calcule et stocke le coefficient de défaut de corrélation K_red selon EN 1991-1-4 §7.2.2(3).
Applicable uniquement aux faces D et E des murs verticaux. Formule dépendante de h_bat/d_bat : - h/d ≥ 5 : K_red = 1.0. - h/d ≤ 1 : K_red = 0.85. - 1 < h/d < 5 : interpolation linéaire. Le résultat est stocké dans self.Kred_U.
Murs_verticaux ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur les murs verticaux selon EN 1991-1-4 §7.2.2.
Le calcul est effectué automatiquement pour les deux directions de vent (0° et 90°). Les zones sont A, B, C, D, E déterminées à partir de e = min(b, 2h) pour chaque direction. Les C_pe sont interpolés selon le rapport h/d et l'aire chargée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. Si 1 < load_area < 10, interpolation logarithmique entre C_pe,1 et C_pe,10. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
{"A": ..., "B": ..., "C": ..., "D": ..., "E": ...} avec les dimensions en m. |
get_Cpe ¶
Retourne les coefficients de pression extérieure C_pe pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_pe par zone (A, B, C, D, E), interpolés selon h/d et load_area. |
show_zonage ¶
Affiche l'image du zonage pour les murs verticaux selon EN 1991-1-4 §7.2.2.
Toiture_terrasse_acrotere ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur une toiture terrasse avec acrotère selon EN 1991-1-4 §7.2.3.
Le calcul est effectué pour la direction de vent 0° uniquement (symétrie). Les zones de pression sont F, G, H, I déterminées à partir de e = min(b, 2h). Les C_pe sont interpolés selon le rapport hp/h (plafonné à 0.1) et l'aire chargée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. Si 1 < load_area < 10, interpolation logarithmique entre C_pe,1 et C_pe,10. |
required |
hp
|
float
|
Hauteur de l'acrotère en m. |
required |
h
|
float
|
Hauteur du bâtiment sous l'acrotère en m. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent 0°.
Returns:
| Name | Type | Description |
|---|---|---|
dict |
{"F": ..., "G": ..., "H": ..., "I": ...} avec Longueur, Largeur et Surface en m / m². |
get_Cpe ¶
Retourne les coefficients de pression extérieure C_pe pour la direction de vent 0°.
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_pe par zone (F, G, H, I), interpolés selon hp/h et load_area. |
show_zonage ¶
Affiche l'image du zonage pour une toiture terrasse avec acrotère selon EN 1991-1-4 §7.2.3.
Toiture_1_pant ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur une toiture à un versant selon EN 1991-1-4 §7.2.4.
Le calcul est effectué pour les directions de vent 0°, 90° et 180°. Les zones de pression sont F, G, H (directions 0° et 180°) et F_up/F_low, G, H, I (direction 90°). Les C_pe sont interpolés en fonction de alpha_toit et de l'aire chargée.
Note
Cette classe ne prend en compte qu'une seule valeur d'alpha_toit.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. Si 1 < load_area < 10, interpolation logarithmique entre C_pe,1 et C_pe,10. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
direction
|
str
|
Direction du vent ("0°", "90°" ou "180°"). Defaults to ("0°", "90°", "180°"). |
('0°', '90°', '180°')
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
Zones avec Longueur, Largeur et Surface en m / m². - 0° / 180° : zones F, G, H. - 90° : zones F_up/F_low, G, H, I. |
get_Cpe ¶
Retourne les coefficients de pression extérieure C_pe pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
direction
|
str
|
Direction du vent ("0°", "90°" ou "180°"). Defaults to ("0°", "90°", "180°"). |
('0°', '90°', '180°')
|
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_pe par zone, interpolés selon alpha_toit et load_area. |
show_zonage ¶
Affiche l'image du zonage pour une toiture à 1 versant selon EN 1991-1-4 §7.2.4.
Toiture_2_pants ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur une toiture à deux versants selon EN 1991-1-4 §7.2.5.
Le calcul est effectué pour les directions de vent 0° et 90°. Les zones de pression sont F, G, H, I, J (direction 0°) et F, G, H, I (direction 90°). Les C_pe sont interpolés en fonction de alpha_toit et de l'aire chargée.
Note
Cette classe suppose des pentes identiques sur les deux versants et un faîtage centré. Un seul alpha_toit est pris en compte.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. Si 1 < load_area < 10, interpolation logarithmique entre C_pe,1 et C_pe,10. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
Zones avec Longueur, Largeur et Surface en m / m². - 0° : zones F, G, H, I, J. - 90° : zones F, G, H, I. |
get_Cpe ¶
Retourne les coefficients de pression extérieure C_pe pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_pe par zone, interpolés selon alpha_toit et load_area. |
show_zonage ¶
Affiche l'image du zonage pour une toiture à 2 versants selon EN 1991-1-4 §7.2.5.
Toiture_isolee_1_pant ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur une toiture isolée à un versant selon EN 1991-1-4 §7.3.
Le calcul est effectué pour les directions de vent 0° et 90°. Les zones de pression nettes sont A, B, C, déterminées à partir des dimensions du bâtiment. Les C_p nets (pression et dépression simultanées) sont interpolés selon phi et alpha_toit. Utilise les coefficients C_p (pression nette) et non C_pe/C_pi séparément.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
float
|
Degré d'obstruction sous la toiture (0 = libre, 1 = totalement obstruée). Valeur comprise entre 0 et 1. Interpolation linéaire pour les valeurs intermédiaires. |
required |
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
{"A": ..., "B": ..., "C": ...} avec Longueur, Largeur et Surface en m / m². |
get_Cp ¶
Retourne les coefficients de pression nette C_p pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_p nets par zone (A, B, C), interpolés selon phi et alpha_toit. Inclut les valeurs maximales ("max") et pour la valeur de phi donnée. |
show_zonage ¶
Affiche l'image du zonage pour une toiture isolée à un versant selon EN 1991-1-4 §7.3.
Toiture_isolee_2_pants ¶
Bases: Vent
Crée un objet pour le calcul des pressions sur une toiture isolée à deux versants selon EN 1991-1-4 §7.3.
Le calcul est effectué pour les directions de vent 0° et 90°. Les zones de pression nettes sont A, B, C, D, déterminées à partir des dimensions du bâtiment. Les C_p nets sont interpolés selon phi et alpha_toit. Utilise les coefficients C_p (pression nette) et non C_pe/C_pi séparément.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
phi
|
float
|
Degré d'obstruction sous la toiture (0 = libre, 1 = totalement obstruée). Valeur comprise entre 0 et 1. Interpolation linéaire pour les valeurs intermédiaires. |
required |
load_area
|
float
|
Aire chargée en m² pour le calcul des éléments ou des fixations. |
required |
*args
|
Arguments positionnels transmis à la classe parent Vent. |
()
|
|
**kwargs
|
Arguments nommés transmis à la classe parent Vent. |
{}
|
get_geo ¶
Retourne les dimensions des zones de pression pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Name | Type | Description |
|---|---|---|
dict |
{"A": ..., "B": ..., "C": ..., "D": ...} avec Longueur, Largeur et Surface en m / m². |
get_Cp ¶
Retourne les coefficients de pression nette C_p pour la direction de vent donnée.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
dir
|
str
|
Direction du vent ("0°" ou "90°"). Defaults to ("0°", "90°"). |
('0°', '90°')
|
Returns:
| Type | Description |
|---|---|
|
pandas.DataFrame: C_p nets par zone (A, B, C, D), interpolés selon phi et alpha_toit. Inclut les valeurs maximales ("max") et pour la valeur de phi donnée. |
show_zonage ¶
Affiche l'image du zonage pour une toiture isolée à deux versants selon EN 1991-1-4 §7.3.
handcalc ¶
handcalc(override: str = 'short', precision: int = 2, jupyter_display: bool = False, left: str = '\\[', right: str = '\\]')
Remplace handcalcs.decorator.handcalc — compatible Python 3.13+.
Usage identique à l'original :
@handcalc(override="short", precision=2, jupyter_display=self.JUPYTER_DISPLAY,
left="\\[", right="\\]")
def val():
x = a + b
return x
latex_str, result = val()
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
override
|
str
|
"short" (défaut) ou "long". |
'short'
|
precision
|
int
|
Nombre de décimales pour les valeurs numériques. |
2
|
jupyter_display
|
bool
|
Si True, affiche le LaTeX dans Jupyter via IPython.display. |
False
|
left / right
|
Délimiteurs LaTeX du bloc (ex. "$$", "\["). |
required |
Returns:
| Type | Description |
|---|---|
|
Décorateur qui transforme la fonction en un appelable retournant |
|
|
|
interpolation_lineaire ¶
Fait une interpolation linéaire pour trouver un résultat y entre deux valeur xa et xb
interpolation_logarithmique ¶
Fait une interpolation linéaire pour trouver un résultat y entre deux valeur xa et xb