Class StructuralLoadPath
java.lang.Object
org.episteme.social.architecture.StructuralLoadPath
Analytical tool for tracing and evaluating structural load paths within a building.
It simulates how forces travel from points of application through beams,
columns, and slabs down to the foundation.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic final recordRepresents a localized force or moment applied to the structure.static final recordResultant internal forces acting on a specific structural member.static enumCommon types of structural building members.static final recordRepresents a discrete structural member with geometry and properties. -
Method Summary
Modifier and TypeMethodDescriptioncalculateReactions(List<StructuralLoadPath.StructuralMember> members, List<StructuralLoadPath.AppliedLoad> loads, List<String> supportIds) Calculates reactions at support points for a set of applied loads using equilibrium.static booleancheckMemberCapacity(StructuralLoadPath.MemberForce forces, double yieldStrength, double safetyFactor) Verifies if a member's internal stress exceeds its capacity, considering both axial and bending stresses.static StringgenerateFBD(StructuralLoadPath.StructuralMember member, List<StructuralLoadPath.MemberForce> allForces) Generates a structural summary (Free Body Diagram data) for a member.slabLoadDistribution(double slabLoad, double slabLength, double slabWidth, List<StructuralLoadPath.StructuralMember> beams) Distributes a surface load from a slab to supporting beams using tributary area principles.traceLoadPath(List<StructuralLoadPath.StructuralMember> members, StructuralLoadPath.AppliedLoad load) Traces the logical sequence of members that transmit a load down to the foundation level.
-
Method Details
-
traceLoadPath
public static List<StructuralLoadPath.StructuralMember> traceLoadPath(List<StructuralLoadPath.StructuralMember> members, StructuralLoadPath.AppliedLoad load) Traces the logical sequence of members that transmit a load down to the foundation level.- Parameters:
members- list of all available structural membersload- the applied load to trace- Returns:
- list of members in the order of load transmission
-
calculateReactions
public static Map<String,double[]> calculateReactions(List<StructuralLoadPath.StructuralMember> members, List<StructuralLoadPath.AppliedLoad> loads, List<String> supportIds) Calculates reactions at support points for a set of applied loads using equilibrium. Simplified model assuming equal distribution among identical supports.- Parameters:
members- all structural membersloads- all applied loadssupportIds- list of IDs for foundation/support points- Returns:
- map of support IDs to reaction force vectors [Fx, Fy, Fz]
-
checkMemberCapacity
public static boolean checkMemberCapacity(StructuralLoadPath.MemberForce forces, double yieldStrength, double safetyFactor) Verifies if a member's internal stress exceeds its capacity, considering both axial and bending stresses.- Parameters:
forces- internal forces on the memberyieldStrength- material yield strength in MPasafetyFactor- factor of safety (e.g., 1.5)- Returns:
- true if the member is structurally adequate
-
generateFBD
public static String generateFBD(StructuralLoadPath.StructuralMember member, List<StructuralLoadPath.MemberForce> allForces) Generates a structural summary (Free Body Diagram data) for a member.- Parameters:
member- the member to describeallForces- list of calculated forces- Returns:
- formatted string description
-
slabLoadDistribution
public static Map<String,Real> slabLoadDistribution(double slabLoad, double slabLength, double slabWidth, List<StructuralLoadPath.StructuralMember> beams) Distributes a surface load from a slab to supporting beams using tributary area principles.- Parameters:
slabLoad- pressure in kN/m²slabLength- length in metersslabWidth- width in metersbeams- available supporting beams- Returns:
- map of beam IDs to total distributed load in kN
-