Skip to content

Need help defining flux-loop and pickup coil geometry for MAST reconstruction #207

@afshin-arj

Description

@afshin-arj

Hi,

I’m working on a FreeGSNKE diverted equilibrium reconstruction for the MAST tokamak (using MAST-equivalent geometry). The solver and inverse optimizer are working correctly — I can build the machine and obtain a diverted solution with good convergence and stable separatrix topology.
However, when trying to evaluate synthetic magnetic diagnostics, I hit two errors:

'Probes' object has no attribute 'greens_psi_coils_floops'
'Probes' object has no attribute 'pickup_pos'

This happens because my current probe definition only contains the positions (R, Z) of the flux loops and pickup coils — essentially what we have from the MAST geometry files — but does not include the additional metadata FreeGSNKE needs (e.g., turns, orientation vectors, areas). As a result, flux loops do not get Green’s functions built (greens_psi_coils_floops is missing) and pickup coils have no orientation defined (pickup_pos missing), so synthetic ψ and pickup signals cannot be computed.

As far as I understand:

  1. Using the existing MAST geometry, we do know the R/Z positions of the magnetic probes.
  2. From experimental data, we do have measured values for the flux loops and pickup coils.

What I need help with is:

What is the minimal, correct format for defining flux-loop geometry in the magnetic_probes.pickle that FreeGSNKE expects?
For example, does each loop need:

  • (R, Z)
  • number of turns
  • loop area or ψ coupling factor?

What is the correct way to define pickup coils so that pickup_pos and orientation vectors are available?
Should they include:

  • (R, Z)
  • axis orientation unit vector
  • wire loop geometry?

Are there existing reference examples (for MAST or other machines) I could follow to build a complete flux-loop / pickup coil definition? Ideally in .pickle format that FreeGSNKE uses.
Right now I’m using an interim constraint strategy where I treat the measured flux loops as isoflux constraints rather than computing synthetic ψ values — but I want to move beyond that and compare against real diagnostic measurements.
Any pointers, data structure examples, or guidance on how to complete the diagnostic geometry definition would be appreciated.

Thanks

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions