pyskyfire.regen.channel_placement.ChannelPlacement

class pyskyfire.regen.channel_placement.ChannelPlacement(n_channel_positions: int, channel_width=None, occludes: bool = True)

Bases: abc.ABC

digraph inheritance55ac00c4e2 { bgcolor=transparent; rankdir=LR; size="8.0, 12.0"; "ABC" [URL="https://docs.python.org/3/library/abc.html#abc.ABC",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Helper class that provides a standard way to create an ABC using"]; "ChannelPlacement" [URL="ChannelPlacement.html#pyskyfire.regen.channel_placement.ChannelPlacement",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Abstract base class defining how coolant channels are positioned."]; "ABC" -> "ChannelPlacement" [arrowsize=0.5,style="setlinewidth(0.5)"]; }

Abstract base class defining how coolant channels are positioned.

Subclasses implement different placement strategies (surface, internal) that compute the radial coordinate of the channel centerline.

Parameters:
n_channel_positionsint

Number of circumferential channel locations (“leaves”).

channel_widthcallable() or None, optional

Function returning angular width [rad]. May be None if uniform.

occludesbool, optional

Whether this placement blocks part of the wall from hot gas view.

Attributes:
n_channel_positionsint

Number of circumferential positions.

channel_widthcallable() or None

Angular width function or constant.

occludesbool

Whether the placement occludes hot surface area.

See also

SurfacePlacement
InternalPlacement
centerline_dtheta_dx(x: float, contour, flow_radius: float, flow_dr_dx: float) float

Return dtheta/dx for the actual coolant-flow centreline.

channel_count() int
abstractmethod compute_centerline_radius(x: float, contour) float

Return the section-reference radius r(x) for this placement.

For surface channels this is the hot-wall radius used by the cross-section models. The coolant-flow centre is obtained separately with compute_flow_centerline_radius().

compute_flow_centerline_radius(x: float, contour, wall_thickness: float, channel_height: float) float

Return the radius of the modeled coolant-flow centre [m].

Placements that already describe a flow centre need no offset. A surface placement overrides this because its section reference is the hot wall.

dtheta_dx(x: float, contour) float

Return dθ/dx [rad/m] for the representative lane centerline. Default: 0 (axial/vertical channels).