buffalo_panel.formulations.HessSmithFormulation

class buffalo_panel.formulations.HessSmithFormulation(geometry, registry, backend='python', body_reference=None)[source]

Solve the classic Hess-Smith source-plus-vortex formulation.

Methods

build_body_source_family()

Build the constant source family for the body panels.

build_body_vortex_family()

Build the shared constant vortex family for the body panels.

build_open_trailing_edge_families()

Build the required trailing-edge families for an open geometry.

build_solution_families()

Build the source and vortex families used by this formulation.

build_trailing_edge_source_family()

Build the constant source family for the TE closure panel.

build_trailing_edge_vortex_family()

Build the constant vortex family for the TE closure panel.

solve(freestream[, point_particles])

Assemble, solve, and recover surface results for one freestream.

Attributes

geometry

Geometry used in the Hess-Smith solver.

registry

Registry of computational kernels to use in Hess-Smith solver.

backend

Specific computational kernel backend to use.

body_reference

Reference quantities for integrated coefficient recovery.

geometry: LinePanelGeometry2D

Geometry used in the Hess-Smith solver.

registry: KernelRegistry

Registry of computational kernels to use in Hess-Smith solver.

backend: str

Specific computational kernel backend to use.

body_reference: BodyReference2D | None

Reference quantities for integrated coefficient recovery.

build_solution_families()[source]

Build the source and vortex families used by this formulation.

Returns:

Source-family tuple followed by vortex-family tuple in the order required by the current Hess-Smith assembly and recovery paths.

Return type:

tuple[tuple[ElementFamily, ], tuple[ElementFamily, ]]

build_body_source_family()[source]

Build the constant source family for the body panels.

Returns:

Body source panel assembly for this formulation.

Return type:

ElementFamily

build_body_vortex_family()[source]

Build the shared constant vortex family for the body panels.

Returns:

Body vortex panel assembly for this formulation.

Return type:

ElementFamily

build_trailing_edge_source_family()[source]

Build the constant source family for the TE closure panel.

Returns:

Trailing edge source panel assembly for this formulation, if geometry is open, otherwise None.

Return type:

ElementFamily | None

build_trailing_edge_vortex_family()[source]

Build the constant vortex family for the TE closure panel.

Returns:

Trailing edge vortex panel assembly for this formulation, if geometry is open, otherwise None.

Return type:

ElementFamily | None

build_open_trailing_edge_families()[source]

Build the required trailing-edge families for an open geometry.

Returns:

Trailing-edge source and vortex families for the closure panel.

Return type:

OpenTrailingEdgeFamilies

Raises:

ValueError – If called for a closed geometry that has no trailing-edge panel.

solve(freestream, point_particles=())[source]

Assemble, solve, and recover surface results for one freestream.

Parameters:
  • freestream (Freestream2D) – Freestream conditions for this solution.

  • point_particles (tuple[PointElementParticle2D, ], optional) – Prescribed point particles whose induced fields contribute known forcing to the body boundary condition and to recovered flow fields.

Returns:

  • FloatArray – Raw solution from the system of equations.

  • PanelSolution2D – Processed results information from solution.

Return type:

tuple[TypeAliasForwardRef(’buffalo_panel.type_aliases.FloatArray’), PanelSolution2D]