// Simplified coefficients for Low-Rise Buildings (Envelope Procedure) // Based on ASCE 7-22 Figure 28.3-1 (Case 1 & 2) export const getGCpf = ( zone: string, _angleDeg: number, // unused for now in this simplified lookup caseType: '1' | '2' | '3' | '4' = '1' ): number => { // Note: ASCE 7 Figure 28.3-1 // Case 1 (Transverse) vs Case 2 (Longitudinal) // Case 3 & 4 are Torsional (modifications of 1 & 2) // Screenshot values suggest: // Zone 1 Case 1: GCpf = 0.40 // Zone 1 Case 2: GCpf = -0.45 if (caseType === '1' || caseType === '3') { // Transverse (Case 1) or Torsional A (Case 3 based on 1) switch (zone) { case '1': return 0.40; case '2': return -0.69; case '3': return -0.37; case '4': return -0.29; case '5': return 0; // Not typ. in Case 1? Actually depends on loading direction. case '6': return 0; case '1E': return 0.61; case '2E': return -1.07; case '3E': return -0.53; case '4E': return -0.48; case '5E': return 0; case '6E': return 0; // Torsional zones often suffix T, e.g., 1T, 2T. // ASCE 28.3.4: "Torsional load cases... pressures shall be equal to 25% of... Zones 1-6"? No. // "Case 3... applies defined wind pressures... while simultaneously applying 25%..." // Actually usually simplified to specific factors. // Let's assume standard lookup for now. case '1T': return 0.40; // Base value, handled in calc logic for reduction case '2T': return -0.69; case '3T': return -0.37; case '4T': return -0.29; default: return 0; } } else { // Longitudinal (Case 2) or Torsional B (Case 4 based on 2) switch (zone) { case '1': return -0.45; // Based on screenshot case '2': return -0.69; case '3': return -0.37; case '4': return -0.45; case '5': return 0.40; case '6': return -0.29; case '1E': return -0.48; // Screenshot says -0.48 for 4E? Wait. // Let's rely on screenshot: Zone 1E Case 2 = -0.48 // Screenshot "Case 2": // 1: -16.8, 1E: -17.5. // 2: -23.2 (-0.69) // 3: -14.7 (-0.37) // 4: -16.8 (-0.45) // 5: 5.9 (0.40) // 6: -12.5 (-0.29) case '2E': return -1.07; case '3E': return -0.53; case '4E': return -0.48; case '5E': return 0.61; case '6E': return -0.43; default: return 0; } } }; // C&C Coefficients (ASCE 7 Fig 30.3-1) // Roof (Zone 1, 2, 3), Wall (Zone 4, 5) // Simplified for Effective Area Ae = 100 ft2 export const getCCGCp = ( component: 'Roof' | 'Wall', zone: string ): { pos: number, neg: number } => { if (component === 'Roof') { // Zone 1, 2, 3 switch (zone) { case '1': return { pos: 0.2, neg: -1.29 }; // Screenshot: 1.2,3 (+) = 0.20, 1(-) = -1.29 case '2': return { pos: 0.2, neg: -1.77 }; // 2(-) = -1.77 case '3': return { pos: 0.2, neg: -2.14 }; // 3(-) = -2.14 default: return { pos: 0, neg: 0 }; } } else { // Wall (Zone 4, 5) switch (zone) { case '4': return { pos: 0.74, neg: -0.83 }; // 4(+) = 0.74, 4(-) = -0.83 case '5': return { pos: 0.74, neg: -0.94 }; // 5(+) = 0.74, 5(-) = -0.94 default: return { pos: 0, neg: 0 }; } } };