Angle of Attack Sweep Controller

class pyrefine.controller.aoa_sweep.ControllerAoaSweep(project_name, pbs=None)

Bases: ControllerBase

A controller to perform an angle of attack sweep. There are two phases to the process. A fixed angle of attack phase where the complexity is (potentially) increases on a fixed schedule. Multiple complexity phases can occur per angle of attack. An angle of attack adjustment phase occurs between fixed angle of attack phases. In the adjustment phase, complexity is held fixed while the problem is incremented to the next angle of attack.

Parameters
  • project_name (str) – The root name of the project (without any mesh numbers)

  • pbs (PBS) – PBS queue helper

steps_per_complexity_at_aoa

At a fixed aoa, the number of adaptation cycles before increasing the complexity

Type

int

complexity_multiplier

The multiplicative factor to mutiple the complexity by

Type

float

complexity_levels_per_aoa

The number of complexity levels at each angle of attack

Type

int

steps_per_aoa_transition

The number of adaptation cycles used to transition to the next angle of attack step

Type

int

aoa_step_size

The angle of attack step size at which analyze. (transition moves between step_size)

Type

float

initial_aoa

Initial angle of attack in degrees

Type

float

fun3d_nml_list

The list of fun3d namelist files to adjust the angle of attack in

Type

list[str]

update_inputs(istep)

Update the angle of attack based on the schedule

compute_complexity(istep, current_complexity)
Parameters
  • istep (int) – Adaptation step number

  • current_complexity (float) – The current complexity in the driver. If doing a restart, the current complexity will be None

Return type

complexity