turbo_moc.configuration_project module#

Machine projects and row-scoped adapters for the existing numerical APIs.

A project describes an ordered collection of blade rows. Numerical stages still receive one flat row configuration. Flow-state coupling is explicit; an assembly view does not imply a connected stator-rotor solver mesh.

turbo_moc.configuration_project.active_rows(project)[source]#

Return participating rows in machine order; keep inactive settings intact.

turbo_moc.configuration_project.assembly_interspaces(project)[source]#

Report signed clearances for adjacent active rows in machine order.

Axial values measure the minimum upstream TE to downstream LE-plane gap. Radial values follow the upstream flow direction: s*(r_next_LE-r_TE), with s=sign(r_TE-r_LE). Positive means clearance for inflow and outflow alike; negative means overlap. Planning overlaps are reported rather than rejected. These values describe blade envelopes, not connected solver interfaces.

turbo_moc.configuration_project.assembly_placement(project, row_id)[source]#

Return physical assembly placement; preview arrays remain row-local.

Axial interspaces determine downstream row origins in an assembly. Radial row locations come directly from their radii, so no radial translation is added. Export applies this placement for multirow projects. A solitary row retains its legacy axial display offset.

turbo_moc.configuration_project.default_project(family='axial')[source]#
turbo_moc.configuration_project.get_row(project, row_id)[source]#

Return the row with a stable identifier, independently of list position.

turbo_moc.configuration_project.load_project(path)[source]#
turbo_moc.configuration_project.normalize_project(config)[source]#

Copy a project, or wrap a historical flat case as a single stator row.

turbo_moc.configuration_project.row_assembly(project, row_id)[source]#

Resolve one row’s placement and internal caps for a numerical job.

turbo_moc.configuration_project.row_configuration(project, row_id)[source]#

Return editable row inputs, before resolving coupling and assembly caps.

turbo_moc.configuration_project.set_design_mode(project, mode)[source]#

Change participation, retaining all previously configured row data.

turbo_moc.configuration_project.set_machine_type(project, family)[source]#

Replace only channel-family inputs; preserve all other row settings.

turbo_moc.configuration_project.shared_interfaces(project)[source]#

Resolve common physical boundaries in the gaps between active rows.

A plane halfway across the minimum axial clearance remains outside a tapered blade at every span. Radial interfaces are cylinders halfway between the supplied TE and LE radii, for either flow direction. Current axial/radial families have constant endwall radii/heights: unequal endwalls need an explicit transition model and must not be silently joined.

Keep this physical validation separate from validate_project, so incomplete edits remain visible and correctable in the app.

turbo_moc.configuration_project.update_row_placement(project, row_id, **values)[source]#
turbo_moc.configuration_project.upstream_stator(project, row_id)[source]#

Nearest preceding active stator; stable IDs do not encode machine order.

turbo_moc.configuration_project.validate_project(project)[source]#

Validate row inputs independently of computed upstream design artifacts.