openlifu.plan.solution_analysis.SolutionAnalysis

class openlifu.plan.solution_analysis.SolutionAnalysis(mainlobe_pnp_MPa: "Annotated[list[float], OpenLIFUFieldData('Mainlobe PNP', 'Peak negative pressure in the mainlobe, in MPa')]" = <factory>, mainlobe_isppa_Wcm2: "Annotated[list[float], OpenLIFUFieldData('Mainlobe ISPPA', 'Spatial peak pulse average intensity in the mainlobe, in W/cm²')]" = <factory>, mainlobe_ispta_mWcm2: "Annotated[list[float], OpenLIFUFieldData('Mainlobe ISPTA', 'Spatial peak time average intensity in the mainlobe, in mW/cm²')]" = <factory>, target_position_lat_mm: "Annotated[list[float], OpenLIFUFieldData('Target position lateral (mm)', 'Lateral position of the target, in mm')]" = <factory>, target_position_ele_mm: "Annotated[list[float], OpenLIFUFieldData('Target position elevation (mm)', 'Elevation position of the target, in mm')]" = <factory>, target_position_ax_mm: "Annotated[list[float], OpenLIFUFieldData('Target position axial (mm)', 'Axial position of the target, in mm')]" = <factory>, focal_centroid_lat_mm: "Annotated[list[float], OpenLIFUFieldData('Focal centroid lateral (mm)', 'Lateral centroid of the focus, in mm')]" = <factory>, focal_centroid_ele_mm: "Annotated[list[float], OpenLIFUFieldData('Focal centroid elevation (mm)', 'Elevation centroid of the focus, in mm')]" = <factory>, focal_centroid_ax_mm: "Annotated[list[float], OpenLIFUFieldData('Focal centroid axial (mm)', 'Axial centroid of the focus, in mm')]" = <factory>, beamwidth_lat_3dB_mm: "Annotated[list[float], OpenLIFUFieldData('3dB lateral beamwidth', 'Lateral beamwidth at -3 dB, in mm')]" = <factory>, beamwidth_ele_3dB_mm: "Annotated[list[float], OpenLIFUFieldData('3dB elevation beamwidth', 'Elevation beamwidth at -3 dB, in mm')]" = <factory>, beamwidth_ax_3dB_mm: "Annotated[list[float], OpenLIFUFieldData('3dB axial beamwidth', 'Axial beamwidth at -3 dB, in mm')]" = <factory>, beamwidth_lat_6dB_mm: "Annotated[list[float], OpenLIFUFieldData('6dB lateral beamwidth', 'Lateral beamwidth at -6 dB, in mm')]" = <factory>, beamwidth_ele_6dB_mm: "Annotated[list[float], OpenLIFUFieldData('6dB elevation beamwidth', 'Elevation beamwidth at -6 dB, in mm')]" = <factory>, beamwidth_ax_6dB_mm: "Annotated[list[float], OpenLIFUFieldData('6dB axial beamwidth', 'Axial beamwidth at -6 dB, in mm')]" = <factory>, sidelobe_pnp_MPa: "Annotated[list[float], OpenLIFUFieldData('Sidelobe PNP', 'Peak negative pressure in the sidelobes, in MPa')]" = <factory>, sidelobe_isppa_Wcm2: "Annotated[list[float], OpenLIFUFieldData('Sidelobe ISPPA', 'Spatial peak pulse average intensity in the sidelobes, in W/cm²')]" = <factory>, global_pnp_MPa: "Annotated[list[float], OpenLIFUFieldData('Global PNP', 'Maximum peak negative pressure in the entire field, in MPa')]" = <factory>, global_isppa_Wcm2: "Annotated[list[float], OpenLIFUFieldData('Global ISPPA', 'Maximum spatial peak pulse average intensity in the entire field, in W/cm²')]" = <factory>, global_ispta_mWcm2: "Annotated[float | None, OpenLIFUFieldData('Global ISPTA (mW/cm²)', 'Global Intensity at Spatial-Peak, Time-Average (I_SPTA) (mW/cm²)')]" = None, MI: "Annotated[float | None, OpenLIFUFieldData('Mechanical index (MI)', 'Mechanical index (MI)')]" = None, TIC: "Annotated[float | None, OpenLIFUFieldData('Thermal index (TIC)', 'Thermal index in cranium (TIC)')]" = None, voltage_V: "Annotated[float | None, OpenLIFUFieldData('Voltage (V)', 'Voltage applied to the transducer (V)')]" = None, p0_MPa: "Annotated[list[float], OpenLIFUFieldData('Emitted pressure (MPa)', 'Initial pressure values in the field, in MPa')]" = <factory>, power_W: "Annotated[float | None, OpenLIFUFieldData('Emitted Power (W)', 'Emitted power from the transducer face (W)')]" = None, duty_cycle_pulse_train_pct: "Annotated[float | None, OpenLIFUFieldData('Duty cycle pulse train', 'Duty cycle within a pulse train (0-1)')]" = None, duty_cycle_sequence_pct: "Annotated[float | None, OpenLIFUFieldData('Duty cycle sequence', 'Duty cycle of the overall sequence (0-1)')]" = None, sequence_duration_s: "Annotated[float | None, OpenLIFUFieldData('Sequence duration (s)', 'Total duration of the sequence (s)')]" = None, param_constraints: "Annotated[Dict[str, ParameterConstraint], OpenLIFUFieldData('Parameter constraints', None)]" = <factory>)[source]

