/* phi_tri.h Phi and derivatives for order 1 through 4 for Galerkin FEM * and dimension 1 (x) through 4 (x,y,z,t) on triangles * phi11(c,x) is linear(order 1) FEM phi function in 1 dimension(x) * =c[0]+c[1]*x c is a vector of polynomial coefficients * phi11x(c,x) is first derivative of phi11(c,x) * * phi21(c,x) is second order FEM phi function in 1 dimension * phi21x(c,x) is first derivative of phi21(c,x) * phi21xx(c,x) is second derivative of phi21(c,x) * * phi22(c,x,y) is second order FEM phi function in 2 dimensions * = c[0]+c[1]*x+c[2]*y+c[3]*x*x+c[4]*x*y+c[5]*y*y * phi22x(c,x,y) is partial derivative of phi22(c,x,y) with respect to x * phi22y(c,x,y) is partial derivative of phi22(c,x,y) with respect to y * phi22xx(c,x,y) is second partial of phi22(c,x,y) with respect to x * phi22xy(c,x,y) is second partial of phi22(c,x,y) wrt x and wrt y * phi22yy(c,x,y) is second partial of phi22(c,x,y) with respect to y * * ... up to fourth derivative of fourth order phi in four dimensions * phi44(c,x,y,z,t) is fourth order four dimensional FEM phi function * ... * phi44tttt(c,x,y,z,t) is fourth partial of phi44(c,x,y,z,t) wrt t */ double phi11(double c[], double x); double phi11x(double c[], double x); double phi21(double c[], double x); double phi21x(double c[], double x); double phi21xx(double c[], double x); double phi31(double c[], double x); double phi31x(double c[], double x); double phi31xx(double c[], double x); double phi31xxx(double c[], double x); double phi41(double c[], double x); double phi41x(double c[], double x); double phi41xx(double c[], double x); double phi41xxx(double c[], double x); double phi41xxxx(double c[], double x); double phi12(double c[], double x, double y); double phi12x(double c[], double x, double y); double phi12y(double c[], double x, double y); double phi22(double c[], double x, double y); double phi22x(double c[], double x, double y); double phi22y(double c[], double x, double y); double phi22xx(double c[], double x, double y); double phi22xy(double c[], double x, double y); double phi22yy(double c[], double x, double y); double phi32(double c[], double x, double y); double phi32x(double c[], double x, double y); double phi32y(double c[], double x, double y); double phi32xx(double c[], double x, double y); double phi32xy(double c[], double x, double y); double phi32yy(double c[], double x, double y); double phi32xxx(double c[], double x, double y); double phi32xxy(double c[], double x, double y); double phi32xyy(double c[], double x, double y); double phi32yyy(double c[], double x, double y); double phi42(double c[], double x, double y); double phi42x(double c[], double x, double y); double phi42y(double c[], double x, double y); double phi42xx(double c[], double x, double y); double phi42xy(double c[], double x, double y); double phi42yy(double c[], double x, double y); double phi42xxx(double c[], double x, double y); double phi42xxy(double c[], double x, double y); double phi42xyy(double c[], double x, double y); double phi42yyy(double c[], double x, double y); double phi42xxxx(double c[], double x, double y); double phi42xxxy(double c[], double x, double y); double phi42xxyy(double c[], double x, double y); double phi42xyyy(double c[], double x, double y); double phi42yyyy(double c[], double x, double y); double phi13(double c[], double x, double y, double z); double phi13x(double c[], double x, double y, double z); double phi13y(double c[], double x, double y, double z); double phi13z(double c[], double x, double y, double z); double phi23(double c[], double x, double y, double z); double phi23x(double c[], double x, double y, double z); double phi23y(double c[], double x, double y, double z); double phi23z(double c[], double x, double y, double z); double phi23xx(double c[], double x, double y, double z); double phi23xy(double c[], double x, double y, double z); double phi23xz(double c[], double x, double y, double z); double phi23yy(double c[], double x, double y, double z); double phi23yz(double c[], double x, double y, double z); double phi23zz(double c[], double x, double y, double z); double phi33(double c[], double x, double y, double z); double phi33x(double c[], double x, double y, double z); double phi33y(double c[], double x, double y, double z); double phi33z(double c[], double x, double y, double z); double phi33xx(double c[], double x, double y, double z); double phi33xy(double c[], double x, double y, double z); double phi33xz(double c[], double x, double y, double z); double phi33yy(double c[], double x, double y, double z); double phi33yz(double c[], double x, double y, double z); double phi33zz(double c[], double x, double y, double z); double phi33xxx(double c[], double x, double y, double z); double phi33xxy(double c[], double x, double y, double z); double phi33xxz(double c[], double x, double y, double z); double phi33xyy(double c[], double x, double y, double z); double phi33xyz(double c[], double x, double y, double z); double phi33xzz(double c[], double x, double y, double z); double phi33yyy(double c[], double x, double y, double z); double phi33yyz(double c[], double x, double y, double z); double phi33yzz(double c[], double x, double y, double z); double phi33zzz(double c[], double x, double y, double z); double phi43(double c[], double x, double y, double z); double phi43x(double c[], double x, double y, double z); double phi43y(double c[], double x, double y, double z); double phi43z(double c[], double x, double y, double z); double phi43xx(double c[], double x, double y, double z); double phi43xy(double c[], double x, double y, double z); double phi43xz(double c[], double x, double y, double z); double phi43yy(double c[], double x, double y, double z); double phi43yz(double c[], double x, double y, double z); double phi43zz(double c[], double x, double y, double z); double phi43xxx(double c[], double x, double y, double z); double phi43xxy(double c[], double x, double y, double z); double phi43xxz(double c[], double x, double y, double z); double phi43xyy(double c[], double x, double y, double z); double phi43xyz(double c[], double x, double y, double z); double phi43xzz(double c[], double x, double y, double z); double phi43yyy(double c[], double x, double y, double z); double phi43yyz(double c[], double x, double y, double z); double phi43yzz(double c[], double x, double y, double z); double phi43zzz(double c[], double x, double y, double z); double phi43xxxx(double c[], double x, double y, double z); double phi43xxxy(double c[], double x, double y, double z); double phi43xxxz(double c[], double x, double y, double z); double phi43xxyy(double c[], double x, double y, double z); double phi43xxyz(double c[], double x, double y, double z); double phi43xxzz(double c[], double x, double y, double z); double phi43xyyy(double c[], double x, double y, double z); double phi43xyyz(double c[], double x, double y, double z); double phi43xyzz(double c[], double x, double y, double z); double phi43xzzz(double c[], double x, double y, double z); double phi43yyyy(double c[], double x, double y, double z); double phi43yyyz(double c[], double x, double y, double z); double phi43yyzz(double c[], double x, double y, double z); double phi43yzzz(double c[], double x, double y, double z); double phi43zzzz(double c[], double x, double y, double z); double phi14(double c[], double x, double y, double z, double t); double phi14x(double c[], double x, double y, double z, double t); double phi14y(double c[], double x, double y, double z, double t); double phi14z(double c[], double x, double y, double z, double t); double phi14t(double c[], double x, double y, double z, double t); /* ... */ double phi44zzzz(double c[], double x, double y, double z, double t); /* end phi_tri.h */