Simply put, FDM is a differential scheme, that is approximation of a taylor series expansion. You try to write the first order, second order differential in terms of difference between two point values. This may bring in some approximation error.
Finite Volume method is an integral scheme. Since you are integrating across the area, chance of error is minimized.
Finite Element Method is also an integral scheme.
So between a differential and an integral scheme (integral scheme scores in terms of error).
Differential schemes are faster and error can be minimized if you have regular grids (squares and rectangles).
Integral schemes are slightly slower but score over FDM when the mesh is irregular.
Most of the commercial software like FLUENT (FVM) are either FVM or FEM (Deform)
Simply put, FDM is a differential scheme, that is approximation of a taylor series expansion. You try to write the first order, second order differential in terms of difference between two point values. This may bring in some approximation error.
Finite Volume method is an integral scheme. Since you are integrating across the area, chance of error is minimized.
Finite Element Method is also an integral scheme.
So between a differential and an integral scheme (integral scheme scores in terms of error).
Differential schemes are faster and error can be minimized if you have regular grids (squares and rectangles).
Integral schemes are slightly slower but score over FDM when the mesh is irregular.
Most of the commercial software like FLUENT (FVM) are either FVM or FEM (Deform)
Please go through the following attached files and link for detail information.
To analyze the CFD model by Fluent, Finite Volume Method is used.
A finite difference method discretization is based upon the differential form of the PDE to be solved. Each derivative is replaced with an approximate difference formula. The computational domain is usually divided into hexahedral cells and the solution will be obtained at each nodal point. The FDM is easiest to understand when the physical grid is Cartesian, but through the use of curvilinear transforms the method can be extended to domains that are not easily represented by brick-shaped elements. The discretization results in a system of equation of the variable at nodal points, and once a solution is found, then we have a discrete representation of the solution.
Finite volume method is a method for representing and evaluating partial differential equations in the form of algebraic equations.In the finite volume method, volume integrals in a partial differential equation that contain a divergence term are converted to surface integrals, using the divergence theorem. Useful for problems with body-fitted coordinate systems.
Finite element method is a numerical technique for finding approximate solutions to boundary value problems for partial differential equations.Capable of handling extremely complicated, time-dependent geometries and two-phase flow.The computational domain is divided up into smaller domains (finite elements) and the solution in each element is constructed from the basis functions. The actual equations that are solved are typically obtained by restating the conservation equation in weak form: the field variables are written in terms of the basis functions, the equation is multiplied by appropriate test functions, and then integrated over an element.
I agree with the answers given above but let me add a few more features of the methods. Let's say we start with a simple scalar partial differential equation: q_t + q_x =0 where q_t is the time-derivative of q and q_x is the spaced-derivative (this forms a hyperbolic equation, but not necessary for our discussion). We shall call this the differential form. The role of FDM, FVM, FEM, and any discretization method is to approximate the space-derivative q_x. FDM does this by directly using Taylor series expansions to represent q_x. In contrast, FVM/FEM and (say) discontinuous Galerkin (DGM) methods multiply the differential equation by a test function and then integrate. The solution q is then represented by a polynomial expansion (FVM uses piecewise constant functions). FEM and DGM use non-piecewise constant functions. The difference between these two methods is that FEM and DGM (and FVM) assume that the solution and the basis functions live in different spaces: FEM assumes that the solution and basis functions are continuous across "element" interfaces whereas DGM and FVM do not make this assumption. Integral forms like FVM, FEM, and DGM are very general and can be used (by default) on unstructured and non-orthogonal grids. In contrast FDM, are typically written on structured orthogonal grids but, like the others have already mentioned, techniques exist that allows one to apply FDM to unstructured and non-orthogonal grids. In fact, one can construct FDM methods that look very much like certain classes of FEM and DGM methods. Examples are the spectral multi-domain penalty methods which can be shown to be identical to the DGM method under certain assumptions.
Finally, let me just add that using Integral forms (FEM,FVM,DGM) really simplify the application of these methods for non-conforming adaptive mesh refinement. In addition, the fact that these "element-based" methods store all the necessary info to approximate a derivative, this means that these methods are more natural to parallelize on current computers. If one uses high order FDM, the resulting stencil (the points needed to approximate the derivative) grows and one needs to communicate large ghost cell regions across different processors (compute-cores). Element-based methods have all this information already within the "element' and are therefore quite natural for use on both CPU-based computers (using MPI) or GPU-based computers (using, e.g., CUDA or OpenCL). FDM are great for learning how to approximate PDEs but, in my opinion, do lack the flexibility of Integral/element-based methods.
FDM: you will approximate each derivative terms of a PDE (one equation or a system of them)by means a discrete algebraic relationship - generally a Taylor's series. We can accounting for some features of the problem to choice a better approximation, but, the method relies on the discrete derivative approximation. The derivatives are evaluated on NODES - almost ever a regular grid in some orthogonal coordinate system: cartesian, cylindrical, spherical, etc. After, you will have an algebraic system of equations to solve.
Classic FVM: The element ( in a cell center formulation) is a volume of control (VC)- a discrete region of space where you will INTEGRATE the PDE's. This procedure involves to evaluate the volumetric sources and the superficial fluxes that inflow and outflow from VC. It will involves the Gauss' theorem to convert the surface integral in volume integrals. The derivatives that remain on surfaces are approximated through interpolation functions - that can be the same such as FDM method or almost similar., e.g. a Laplace equation. At end , again we have an algebraic system of equation to solve. The meshes can be structured and regular as before, but we can use a generalized curvilinear system approach, multiblocks. The weight of all mapping between real geometry and the math grid relies on the Jocobian of transformation. A little more complex, but again, a algebraic system to solve. FVM has a better physical claim due its philosophy is to conserve the fluxes. This is the mains feature that fluid mechanics and CFD codes use it. ANSYS FLUENT is one example.
FEM: another integral method that consider an approximation of the solution inside of element: Linear, polynomial, bilinear, piecewise, lagrange, hermite, etc - there are many approaches according to application. The neighbors elements are not need to describe the solution inside of each element. The nodal values that define the element are related one to another trough shape forms and you can calculates a value of a variable inside of element if you know its nodal values - as you do not know all of them, - only in the boundaries - and a node can define more than one element. At the end we will have a set of algebraic equations. FEM has a better math basement developed for many researches and during a long time and a natural better grid conformation to complex geometries, what do it be used frequently in mechanical/ structural studies; but the conservation of fluxes is not an intrinsic feature - even though it can show conservative solutions. ANSYS Mechanical, NASTRAN ans COMSOLare examples.
Element based FVM - EbFVM: Similar to FEM, but the balances of the fluxes are done INSIDE the elements that is divided in sub-volumes. The fluxes are calculated on the faces that separate each sub -volume, and evaluated based on nodal values of the properties by means shape functions as in FEM. The name" based on elements" means that the evaluation need only to be made over each element. But, as each node share more than one element, more than one sub-volumes are associated to it, and the VC is assembled AROUND each node - a cell-vertex formulation. This couples the elements and the nodal values that represents de VC mean value of some variable. This method has the advantage of FEM in flexibility to work with complex geometries of any type, ans the conservation physical claim of classical FVM. At end, we need to solve a algebraic system of equations. ANSYS CFX is an example that employ the approach.
All methods generates a [A]{x}={b} algebraic system to solve and can be use in serial or parallel mode, and can be used to any physical problem, although we have some culture of use depends on the field.
I strongly suggest you to look for your answer in dedicated text books. Depending on the discipline you will find the appropiate one. In ocean modeling a good start is "Numerical Ocean Circulation model" (Haidvogel). The book start from the very beginning so it will be easy for you to follow the entire discussion.
In practice there are many differences in the computational implementation of these three methods. Overall, the finite difference method is the simplest implementation of the three and the finite element method to implement more costly. I, in particular, prefer the use of finite elementod because it is the best method with mathematical theoretical foundation, which helps a lot in the study of numerical analysis of the problems, as demonstrations of stability and convergence of equations under study.
Finite Difference method is based on the use of the Taylor series to transform the partial differential equations into a library of numerical equations that describe the
derivatives of a variable as the differences between values of the variable at various
points in space and time.
Finite Element Method: the domain is divided into a finite number of small sub-domains or elements. A simple variation of the dependent variables is assumed over each element, and these variations are then used to generate a description of how the variables vary over the whole domain.
Finite Volume Method approach involves the discretisation of the spatial domain into finite control volumes. A control volume overlaps with many mesh elements and can therefore be divided into sectors each of which belongs to a different mesh element.
From a mathematical point of view you can derive all three approximation ansatzes as so called Petrov-Galerkin methods of the weighted residual formulation of the PDEs using different kinds of test functions. Whereas the classical Bubunov-Galerkin method choose the spaces of ansatz and test functions identically local constant test functions concerning either a cell center or concerning a vertex of the grid l,ead to a finite volume formulation or a finite difference method. The implementation of the three different approaches can be completely different if no high level of abstraction in the sence ofobject orientated programming is used. For some problems the classical Galerkin formulation and the resulting finite element method is related to physical variational formulations.
The question is about the differences between FVM and FEM, because the FDM is the first and the simplest method. This approximate the PDE in a system of algebraic equations by using the Taylor expansion to express the derivatives through depended variable values. All numerical methods aim to the same: reducing the PDE in a system of algebraic equations. The FEM and FVM named integral methods, transfer the problem of PDE integrations to extremization problem, i.e. in the integrations of functions of depended variable in a given volume. Both methods discretize the domain in small volume elements of different shape.The FEM carries out the integration in each element by expressing integration function by basis (known) functions through variables values in the nodes of elements and the problem is reduced in solving a numerous algebraic equations of variable values at the nodes. While the FVM uses Gauss theorem to bring volume integrals to the surface integrals and for each surface element (in vectorial form) approximate the integrals by dot product of depend variable values gradient between centers of neighborhood volume elements with boundary surfaces. At last even this method provides a numerous system of algebraic equations where the unknowns are the values of variables at the centers of element volumes and at centers of surface patches.
We solve the governing partial differential equations numerically as the problems represented by the differential equations either don’t have the analytical solution or are too difficult to solve analytically. We have three main methods to solve them numerically: FDM, FEM and FVM. In all the three methods we convert a ‘continuous’ problem (represented by a p.d.e.) into a ‘discrete’ algebraic problem of the form [A]{x} = {b}, and then solve this algebraic problem essentially as {x} = inv([A]){b}, Where {x} is the solution vector. This is the CRUX OF CFD in simple words.
Please see the attached pdf file for details on the three methods.
The most popular CFD package ANSYS FLUENT is based on Finite Volume Method. Other popular CFD packages like ADINA and ANSYS CFX are Finite Element Method based.
Fundamentally, all are a class of variational methods with their roots in the method of weighted residues where the difference is in the function weight used. The difference lies in what, in their conception, they were developed and by whom, at first, they were used. Some properties of each method have advantage according to application, coding skills, and its relation with the physics. Some of them have the focus on EDP's while other bring some physical meaning, e.g. FVM claims for flux conservation - a very desirable feature in engineering. But it will depends on the numerical schema to not broke this assumption. Some times is a taste matter.
A finite volume method (FVM) discretization is based upon an integral form of the PDE to be solved (e.g. conservation of mass, momentum, or energy). The PDE is written in a form which can be solved for a given finite volume (or cell). The computational domain is discretized into finite volumes and then for every volume the governing equations are solved. The resulting system of equations usually involves fluxes of the conserved variable, and thus the calculation of fluxes is very important in FVM. The basic advantage of this method over FDM is it does not require the use of structured grids, and the effort to convert the given mesh in to structured numerical grid internally is completely avoided. As with FDM, the resulting approximate solution is a discrete, but the variables are typically placed at cell centers rather than at nodal points. This is not always true, as there are also face-centered finite volume methods. In any case, the values of field variables at non-storage locations (e.g. vertices) are obtained using interpolation.
A finite element method (FEM) discretization is based upon a piecewise representation of the solution in terms of specified basis functions. The computational domain is divided up into smaller domains (finite elements) and the solution in each element is constructed from the basis functions. The actual equations that are solved are typically obtained by restating the conservation equation in weak form: the field variables are written in terms of the basis functions, the equation is multiplied by appropriate test functions, and then integrated over an element. Since the FEM solution is in terms of specific basis functions, a great deal more is known about the solution than for either FDM or FVM. This can be a double-edged sword, as the choice of basis functions is very important and boundary conditions may be more difficult to formulate. Again, a system of equations is obtained (usually for nodal values) that must be solved to obtain a solution.
FVM provides a discrete solution, while FEM provides a continuous (up to a point) solution. FVM is generally considered easier to program than FEM, but opinions vary on this point. FVM are generally expected to provide better conservation properties, but opinions vary on this point also. If you are trying to decide which method to use, then the best path is probably found by consulting the literature in the specific problem area.
Basically, the way in which they are derived is what makes them so different. FDM is based on Taylor series expansion about grid points, and is the simplest one to derive/implement. A common misconception is that FDM requires uniform grids: in fact, it IS possible to use non-even spacing, but the results are really poor when compared to a uniform, cartesian grid. FVM is based on integral formulation of a conservation law, i.e., any convection-diffusion model (remark that both transient and convective terms CAN be zero, making this a suitable solver for pure diffusion/potential problems). One clear advantage of FVM is that it is far easier to deal with unstructured meshes, of any volume shape, than in the FDM case. You'll notice some softwares claim to be able to use polyhedrons instead of traditional hexas or tets: those are usually FVM based. FEM is a particular case of variational principle applied to discretized domains: it says that a weighted-averaged residual must be zero instead of the whole equation. To complete this statement, the weighting function is usually based on polynomial interpolation inside the elements, or subdomains. You'll notice that FEM reduces to FVM is the weighting and shape functions are set to 1. FEM is a more powerful technique, as higher order spatial discretizations are more easy to derive, and boundary conditions are naturally implemented in the formulation. Also, in the case of fluid dynamics, 2nd order elements allow an efficient velocity-pressure coupling scheme to be devised, since a staggered grid arises if one takes serendipity elements for velocity variables and the remaining internal node for pressure calculation. FEM now also allows discontinuous formulations that deal extremely well with shocks and other nonlinear jump cases.
As far as I remember, no commercial software today relies on FDM: it's either FVM or FEM. Fluent and CFX use FVM-based formulations, while Abaqus uses FEM, if I recall. As a rule, CFD softwares rely on FVM, while solid mechanics ones rely on FEM, but this is not imperative. There are tons of books on the subject, and for FEM I recommend starting with Zienkiewicz collection: it's pretty thorough. For FVM, J. Ferziger and M. Peric offer a concise treatment focused on CFD.