Ce qui est duplique
ICT-23-PersonaCatastrophe-Python.ipynb, cellule 24 (0-indexee 23) reconstruit a la main le maillage du tore avant de le tracer :
u = np.linspace(0, 2 * np.pi, 40)
v = np.linspace(0, 2 * np.pi, 40)
U, V = np.meshgrid(u, v)
Xs = (2.0 + 1.0 * np.cos(U)) * np.cos(V)
Ys = (2.0 + 1.0 * np.cos(U)) * np.sin(V)
Zs = 1.0 * np.sin(U)
ax_3d.plot_wireframe(Xs, Ys, Zs, color='lightgray', alpha=0.25, lw=0.4)
Les equations du plongement du tore sont deja portees par ict/catastrophe.py :
torus_points(theta, phi, R, r) (l.541) -- x = (R + r cos phi) cos theta, y = (R + r cos phi) sin theta, z = r sin phi ;
torus_surface(ax, R, r, nu, nv, **kwargs) (l.627) -- construit son propre meshgrid puis appelle torus_points, et trace une surface.
Pourquoi la deduplication n'est pas le remplacement suggere
torus_surface n'est pas equivalente a la ligne de la cellule : elle trace une surface ombree (ax.plot_surface, defauts alpha=0.18, color="0.55", linewidth=0), alors que la cellule trace un fil de fer (ax.plot_wireframe, lw=0.4, alpha=0.25). Substituer l'une a l'autre change la figure du carnet.
La deduplication reellement identique passe par le point d'entree bas niveau, en gardant le trace en fil de fer :
Xs, Ys, Zs = torus_points(V, U, R=2.0, r=1.0)
ax_3d.plot_wireframe(Xs, Ys, Zs, color='lightgray', alpha=0.25, lw=0.4)
Attention a l'ordre des arguments : dans la cellule, U est l'angle du tube (phi) et V l'angle du grand cercle (theta) -- l'appel est donc torus_points(V, U), pas (U, V). Numeriquement c'est identique (memes formules, meme grille 40x40) : la figure reste inchangee, seule la duplication des equations disparait. torus_points s'ajoute a la liste d'imports de la cellule (from ict.catastrophe import ...), pour ne pas dependre de l'etat du noyau laisse par une cellule anterieure.
Provenance
Signale par la review Hermes de #19590 (COMMENT_WITH_CONCERNS, point secondaire, non bloquant), qui proposait cat.torus_surface(ax). Le constat de duplication est exact ; le remede propose ne l'est pas (voir ci-dessus).
Pourquoi c'est differe, et pas corrige dans #19590
Le diff de #19590 contre main est markdown seul (cellule de la section 8). Y ajouter une modification de cellule code ferait basculer une PR de prose en PR de code : re-execution complete obligatoire (C.2, cf .claude/rules/notebook-conventions.md) et re-armement des ratchets de sortie, pour un point explicitement non bloquant. Le report est donc conscient et nomme ici.
Critere de sortie
- La cellule 24 ne derive plus aucune equation du tore a la main : elle consomme
torus_points.
- Le rendu de la figure est inchange (meme grille 40x40, meme
plot_wireframe, memes couleurs).
- Carnet re-execute de bout en bout, outputs committes (C.2).
Part of #19333
Ce qui est duplique
ICT-23-PersonaCatastrophe-Python.ipynb, cellule 24 (0-indexee 23) reconstruit a la main le maillage du tore avant de le tracer :Les equations du plongement du tore sont deja portees par
ict/catastrophe.py:torus_points(theta, phi, R, r)(l.541) --x = (R + r cos phi) cos theta,y = (R + r cos phi) sin theta,z = r sin phi;torus_surface(ax, R, r, nu, nv, **kwargs)(l.627) -- construit son propremeshgridpuis appelletorus_points, et trace une surface.Pourquoi la deduplication n'est pas le remplacement suggere
torus_surfacen'est pas equivalente a la ligne de la cellule : elle trace une surface ombree (ax.plot_surface, defautsalpha=0.18,color="0.55",linewidth=0), alors que la cellule trace un fil de fer (ax.plot_wireframe,lw=0.4,alpha=0.25). Substituer l'une a l'autre change la figure du carnet.La deduplication reellement identique passe par le point d'entree bas niveau, en gardant le trace en fil de fer :
Attention a l'ordre des arguments : dans la cellule,
Uest l'angle du tube (phi) etVl'angle du grand cercle (theta) -- l'appel est donctorus_points(V, U), pas(U, V). Numeriquement c'est identique (memes formules, meme grille 40x40) : la figure reste inchangee, seule la duplication des equations disparait.torus_pointss'ajoute a la liste d'imports de la cellule (from ict.catastrophe import ...), pour ne pas dependre de l'etat du noyau laisse par une cellule anterieure.Provenance
Signale par la review Hermes de #19590 (
COMMENT_WITH_CONCERNS, point secondaire, non bloquant), qui proposaitcat.torus_surface(ax). Le constat de duplication est exact ; le remede propose ne l'est pas (voir ci-dessus).Pourquoi c'est differe, et pas corrige dans #19590
Le diff de #19590 contre
mainest markdown seul (cellule de la section 8). Y ajouter une modification de cellule code ferait basculer une PR de prose en PR de code : re-execution complete obligatoire (C.2, cf.claude/rules/notebook-conventions.md) et re-armement des ratchets de sortie, pour un point explicitement non bloquant. Le report est donc conscient et nomme ici.Critere de sortie
torus_points.plot_wireframe, memes couleurs).Part of #19333