<< Graphics`Arrow`
<< Graphics`ImplicitPlot`
<< Graphics`Graphics3D`
Off[General::"spell"];
<< Graphics`Legend`
<< Graphics`PlotField`

ClearAll[vyr];
vyr[{x_, y_}] = 
        (x^2) + 0.7  (y^2) + 0.8  (x^3);

      
xmin = -1.5;
xmax = 1;
ymin = -1;
ymax = 1;
pl1 = 
        Plot3D[vyr[{x, y}], {x, xmin, xmax}, {y, ymin, ymax}, 
          ViewPoint -> {0.963,  2.818,  1.659}, 
          AxesLabel -> {"x ", "y", "z"}];

nx = 10;
ny = 10;
zmin = 0;
zmax = 0.7;
nz = 10;
k = 1.2;
body = 
        Table[{x, y} // N, {x, xmin, xmax, ((xmax - xmin)/(nx - 1))}, {y, 
              ymin, ymax, ((ymax - ymin)/(ny - 1))}] // 
          Flatten[#, 1] &;
implot[z_] := 
        ImplicitPlot[vyr[{x, y}] == z, {x, xmin, xmax}, 
          AxesLabel -> {"x", "y"}, 
          PlotStyle -> {Hue[0.6], Thickness[0.007]}, 
          AspectRatio -> Automatic, 
          PlotRange -> {{k*xmin, k*xmax}, {k*ymin, k*ymax}}, 
          DisplayFunction -> Identity, 
          PlotPoints -> 200];
grar = 
        Table[implot[z], {z, zmin, 
            zmax, ((zmax - zmin)/(nz - 1))}];
sh[a___] := 
        Show[a, DisplayFunction -> $DisplayFunction];

grad[
          bod_] := {D[vyr[{x, y}], x], 
            D[vyr[{x, y}], y]} /. {x -> bod[[1]], 
            y -> bod[[2]]};
sipkagrad[bod_List, mer_] := 
        Graphics[{Hue[0], 
            Arrow[bod, bod + mer*grad[bod], 
              HeadScaling -> Relative]}];
sipky = (sipkagrad[#, 0.3] &) /@ 
          body;
sh[grar, sipky];

divgrad[xx_, yy_] = 
        D[vyr[{x, y}], {x, 2}] + D[vyr[{x, y}], {y, 2}] /. {x -> xx, 
            y -> yy};
Plot3D[divgrad[x, y], {x, xmin, xmax}, {y, ymin, ymax}, 
        ViewPoint -> {0.963,  2.818,  1.659}, 
        AxesLabel -> {"x ", "y", "z"}];

vectx[{x_, y_}] := Sin[(x^2) + y];
vecty[{x_, y_}] := Cos[x + (y^2)];
vect[bod_] := {vectx[bod], vecty[bod]};
divvect[{xx_, yy_}] := 
        D[vectx[{x, y}], x] + D[vectx[{x, y}], y] /. {x -> xx, 
            y -> yy};

k = 1;
sipkadiv[bod_List, mer_] := 
        Graphics[{Hue[0], 
            Arrow[bod, bod + mer*vect[bod], 
              HeadScaling -> Relative]}];
sipky = (sipkagrad[#, 0.3] &) /@ 
          body;
sipecky = 
        sh[sipky, AspectRatio -> Automatic, 
          PlotRange -> {{k*xmin, k*xmax}, {k*ymin, 
                k*ymax}}];
Plot3D[Evaluate[divvect[{x, y}]], {x, xmin, xmax}, {y, ymin, ymax}, 
        ViewPoint -> {0.963,  2.818,  1.659}, 
        AxesLabel -> {"x ", "y", "z"}];

mindiv = NMinimize[{Evaluate[divvect[{x, y}]], 
              xmin ≤ x ≤ xmax, 
              ymin ≤ y ≤ ymax}, {x, 
              y}][[1]];
maxdiv = -NMinimize[{-Evaluate[divvect[{x, y}]], 
                xmin ≤ x ≤ xmax, 
                ymin ≤ y ≤ ymax}, {x, 
                y}][[1]];
grLmin = 0.2;
rgLmax = 0.8;
pleg = 
        DensityPlot[
          Evaluate[divvect[{x, y}]], {x, xmin, xmax}, {y, ymin, ymax}, 
          Mesh -> False, AspectRatio -> Automatic, 
          PlotPoints -> 30, DisplayFunction -> Identity, 
          ColorFunction -> Hue, Frame -> False];

k = 0.1;
sipecky = 
        sh[sipky, AspectRatio -> Automatic, 
          PlotRange -> {{k*xmin, k*xmax}, {k*ymin, 
                k*ymax}}];
sh[pleg, sipecky];

ListPlotVectorField[varray]