Jacobian calculated without calling any function, for computing speed reasons.
Maxima, Wxmaxima script
ni4_1(xi, eta):= (1. -xi)*(1. -eta)/4.$
ni4_2(xi, eta):= (1. +xi)*(1. -eta)/4.$
ni4_3(xi, eta):= (1. +xi)*(1. +eta)/4.$
ni4_4(xi, eta):= (1. -xi)*(1. +eta)/4.$
ni4xi_1(xi, eta):=diff(ni4_1(xi, eta),xi,1)$
ni4xi_2(xi, eta):=diff(ni4_2(xi, eta),xi,1)$
ni4xi_3(xi, eta):=diff(ni4_3(xi, eta),xi,1)$
ni4xi_4(xi, eta):=diff(ni4_4(xi, eta),xi,1)$
ni4eta_1(xi, eta):=diff(ni4_1(xi, eta),eta,1)$
ni4eta_2(xi, eta):=diff(ni4_2(xi, eta),eta,1)$
ni4eta_3(xi, eta):=diff(ni4_3(xi, eta),eta,1)$
ni4eta_4(xi, eta):=diff(ni4_4(xi, eta),eta,1)$
j4_1(xi, eta):=factorsum(ni4xi_1(xi, eta)*x1+ni4xi_2(xi, eta)*x2+ni4xi_3(xi, eta)*x3+ni4xi_4(xi, eta)*x4)$
j4_1(xi, eta);
j4_2(xi, eta):=factorsum(ni4xi_1(xi, eta)*y1+ni4xi_2(xi, eta)*y2+ni4xi_3(xi, eta)*y3+ni4xi_4(xi, eta)*y4)$
j4_2(xi, eta);
j4_3(xi, eta):=factorsum(ni4eta_1(xi, eta)*x1+ni4eta_2(xi, eta)*x2+ni4eta_3(xi, eta)*x3+ni4eta_4(xi, eta)*x4)$
j4_3(xi, eta);
j4_4(xi, eta):=factorsum(ni4eta_1(xi, eta)*y1+ni4eta_2(xi, eta)*y2+ni4eta_3(xi, eta)*y3+ni4eta_4(xi, eta)*y4)$
j4_4(xi, eta);
dj4(xi, eta):=factorout(j4_1(xi, eta)*j4_4(xi, eta)-j4_2(xi, eta)*j4_3(xi, eta),xi,eta)$
dj4(xi, eta);
ni4x_1(xi,eta):=factorout(j4_4(xi, eta)*ni4xi_1(xi, eta),eta,xi) - factorout(j4_3(xi, eta)*ni4eta_1(xi, eta),xi,eta)$
ni4x_1(xi,eta);
ni4x_2(xi,eta):=factorout(j4_4(xi, eta)*ni4xi_2(xi, eta),eta,xi) - factorout(j4_3(xi, eta)*ni4eta_2(xi, eta),eta,xi)$
ni4x_2(xi,eta);
ni4x_3(xi,eta):=factorout(j4_4(xi, eta)*ni4xi_3(xi, eta),eta,xi) - factorout(j4_3(xi, eta)*ni4eta_3(xi, eta),xi,eta)$
ni4x_3(xi,eta);
ni4x_4(xi,eta):=factorout(j4_4(xi, eta)*ni4xi_4(xi, eta),eta,xi) - factorout(j4_3(xi, eta)*ni4eta_4(xi, eta),eta,xi)$
ni4x_4(xi,eta);
ni4y_1(xi,eta):=factorout(-j4_2(xi, eta)*ni4xi_1(xi, eta),eta,xi) + factorout(j4_1(xi, eta)*ni4eta_1(xi, eta),xi,eta)$
ni4y_1(xi,eta);
ni4y_2(xi,eta):=factorout(-j4_2(xi, eta)*ni4xi_2(xi, eta),eta,xi) + factorout(j4_1(xi, eta)*ni4eta_2(xi, eta),eta,xi)$
ni4y_2(xi,eta);
ni4y_3(xi,eta):=factorout(-j4_2(xi, eta)*ni4xi_3(xi, eta),eta,xi) + factorout(j4_1(xi, eta)*ni4eta_3(xi, eta),xi,eta)$
ni4y_3(xi,eta);
ni4y_4(xi,eta):=factorout(-j4_2(xi, eta)*ni4xi_4(xi, eta),eta,xi) + factorout(j4_1(xi, eta)*ni4eta_4(xi, eta),eta,xi)$
ni4y_4(xi,eta);
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=R8), | intent(in) | :: | ksi | |||
real(kind=R8), | intent(in) | :: | eta | |||
real(kind=R8), | intent(in), | dimension(4) | :: | x | ||
real(kind=R8), | intent(in), | dimension(4) | :: | y |