FEM_50_HEAT is a version of FEM_50 that applies the finite element method to the time-dependent heat equation in an arbitrary region, using about 50 lines of MATLAB code.
Because the underlying routine is so sparse and flexible, the user has the burden of supplying datafiles and routines that specify the geometry, triangulation, boundary and initial conditions, and so on. In some cases, preparing these files can be a considerable effort.
The unknown state variable U(x,y,t) is assumed to satisfy the time dependent heat equation:
dU(x,y,t)/dt = Uxx(x,y,t) + Uyy(x,y,t) + F(x,y,t)for (x,y) in the region Omega and times t in [t_start,t_final].
Dirichlet boundary conditions have the form
U(x,y,t) = U_D(x,y,t)on GammaD.
Neumann boundary conditions may be specified on the outward normal derivative:
Un(x,y,t) = G(x,y,t)on GammaN.
If Gamma designates the boundary of the region Omega, then we presume that
Gamma = GammaD + GammaNbut the user is free to determine which boundary conditions to apply.
There is also an initial condition to be applied:
U(x,y,t_start) = U_init(x,y,t_start)
The code uses piecewise linear basis functions on triangular elements. It would not be hard to include the ability to handle quadrilateral elements or mixed grids using both types of elements, as is done in FEM_50.
Because the geometry is completely up to the user, just about any two dimensional region can be handled, with arbitrary shape, including holes and islands.
FEM is a data directory which contains a description of the data files that can be used to describe a finite element model.
FEM_50 is a MATLAB finite element program in just 50 lines of code.
FEM_BASIS_T3_DISPLAY is a MATLAB program which displays a basis function associated with a linear triangle ("T3") mesh.
FEM_BASIS_T6_DISPLAY is a MATLAB program which reads a quadratic triangle mesh and displays any associated basis function.
FEM_IO is a library of MATLAB routines for reading or writing the node, element and data files that define a finite element model.
FEM_TO_TEC is a MATLAB program that can convert an FEM model into a TEC graphics file.
FEM1D, is a MATLAB program which applies the finite element method, with piecewise linear basis functions, to a linear two point boundary value problem;
FEM1D_ADAPTIVE is a MATLAB program that applies the finite element method to a linear two point boundary value problem in a 1D region, using adaptive refinement to improve the solution.
FEM1D_NONLINEAR is a MATLAB program that applies the finite element method to a nonlinear two point boundary value problem in a 1D region.
FEM1D_PMETHOD is a MATLAB program that applies the p-method version of the finite element method to a linear two point boundary value problem in a 1D region.
FEM2D_HEAT is a MATLAB program for solving Poisson's equation on a square, using the finite element method.
FEM2D_POISSON is a MATLAB program for solving Poisson's equation on a square, using the finite element method.
FEMPACK is a MATLAB library of routines for finite element calculations.
FREE_FEM_HEAT is a MATLAB program which uses the finite element method and the backward Euler method to solve the time-dependent heat equation on an arbitrary triangulated region in 2D. (The user supplies some information in some problem-dependent subroutines.)
FREE_FEM_NAVIER_STOKES is a MATLAB program for solving the steady incompressible Navier Stokes equations on an arbitrary triangulated region, using the finite element method.
FREE_FEM_POISSON is a MATLAB program for solving Poisson's equation on a triangulated region, using the finite element method.
FREE_FEM_STOKES is a MATLAB program for solving the Stokes equations on a triangulated region, using the finite element method.
HOT_PIPE is a sample problem that can be run with FEM_50_HEAT.
HOT_POINT is a sample problem that can be run with FEM_50_HEAT.
PLTMG_SINGLE is a FORTRAN77 library of routines for solving elliptic partial differential equations using the finite element method with piecewise linear triangles and the multigrid approach.
TRIANGULATION_ORDER3 is a data directory which contains a description of the format for the files describing an order 3 triangulation.
You can go up one level to the MATLAB source codes.