Bases: DictMixin

MI: Annotated[float | None, OpenLIFUFieldData('Mechanical index (MI)', 'Mechanical index (MI)')] = None

Mechanical index (MI)

TIC: Annotated[float | None, OpenLIFUFieldData('Thermal index (TIC)', 'Thermal index in cranium (TIC)')] = None

Thermal index in cranium (TIC)

beamwidth_ax_3dB_mm: Annotated[list[float], OpenLIFUFieldData('3dB axial beamwidth', 'Axial beamwidth at -3 dB, in mm')]

Axial beamwidth at -3 dB, in mm

beamwidth_ax_6dB_mm: Annotated[list[float], OpenLIFUFieldData('6dB axial beamwidth', 'Axial beamwidth at -6 dB, in mm')]

Axial beamwidth at -6 dB, in mm

beamwidth_ele_3dB_mm: Annotated[list[float], OpenLIFUFieldData('3dB elevation beamwidth', 'Elevation beamwidth at -3 dB, in mm')]

Elevation beamwidth at -3 dB, in mm

beamwidth_ele_6dB_mm: Annotated[list[float], OpenLIFUFieldData('6dB elevation beamwidth', 'Elevation beamwidth at -6 dB, in mm')]

Elevation beamwidth at -6 dB, in mm

beamwidth_lat_3dB_mm: Annotated[list[float], OpenLIFUFieldData('3dB lateral beamwidth', 'Lateral beamwidth at -3 dB, in mm')]

Lateral beamwidth at -3 dB, in mm

beamwidth_lat_6dB_mm: Annotated[list[float], OpenLIFUFieldData('6dB lateral beamwidth', 'Lateral beamwidth at -6 dB, in mm')]

Lateral beamwidth at -6 dB, in mm

duty_cycle_pulse_train_pct: Annotated[float | None, OpenLIFUFieldData('Duty cycle pulse train', 'Duty cycle within a pulse train (0-1)')] = None

Duty cycle within a pulse train (0-1)

duty_cycle_sequence_pct: Annotated[float | None, OpenLIFUFieldData('Duty cycle sequence', 'Duty cycle of the overall sequence (0-1)')] = None

Duty cycle of the overall sequence (0-1)

focal_centroid_ax_mm: Annotated[list[float], OpenLIFUFieldData('Focal centroid axial (mm)', 'Axial centroid of the focus, in mm')]

Axial centroid of the focus, in mm

focal_centroid_ele_mm: Annotated[list[float], OpenLIFUFieldData('Focal centroid elevation (mm)', 'Elevation centroid of the focus, in mm')]

Elevation centroid of the focus, in mm

focal_centroid_lat_mm: Annotated[list[float], OpenLIFUFieldData('Focal centroid lateral (mm)', 'Lateral centroid of the focus, in mm')]

