🚀 Auto-deploy: BrainWind atualizado em 21/07/2026 14:27:40

This commit is contained in:
2026-07-21 14:27:40 +00:00
parent d85cb2151b
commit f88a551c14
9 changed files with 548 additions and 104 deletions
+27
View File
@@ -40,6 +40,9 @@ function makeScenario(
diagramType: string,
diagramProps: Record<string, unknown>,
nbrSection: string,
isBibliographic?: boolean,
bibliografiaReferencia?: string,
enunciadoParafraseado?: string,
): AuditScenario {
return {
id,
@@ -53,6 +56,9 @@ function makeScenario(
diagramType: diagramType as import('./types').DiagramType,
diagramProps,
nbrSection,
isBibliographic,
bibliografiaReferencia,
enunciadoParafraseado,
};
}
@@ -64,6 +70,9 @@ function galpaoScenario(
width: number, length: number, height: number, roofPitch: number,
windAngle: 0 | 90,
permCase: PermeabilityCase, cpiRatio: number,
isBibliographic?: boolean,
bibliografiaReferencia?: string,
enunciadoParafraseado?: string,
): AuditScenario {
const dim = Math.max(width, length);
const { s2, vk, q } = calcWind(v0, s1, s3, cat, dim, height);
@@ -94,6 +103,9 @@ function galpaoScenario(
'warehouse',
{ width, length, height, roofPitch, wallCpe, roofCpe, windAngle: windAngle as 0 | 90, cpi },
'Sec. 6.1',
isBibliographic,
bibliografiaReferencia,
enunciadoParafraseado,
);
}
@@ -106,6 +118,9 @@ function cylinderScenario(
surface: 'rough' | 'smooth',
endType: 'closed' | 'open-top' | 'open-bottom' | 'open-both',
_windAngle: 0 | 90,
isBibliographic?: boolean,
bibliografiaReferencia?: string,
enunciadoParafraseado?: string,
): AuditScenario {
const { s2, vk, q } = calcWind(v0, s1, s3, cat, Math.max(d, h), h);
const re = 70000 * vk * d;
@@ -130,6 +145,9 @@ function cylinderScenario(
'cylinder',
{ diameter: d, height: h, cpi, cpeProfile: profile.map(p => ({ angle: p.angle, cpe: p.cpe })) },
'Sec. 6.2.1',
isBibliographic,
bibliografiaReferencia,
enunciadoParafraseado,
);
}
@@ -140,6 +158,9 @@ export function generateAllScenarios(): AuditScenario[] {
scenarios.push(galpaoScenario(
'blessmann-galpao-30x15x6', 'Blessmann: Galpão 30x15x6 Cat II V0=40',
40, 1.0, 1.0, 'II', 15, 30, 6, 10, 0, 'four-equally-permeable', 1.0,
true,
'Pfeil & Pfeil, Estruturas de Aço, 8ª ed. (Exemplo clássico de galpão adaptado e Blessmann Cap. 5, Exemplo 5.1)',
'Cenário de Validação estruturado com base nos parâmetros físicos típicos da literatura. O teste valida a ação do vento transversal (0°) em pórtico de duas águas simétrico (30x15x6 m) em terreno plano.'
));
{
@@ -154,12 +175,18 @@ export function generateAllScenarios(): AuditScenario[] {
'warehouse',
{ width: 20, length: 60, height: 100, roofPitch: 0, wallCpe: { A: -0.9, B: -0.6, C: 0.7, D: -0.5 }, roofCpe: { E: -0.8, F: -0.4, G: 0.2, H: -0.3 }, windAngle: 0 as const, cpi: 0 },
'Sec. 5.3',
true,
'Blessmann, J. O Vento na Engenharia Estrutural, Cap. 9',
'Validação de edifício alto paralelepipédico de seção retangular 20x60m e altura 100m. Avaliação da variação do fator S2 com a altura (z) até 100m.'
));
}
scenarios.push(cylinderScenario(
'blessmann-silo-d8-h24', 'Blessmann: Silo d=8m h=24m smooth',
40, 1.0, 1.0, 'II', 8, 24, 'smooth', 'open-top', 0,
true,
'NBR 6123 Tabela 13 (Cilindros) / Blessmann Cap. 6',
'Cilindro liso com diâmetro de 8m e altura de 24m. Validação do Número de Reynolds (Re) no topo do silo e coeficientes de pressão externa nos ângulos característicos.'
));
for (const z of [5, 10, 20, 50, 100]) {