Buckets:
| import { useState } from 'react'; | |
| import PoissonApp from './components/poisson/PoissonApp'; | |
| import DangVanApp from './components/dangvan/DangVanApp'; | |
| import ThermiqueApp from './components/thermique/ThermiqueApp'; | |
| import './index.css'; | |
| export default function App() { | |
| const [currentApp, setCurrentApp] = useState(null); // null = home, 'poisson' = Poisson app | |
| // Page d'accueil avec sélection des applications | |
| if (!currentApp) { | |
| return ( | |
| <div className="home-page"> | |
| <header className="home-header"> | |
| <h1>SimSite</h1> | |
| <p>Plateforme de Simulation Numérique</p> | |
| </header> | |
| <main className="app-selector"> | |
| <div className="app-card" onClick={() => setCurrentApp('poisson')}> | |
| <div className="app-icon">∇²</div> | |
| <h2>Équation de Poisson</h2> | |
| <p>Résolution de -Δu = f avec conditions aux limites de Dirichlet et Neumann</p> | |
| <ul> | |
| <li>Visualisation 3D interactive du maillage</li> | |
| <li>Distribution du champ de solution</li> | |
| <li>Animation de l'évolution temporelle</li> | |
| <li>Paramètres configurables</li> | |
| </ul> | |
| <span className="app-tag">FEniCSx</span> | |
| </div> | |
| <div className="app-card" onClick={() => setCurrentApp('thermique')}> | |
| <div className="app-icon">∂T/∂t</div> | |
| <h2>Diffusion Thermique</h2> | |
| <p>Simulation de transfert de chaleur transitoire</p> | |
| <ul> | |
| <li>Visualisation 3D interactive du maillage</li> | |
| <li>Distribution du champ de température</li> | |
| <li>Animation de l'évolution temporelle</li> | |
| <li>Paramètres configurables</li> | |
| </ul> | |
| <span className="app-tag">FEniCSx</span> | |
| </div> | |
| <div className="app-card" onClick={() => setCurrentApp('dangvan')}> | |
| <div className="app-icon">σ</div> | |
| <h2>Critère de Dang Van</h2> | |
| <p>Analyse de fatigue multiaxiale</p> | |
| <ul> | |
| <li>Calcul du critère de Dang Van</li> | |
| <li>Visualisation graphique du diagramme</li> | |
| <li>Différents types de chargement</li> | |
| <li>Exemples prédéfinis</li> | |
| </ul> | |
| <span className="app-tag">NumPy</span> | |
| </div> | |
| </main> | |
| <footer className="home-footer"> | |
| <p>Powered by FEniCSx, Three.js & React</p> | |
| </footer> | |
| </div> | |
| ); | |
| } | |
| // Application Poisson | |
| if (currentApp === 'poisson') { | |
| return <PoissonApp onBack={() => setCurrentApp(null)} />; | |
| } | |
| // Application Diffusion Thermique | |
| if (currentApp === 'thermique') { | |
| return <ThermiqueApp onBack={() => setCurrentApp(null)} />; | |
| } | |
| // Application Dang Van | |
| if (currentApp === 'dangvan') { | |
| return <DangVanApp onBack={() => setCurrentApp(null)} />; | |
| } | |
| return null; | |
| } | |
Xet Storage Details
- Size:
- 3.62 kB
- Xet hash:
- 3d7e6f9ca2cc4f0f6cdcdf6c4a61f1b5131f1b9721891103ef6e211b6ad9dc0e
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.