Aller au contenu

EC3_Feu — EN 1993-1-2

Calcul en situation d'incendie pour les structures acier selon EN 1993-1-2.

feu

plat module-attribute

plat = Plat(10, 200, 200, 'S235', 3)

modele module-attribute

modele = _from_parent_class(plat, am_v=100, theta_a0=20, epsilon_m=0.8, time=60)

Plat

Plat(t: mm = 0, h: mm = 0, b: mm = 0, classe_acier: str = CLASSE_STEEL, classe_transv: int = ('1', '2', '3', '4'), **kwargs)

Bases: Projet

Initialise un élément acier de section rectangulaire selon l'EN 1993-1-1.

Définit la géométrie (t, b, h) et les caractéristiques mécaniques (fy, fu) en fonction de la classe d'acier et de l'épaisseur. Classe de base dont héritent Traction, Compression, Cisaillement et Flexion.

Parameters:

Name Type Description Default
t int

Épaisseur du plat en mm. Defaults to 0.

0
h int

Hauteur du plat en mm. Defaults to 0.

0
b int

Largeur du plat en mm. C'est cette dimension qui, avec t, détermine le moment quadratique pour les vérifications. Defaults to 0.

0
classe_acier str

Classe d'acier selon EN 1993-1-1 Tableau 3.1 (ex. "S235", "S275", "S355"). Defaults to "S235".

CLASSE_STEEL
classe_transv int

Classe transversale de la section (1, 2 ou 3) selon EN 1993-1-1 §5.5. La classe 4 n'est pas implémentée. Defaults to 1.

('1', '2', '3', '4')
**kwargs

Arguments transmis à la classe parent Projet.

{}

Raises:

Type Description
ValueError

Si classe_acier n'est pas dans CLASSE_STEEL.

ValueError

Si classe_transv n'est pas 1, 2 ou 3.

_TemperatureGaz

Bases: object

Courbes de température des gaz θ_g(t). Par défaut : feu nominal ISO 834 / EN 1991-1-2 §3.2.1(1): θ_g(t) = 20 + 345 * log10(8 * t_min + 1) (°C)

iso_834 staticmethod

iso_834(t_seconds: float) -> float

Température des gaz selon la courbe normale ISO 834 (t en secondes).

courbe_iso staticmethod

courbe_iso(times_min: float) -> list[float]

Calcule θ_g pour une liste de temps (min) sur ISO 834 avec intervalle de 5 secondes

_CoeffFeu

_CoeffFeu(theta: float, **kwargs)

Bases: object

Calcul des coefficients de réduction au feu selon l'EN 1993-1-2 pour l'acier carbone : - k_y,θ : réduction de la limite d'élasticité (Tableau 3.1) - k_b,θ : réduction de la résistance des boulons (Tableau 3.4)

Les valeurs sont interpolées linéairement entre les températures normalisées du code (en °C).

Parameters:

Name Type Description Default
theta float

température de calcul en °C.

required

ky_theta property

ky_theta: float

Coefficient k_y,θ (acier carbone) à la température theta.

kp_theta property

kp_theta: float

Coefficient k_p,θ (acier carbone) à la température theta.

kE_theta property

kE_theta: float

Coefficient k_E,θ (acier carbone) à la température theta.

kb_theta property

kb_theta: float

Coefficient k_b,θ (boulons) à la température theta.

kw_theta property

kw_theta: float

Coefficient k_w,θ (boulons) à la température theta.

synthese

synthese() -> dict

Renvoie un récapitulatif pratique sous forme de dict.

Feu_acier

Feu_acier(time: int, am_v: float, theta_a0: float = 20.0, epsilon_m: float = 0.7, rho_a: float = 7850.0, k_sh: float = 1.0, **kwargs)

Bases: Plat

Classe permettant le calcul de la température de l'acier θ_a(t) au feu selon EN 1993-1-2, §4.2 et retourne les facteurs de réduction k. Cette classe est hérité de la classe Plat du module EC3_Element_droit.py. Hypothèses : acier non protégé, flux convectif et radiatif simplifiés.

