Hello Turhan, I am not sure but I think this will work, you can try this... *ds = yt.load("data_file_Name")* *grad = ds.add_gradient_fields(("gas","gravitational_potential"))* *grad *list will have a list of new field names which representing the 3 different components of the field and the magnitude of the gradient , e.g., "*gravitational_potential_gradient_x*" , " *gravitational_potential_gradient_y*" , " *gravitational_potential_gradient_z*" and " *gravitational_potential_gradient_magnitude*" Now for getting the negative gradient of gravitational potential we can derive field as follows: *####...x-component of negative of gradient of gravitational potential...* *def _GradientX(field, data)* * Gx = -1.0*data["gravitational_potential_gradient_x"]* * return Gx* *yt.add_field("Gx", function=_GradientX, take_log=False, units="code length/ code time**2")* *####...y-component of negative of gradient of gravitational potential...* *def _GradientY(field, data)* * Gy = -1.0*data["gravitational_potential_gradient_y"]* * return Gx* *yt.add_field("Gy", function=_GradientY, take_log=False, units="**code length/ code time**2**")* *####...z-component of negative of gradient of gravitational potential...* *def _GradientZ(field, data)* * Gz = -1.0*data["gravitational_potential_gradient_z"]* * return Gz* *yt.add_field("Gz", function=_GradientZ, take_log=False, units="**code length/ code time**2**")* Otherwise you can do this also, *grad = -1.0*ds.add_gradient_fields(("gas","gravitational_potential"))* I think this will work but this will also make the magnitude negative. But if you want to use only 3-components then this works and you can access it , e.g., *data["gravitational_potential_gradient_x"]* and similar for y and z component. Please let me know if this work. Regards Prateek Gupta