Lateral centroid of the focus, in mm

classmethod from_dict(parameter_dict: Dict[str, Any]) SolutionAnalysis[source]

Create an object from a dictionary

Parameters:

parameter_dict – dictionary of parameters to define the object

Returns: new object

static from_json(json_string: str) SolutionAnalysis[source]

Load a SolutionAnalysis from a json string

global_isppa_Wcm2: Annotated[list[float], OpenLIFUFieldData('Global ISPPA', 'Maximum spatial peak pulse average intensity in the entire field, in W/cm²')]

Maximum spatial peak pulse average intensity in the entire field, in W/cm²

global_ispta_mWcm2: Annotated[float | None, OpenLIFUFieldData('Global ISPTA (mW/cm²)', 'Global Intensity at Spatial-Peak, Time-Average (I_SPTA) (mW/cm²)')] = None

Global Intensity at Spatial-Peak, Time-Average (I_SPTA) (mW/cm²)

global_pnp_MPa: Annotated[list[float], OpenLIFUFieldData('Global PNP', 'Maximum peak negative pressure in the entire field, in MPa')]

Maximum peak negative pressure in the entire field, in MPa

mainlobe_isppa_Wcm2: Annotated[list[float], OpenLIFUFieldData('Mainlobe ISPPA', 'Spatial peak pulse average intensity in the mainlobe, in W/cm²')]

Spatial peak pulse average intensity in the mainlobe, in W/cm²

mainlobe_ispta_mWcm2: Annotated[list[float], OpenLIFUFieldData('Mainlobe ISPTA', 'Spatial peak time average intensity in the mainlobe, in mW/cm²')]

Spatial peak time average intensity in the mainlobe, in mW/cm²

mainlobe_pnp_MPa: Annotated[list[float], OpenLIFUFieldData('Mainlobe PNP', 'Peak negative pressure in the mainlobe, in MPa')]

Peak negative pressure in the mainlobe, in MPa

p0_MPa: Annotated[list[float], OpenLIFUFieldData('Emitted pressure (MPa)', 'Initial pressure values in the field, in MPa')]

Initial pressure values in the field (MPa)

param_constraints: Annotated[Dict[str, ParameterConstraint], OpenLIFUFieldData('Parameter constraints', None)]

Add description

Type:

TODO

power_W: Annotated[float | None, OpenLIFUFieldData('Emitted Power (W)', 'Emitted power from the transducer face (W)')] = None

Emitted power from the transducer face (W)

sequence_duration_s: Annotated[float | None, OpenLIFUFieldData('Sequence duration (s)', 'Total duration of the sequence (s)')] = None

Total duration of the sequence (s)

sidelobe_isppa_Wcm2: Annotated[list[float], OpenLIFUFieldData('Sidelobe ISPPA', 'Spatial peak pulse average intensity in the sidelobes, in W/cm²')]

Spatial peak pulse average intensity in the sidelobes, in W/cm²

sidelobe_pnp_MPa: Annotated[list[float], OpenLIFUFieldData('Sidelobe PNP', 'Peak negative pressure in the sidelobes, in MPa')]

Peak negative pressure in the sidelobes, in MPa

target_position_ax_mm: Annotated[list[float], OpenLIFUFieldData('Target position axial (mm)', 'Axial position of the target, in mm')]

Axial position of the target, in mm

target_position_ele_mm: Annotated[list[float], OpenLIFUFieldData('Target position elevation (mm)', 'Elevation position of the target, in mm')]

Elevation position of the target, in mm

target_position_lat_mm: Annotated[list[float], OpenLIFUFieldData('Target position lateral (mm)', 'Lateral position of the target, in mm')]

Lateral position of the target, in mm

to_json(compact: bool) str[source]

Serialize a SolutionAnalysis to a json string

Parameters:

compact – if enabled then the string is compact (not pretty). Disable for pretty.

Returns: A json string representing the complete SolutionAnalysis object.

voltage_V: Annotated[float | None, OpenLIFUFieldData('Voltage (V)', 'Voltage applied to the transducer (V)')] = None

Voltage applied to the transducer (V)