Formule incrémentale (Euler) : θ_a(t+Δt) = θ_a(t) + (k_sh * (A/V) / (ρ_a * c_a)) * (h_c(θ_g-θ_a) + ε_mΦσ((θ_r+273)^4-(θ_a+273)^4)) * Δt

Par défaut : ε_m = 0.7, Φ = 1.0, ρ_a = 7850 kg/m³, c_a = 600 J/kgK. Les températures sont en °C, le temps en minutes, A/V en m⁻¹.

Initialise le calcul thermique d'un élément acier non protégé selon EN 1993-1-2 §4.2.3.

Le calcul incrémental est exécuté automatiquement à l'instanciation (pas de 5 s). La courbe de feu utilisée est la courbe nominale ISO 834. Les résultats sont stockés dans self.fire_data (DataFrame).

Parameters:

Name Type Description Default
time int

Durée totale de l'exposé au feu en minutes.

required
am_v float

Facteur de massivité A_m/V en m⁻¹ (surface exposée / volume acier). Valeur plancher appliquée à 10 m⁻¹ si am_v < 10.

required
theta_a0 float

Température initiale de l'acier en °C. Defaults to 20.

20.0
epsilon_m float

Émissivité de la surface de l'acier (EN 1993-1-2 §2.2). Defaults to 0.7.

0.7
rho_a float

Masse volumique de l'acier en kg/m³ (EN 1993-1-2 §3.2.2). Defaults to 7850.

7850.0
k_sh float

Facteur de correction d'ombrage (k_sh ≤ 1). Defaults to 1.0.

1.0
**kwargs

Arguments transmis à la classe parent Plat.

{}

get_fire_data

get_fire_data()

Retourne le DataFrame complet de l'évolution thermique et des facteurs de réduction.

Colonnes : t (s), θg (°C), Δθa,t (C°), θa (°C), ky,θ, kp,θ, kE,θ, kb,θ, kw,θ. Pas de temps : 5 secondes.

Returns:

Type Description

pandas.DataFrame: Évolution complète de la température acier et des coefficients de réduction sur la durée time minutes.

get_specific_time_data

get_specific_time_data(time: float)

Retourne une ligne du DataFrame à un instant donné.

Parameters:

Name Type Description Default
time float

Instant à lire en minutes (doit être dans [0, self.time]).

required

Returns:

Type Description

pandas.Series: Ligne du DataFrame fire_data correspondant à time minutes, contenant θg, Δθa,t, θa et les facteurs de réduction.

Raises:

Type Description
ValueError

Si time < 0 ou time > self.time.

show_temperatures

show_temperatures(screenshot: bool = ('False', 'True'), filepath: str = None)

Affiche ou enregistre le graphique de l'évolution des températures θ_g(t) et θ_a(t).

Parameters:

Name Type Description Default
screenshot bool

Si True, enregistre le graphique au format PNG. Si False, ouvre une fenêtre matplotlib. Defaults to False.

('False', 'True')
filepath str

Chemin de fichier PNG pour l'enregistrement. Si None et screenshot=True, une boîte de dialogue PySide6 s'ouvre.

None

Returns:

Type Description

str | None: Chemin du fichier enregistré si screenshot=True, None sinon.

show_reductions_factors

show_reductions_factors(screenshot: bool = ('False', 'True'), filepath: str = None)

Affiche ou enregistre le graphique des facteurs de réduction au feu k_y,θ, k_p,θ, k_E,θ, k_b,θ, k_w,θ.

Parameters:

Name Type Description Default
screenshot bool

Si True, enregistre le graphique au format PNG. Si False, ouvre une fenêtre matplotlib. Defaults to False.

('False', 'True')
filepath str

Chemin de fichier PNG pour l'enregistrement. Si None et screenshot=True, une boîte de dialogue PySide6 s'ouvre.

None

Returns:

Type Description

str | None: Chemin du fichier enregistré si screenshot=True, None sinon.

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

(latex_str, résultat_numérique).