// Third derivative example in FreeFem++
load “msh3” // only if you want 3D later, otherwise optional
// Define mesh
mesh Th = square(10, 10);
// Define finite element space (need degree >= 3 for 3rd derivatives)
fespace Vh(Th, P3);
// Define a test function
Vh u = x^3 + 2x^2y + y^3;
// Compute third derivatives
Vh d3x = dx(dxx(u)); // ∂³u / ∂x³
Vh d3y = dy(dyy(u)); // ∂³u / ∂y³
Vh d2x1y = dy(dxx(u)); // ∂³u / ∂x²∂y
Vh d1x2y = dx(dyy(u)); // ∂³u / ∂x∂y²
// Print values at a point (0.5, 0.5)
real px = 0.5, py = 0.5;
cout << "u(x,y) = " << u(px,py) << endl;
cout << "d³u/dx³ = " << d3x(px,py) << endl;
cout << "d³u/dy³ = " << d3y(px,py) << endl;
cout << "d³u/dx²dy = " << d2x1y(px,py) << endl;
cout << "d³u/dxdy² = " << d1x2y(px,py) << endl;
// Plot results
plot(u, value=1, cmm=“u(x,y)”);
plot(d3x, value=1, cmm=“∂³u/∂x³”);
plot(d3y, value=1, cmm=“∂³u/∂y³”);
plot(d2x1y, value=1, cmm=“∂³u/∂x²∂y”);
plot(d1x2y, value=1, cmm=“∂³u/∂x∂y²”);
What is the command for third order derivative?
This is not working