buffalo_panel.kernels.ElementKernel

class buffalo_panel.kernels.ElementKernel[source]

Bases: ABC, Generic

Base class for element influence kernels.

Concrete kernels override the block-building methods that are supported by their singularity, basis, and backend. Unsupported methods raise NotImplementedError from this base class so a failure points to the requested operation on the concrete kernel object.

Methods

build_field_potential_block(family, ...)

Build velocity-potential influence blocks at field points.

build_field_stream_function_block(family, ...)

Build stream-function influence blocks at field points.

build_field_velocity_blocks(family, ...)

Build global velocity-component influence blocks at field points.

build_normal_block(family, geometry, options)

Build one normal-velocity influence block.

build_potential_block(family, geometry, options)

Build one velocity-potential influence block.

build_stream_function_block(family, ...)

Build one stream-function influence block.

build_tangent_block(family, geometry, options)

Build one tangential-velocity influence block.

abstractmethod build_normal_block(family, geometry, options)[source]

Build one normal-velocity influence block.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the target collocation points, panel normals, and source panel coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Normal-velocity influence block with one row per target panel and one or more columns per family-local coefficient, depending on the family’s basis and degree-of-freedom layout.

Return type:

FloatArray

abstractmethod build_tangent_block(family, geometry, options)[source]

Build one tangential-velocity influence block.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the target collocation points, panel tangents, and source panel coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Tangential-velocity influence block with one row per target panel and one or more columns per family-local coefficient, depending on the family’s basis and degree-of-freedom layout.

Return type:

FloatArray

abstractmethod build_potential_block(family, geometry, options)[source]

Build one velocity-potential influence block.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the target collocation points and source panel coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Potential influence block with one row per target panel and one or more columns per family-local coefficient, depending on the family’s basis and degree-of-freedom layout.

Return type:

FloatArray

abstractmethod build_stream_function_block(family, geometry, options)[source]

Build one stream-function influence block.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the target collocation points and source panel coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Stream-function influence block with one row per target panel and one or more columns per family-local coefficient, depending on the family’s basis and degree-of-freedom layout.

Return type:

FloatArray

abstractmethod build_field_velocity_blocks(family, geometry, x, y, options)[source]

Build global velocity-component influence blocks at field points.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the source panel coordinates.

  • x (FloatInput) – Field-point x-coordinates.

  • y (FloatInput) – Field-point y-coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

  • FloatArray – X-velocity influence block with one column per family-local coefficient.

  • FloatArray – Y-velocity influence block with one column per family-local coefficient.

Return type:

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

abstractmethod build_field_potential_block(family, geometry, x, y, options)[source]

Build velocity-potential influence blocks at field points.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the source panel coordinates.

  • x (FloatInput) – Field-point x-coordinates.

  • y (FloatInput) – Field-point y-coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Velocity-potential influence block with one column per family-local coefficient.

Return type:

FloatArray

abstractmethod build_field_stream_function_block(family, geometry, x, y, options)[source]

Build stream-function influence blocks at field points.

Parameters:
  • family (ElementFamily) – Source element family whose family-local coefficients define the block columns.

  • geometry (LinePanelGeometry2D) – Two-dimensional line-panel geometry that defines the source panel coordinates.

  • x (FloatInput) – Field-point x-coordinates.

  • y (FloatInput) – Field-point y-coordinates.

  • options (KernelEvaluationOptions) – Runtime evaluation convention.

Returns:

Stream-function influence block with one column per family-local coefficient.

Return type:

FloatArray