Not sure what you're trying to do, but some sample code to extract the field and data is below (should apply to anything with a rectilinear grid, but it's from Acoustic simulations):
sim = document.AllSimulations[simulation_idx]
simulation_extractor = sim.Results()
sim_sensor_extractor = simulation_extractor["Overall Field"] # Sensor Name
sim_field_extractor = sim_sensor_extractor.Outputs["Intensity"] # Field Name
sim_field_extractor.Update()
d_sim = sim_field_extractor.Data
sim_ref_field_extractor.Update()
out = d_sim_ref.Field(0) # 3D Field is extracted as a 1D array.
# 0 corresponds to the snapshot (typically, time or frequency)
# If you need this as a 3D array then use
# out_3d = np.reshape(out, grid_dims, order='F')
# once you have 'grid_dims' which I show how to get below
# important to remember order = 'F' because of the way that 3D arrays are unrolled into 1D (Fortran style)
sim_field_extractor.Update() # Just to be safe, I add this update step a few more times than needed
# Get grid: axes, dimensions
x = d_sim.Grid.XAxis
y = d_sim.Grid.YAxis
z = d_sim.Grid.ZAxis
# Careful: Simulations in S4L have grids defined at the nodes, and values (the field) defined at cell centers
# Therefore if you want the 'grid' used for the values in your field, you'll need to probably get the midpoints of the grid and reduce the grid dimensions by one in each direction.
# Something like: x_mid = (x[1:]+x[:-1]) / 2
grid = d_sim_ref.Grid.Dimensions