Hi Siegfried,

 

This is probably an oversight on our part that these fields are not correctly detected as having “gas” type. For most MHD codes, we have a special function that handles magnetic fields, but it looks like you are entering them in from memory using the yt.load_particles function.

 

I think if you access the field as ('io', 'magnetic_field_divergence'), It should work.

 

By the way, are you using the yt-4.0 branch for this? You probably should in this case.

 

Best,

 

John ZuHone

 

From: Siegfried Vanaverbeke <siegfriedvanaverbeke@gmail.com>
Sent: Tuesday, May 26, 2020 10:58 AM
To: yt-users@python.org
Subject: [yt-users] magnetic fields with particle data

 

All,

 

I have output from an SPH code including magnetic fields for each particle.  

I see there are no specific fields for MHD data related to particles. For example, I have 

 

data = {
       'particle_position_x': pos_x,
       'particle_position_y': pos_y,
       'particle_position_z': pos_z,
       'particle_mass': pmass,
       'particle_velocity_x': v_x,
       'particle_velocity_y': v_y,
       'particle_velocity_z': v_z,
       'magnetic_field_x':b_x,
       'magnetic_field_y':b_y,
       'magnetic_field_z':b_z,
       'magnetic_field_divergence': eb,
       'smoothing_length': h,
       'density': rho,
       'temperature': Tgas,
       'magnetic_field_magnitude': bmag    
    }

 

and then want to plot 

 

mag = yt.SlicePlot(ds, 'z', ('gas', 'magnetic_field_divergence'),width=(6.0,'pc'))

 

But  'magnetic_field_x' is not known for particle data, so yt gives an error message.   Is there a way to circumvent the problem ?

 

Siegfried