MATLAB Answers

Taking gradient of solution and plotting results in very weird and unsmooth graphs?

3 views (last 30 days)
Mark Lepage
Mark Lepage on 8 Mar 2018
Answered: Ravi Kumar on 8 Mar 2018
Hello,
So I am interpolating a PDE solution to a meshgrid, and then taking the gradient of this.
When I plot the resulting gradient as a contour plot, I am getting extremely weird graphs in attachment (attached).
The gradient should be smooth (it is a gradient of a conservative potential field).
Any ideas what I am doing wrong?? Here is my pseudo code:
%interpolate PDE result
[X,Y,Z] = meshgrid(-(diam-1):diam,-(diam-1):diam,-(height-1):height);
V = interpolateSolution(result,X,Y,Z);
V = reshape(V,size(X));
%Calculate gradient
[Ex,Ey,Ez] = gradient(V);
Ex = -Ex;
Ey = -Ey;
Ez = -Ez;
%Slice and plot z slice vectors
sliceEx = Ex(xslice,:,:);
figure, contourf(sliceEx,50)

Answers (1)

Ravi Kumar
Ravi Kumar on 8 Mar 2018
I would suggest you use the evaluateGradient function directly instead of interpolating the solution and then finding its gradients.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!