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>, 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>, p0_MPa: "Annotated[list[float], OpenLIFUFieldData('Emitted pressure (MPa)', 'Initial pressure values in the field, in MPa')]" = <factory>, TIC: "Annotated[float | None, OpenLIFUFieldData('Thermal index (TIC)', 'Thermal index in cranium (TIC)')]" = None, power_W: "Annotated[float | None, OpenLIFUFieldData('Emitted Power (W)', 'Emitted power from the transducer face (W)')]" = None, MI: "Annotated[float | None, OpenLIFUFieldData('Mechanical index (MI)', 'Mechanical index (MI)')]" = None, global_ispta_mWcm2: "Annotated[float | None, OpenLIFUFieldData('Global ISPTA (mW/cm²)', 'Global Intensity at Spatial-Peak, Time-Average (I_SPTA) (mW/cm²)')]" = 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

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)

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

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.