Hello everyone,
I am doing some calculations, and in that, I need a partial derivative with respect to x. I am attaching the code here. Could you please confirm if that is the right way to do it? I am a little suspicious.
gfu = GridFunction(fes, name="us")
gfu.Set(uinc)
res = gfu.vec
gfu.vec.data = a.mat.Inverse() * b.vec
gfu1 = GridFunction(fes, name="ui")
gfu1.Set(uinc)
res = gfu1.vec
gfu1.vec.data = res#a.mat.Inverse() * b.vec
gfu2 = GridFunction(fes, name="ut")
gfu2.Set(uinc)
res = gfu2.vec
gfu2.vec.data = res+a.mat.Inverse() * b.vec
gradu = grad(gfu);
gradut = grad(gfu2);
gradui = grad(gfu1);
gradux = gradu[0]
gradutx = gradut[0]
graduix = gradui[0]
Y = -3;
X = -28;
u_t = gfu2((mesh(X,Y)));
du_t = gradutx((mesh(X,Y)));
Wt = np.real(1/2*mu*du_t*exp(-1j*omega*10)*np.conj((-1j*omega)*u_t*exp(-1j*omega*10)));
X = 28;
u_r = gfu((mesh(X,Y)));
du_r = gradux((mesh(X,Y)));
u_i = gfu1((mesh(X,Y)));
du_i = graduix((mesh(X,Y)));
Wr = -np.real(1/2*mu*du_r*exp(-1j*omega*10)*np.conj((-1j*omega)*u_r*exp(-1j*omega*10)));
Wi = np.real(1/2*mu*du_i*exp(-1j*omega*10)*np.conj((-1j*omega)*u_i*exp(-1j*omega*10)));
In the code above, as you can see, I am calculating the gradients of three functions and then taking the x component out of them and then I want it at a point so I am using the mesh option.
Thank you.