Finite Difference: you make no assumption on the shape of the solution, but you make approximations on the PDE operator.
Finite Elements: you make an assumption on the shape of the solution (typically: a polynomial by part) but you use the exact PDE operator.
FD can sometimes be unstable. Stability and convergence must be checked for each scheme separately. FE are unconditionally stable, but the accuracy depends on your choice of shape function. In either case you must chose carefully the discretisation of the domain you are working on, because the precision of the solution depends strongly on it.
In terms of convergence, FE and FD have similar convergence rates. However, some FD schemes can have a better convergence if you chose the parameters of the scheme very carefully. It really depends on the scheme you use.
Both approaches consists in establishing an algebraic system of the form [K]{U}={F} to solve. Each equation is associated to an unknown (1 unknown=1 dof attached to one node). Finite volume approach will lead to the same kind of system.
The starting point is an equilibrium equation (heat equation, elasticity, Navier-Stokes...) with boundary conditions and initial conditions if necessary.
It's the way to obtain this system that differs from:
- Finite difference method that directly discretizes spatial operators (divergence, gradient...) to transform the continuous-form of your equation to a discret-form. You then obtain N equations in directly applying the discret-form on each nodes of your mesh.
-Finite element that:
[1] first requires an integral form of the equilibrium equation (weighted residual method) we can write W=0
[2] integration domain is decomposed in elementary sub-domains (called elements): W=sum(We)=0
[3] finite element approximation of your unknown (temperature...) : sum of approximation functions (Ni) and nodal values of the unknown (Ti): T(x,y)=N1*T1+N2*T2+...
Remark: only this step is really finite element philosophy, all other steps are mathematics and algebraic manipulations.
[4] calculation of elementary integral and extraction of elementary matrix [Ke] and elementary vector {Fe}
[5] Assembling of [Ke] in [K] and {Fe} in {F}
[6] Introduction of Dirichlet's boundary condition (values of T on specific boundaries)
[7] Solving (common step for finite difference)
The non-stationary part is then solved by a finite difference method in time.
All methods (FD, FEM, FV) may encounter stability problems and precision errors. They have their own approaches to stabilize their solutions (numerical diffusion, shock capturing, upwind difference scheme...) and to increase the precision levels.