Analysis Module

Structural analysis calculators for section properties and beam analysis.

Section Properties Calculator

Calculate geometric and section properties of structural members using finite element analysis.

Section Properties Calculator for StructEngine v2

Calculate geometric properties of structural sections using sectionproperties library. Supports standard steel sections, custom sections, and compound sections.

class api.app.calculators.analysis.section_properties.SectionPropertiesInput(**data)[source]

Bases: BaseModel

Input schema for section properties calculation.

section_type: str
section_designation: Optional[str]
dimensions: Optional[Dict[str, float]]
material_grade: str
mesh_size: Optional[float]
include_warping: bool
include_plastic: bool
classmethod validate_dimensions(v, info)[source]

Validate dimensions based on section type.

Return type:

Optional[Dict[str, Any]]

validate_model()[source]

Validate the complete model.

Return type:

SectionPropertiesInput

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class api.app.calculators.analysis.section_properties.SectionPropertiesOutput(**data)[source]

Bases: BaseModel

Output schema for section properties results.

inputs: SectionPropertiesInput
area: float
perimeter: float
cx: float
cy: float
ixx: float
iyy: float
ixy: float
zxx_top: float
zxx_bottom: float
zyy_left: float
zyy_right: float
rx: float
ry: float
i11: float
i22: float
phi: float
j: Optional[float]
gamma: Optional[float]
sxx: Optional[float]
syy: Optional[float]
a_sx: Optional[float]
a_sy: Optional[float]
material_type: str
elastic_modulus: float
mesh_elements: int
calculation_time: float
status: str
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class api.app.calculators.analysis.section_properties.SectionPropertiesCalculator[source]

Bases: BaseCalculator

Calculator for section properties using sectionproperties library.

__init__()[source]

Initialize the calculator.

Parameters:
  • calculator_type – Type identifier for the calculator

  • version – Calculator version

property input_schema: Type[BaseModel]

Return the Pydantic input schema for section properties calculation.

Returns:

SectionPropertiesInput schema class defining required

and optional parameters for section analysis

Return type:

Type[BaseModel]

property output_schema: Type[BaseModel]

Return the Pydantic output schema for section properties results.

Returns:

SectionPropertiesOutput schema class containing all

calculated geometric and section properties

Return type:

Type[BaseModel]

get_name()[source]
Return type:

str

get_description()[source]
Return type:

str

calculate(inputs)[source]

Calculate section properties using sectionproperties library.

Return type:

Dict[str, Any]

Beam Analysis Calculator

Analyze beams for deflection, bending moments, and shear forces under various loading conditions.

Enhanced Beam Analysis Calculator for StructEngine v2 Supports both determinate and indeterminate beams using IndeterminateBeam library Follows IS 456:2000 and IS 800:2007 standards

Note

  • The ‘moment’ load type in API/frontend is mapped to PointTorque in the indeterminatebeam backend.

    This ensures that applied moments in the UI/API are correctly handled as point torques in analysis.

class api.app.calculators.analysis.beam_analysis.SupportType(*values)[source]

Bases: Enum

Support types as per structural analysis conventions

PINNED = 'pinned'
ROLLER = 'roller'
FIXED = 'fixed'
FREE = 'free'
class api.app.calculators.analysis.beam_analysis.LoadType(*values)[source]

Bases: Enum

Load types for beam analysis

POINT = 'point'
DISTRIBUTED = 'distributed'
MOMENT = 'moment'
class api.app.calculators.analysis.beam_analysis.BeamAnalysisInput(**data)[source]

Bases: BaseModel

Input schema for beam analysis

span: float
supports: List[Dict[str, Any]]
loads: List[Dict[str, Any]]
material: Dict[str, Any]
section: Dict[str, Any]
analysis_options: Optional[Dict[str, Any]]
classmethod validate_supports(v)[source]
Return type:

List[Dict[str, Any]]

classmethod validate_loads(v)[source]
Return type:

List[Dict[str, Any]]

validate_advanced_mode_requirements()[source]

Validate that required fields are provided when advanced features are enabled.

Conditional requirements: - If mode=’advanced’ and deflection_analysis=True: require elastic_modulus and moment_of_inertia - If include_self_weight=True: require density and area - Basic mode: no material/section property requirements (uses equilibrium only)

Return type:

BeamAnalysisInput

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class api.app.calculators.analysis.beam_analysis.BeamAnalysisOutput(**data)[source]

Bases: BaseModel

Output schema for beam analysis

beam_info: Dict[str, Any]
reactions: Dict[str, Any]
maximum_values: Dict[str, float]
diagrams: Dict[str, List[Dict[str, float]]]
calculation_summary: Dict[str, Any]
model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

class api.app.calculators.analysis.beam_analysis.BeamAnalysisCalculator[source]

Bases: BaseCalculator

Enhanced Beam Analysis Calculator for StructEngine v2 Supports both statically determinate and indeterminate beams Complies with IS 456:2000 and IS 800:2007 standards

__init__()[source]

Initialize the calculator.

Parameters:
  • calculator_type – Type identifier for the calculator

  • version – Calculator version

property input_schema: Type[BaseModel]

Return the Pydantic schema for input validation.

property output_schema: Type[BaseModel]

Return the Pydantic schema for output formatting.

calculate(inputs)[source]

Perform comprehensive beam analysis using IndeterminateBeam library Supports both determinate and indeterminate beams

Boundary conversion architecture: - INPUT: Accepts kN, kN/m, kN·m from API → converts to N, N/m, N·m internally - PROCESSING: All calculations use SI units (N, N/m, N·m) for indeterminatebeam - OUTPUT: Converts N, N/m, N·m → kN, kN/m, kN·m before returning

Return type:

Dict[str, Any]