FEM2D_HEAT_SQUARE
FEM2D_HEAT applied to a SQUARE region
FEM2D_HEAT_SQUARE
is a FORTRAN90 library which
defines the geometry of a square region, as well as boundary and initial
conditions for a given heat problem, and is called by FEM2D_HEAT
as part of a solution procedure.
The mesh uses 81 nodes and forms 32 quadratic triangular elements.
We assume that the equation to be solved is
dUdT - Laplacian U + K * U = F
with
K = 0,
and
F = (2*pi*pi-1)*sin(pi*x)*sin(pi*y)*exp(-t).
The exact solution is:
U = sin(pi*x) * sin(pi*y) * exp(-t).
which is the formula we use to define our functions G
(for the boundary conditions) and H (for the initial
conditions).
Licensing:
The computer code and data files described and made available on this
web page are distributed under
the GNU LGPL license.
Languages:
FEM2D_HEAT_SQUARE is available in
a FORTRAN90 version.
Related Data and Programs:
CONTOUR_SEQUENCE4,
a MATLAB program which
makes a sequence of contour plots based on a single XY coordinate file,
and a sequence of Z(X,Y) data files.
FEM2D_HEAT,
a FORTRAN90 program which
uses the finite element method and the backward Euler method to solve the
2D time-dependent heat equation on an arbitrary triangulated region.
Source Code:
-
square.f90,
the user-supplied routines to evaluate the right hand side,
linear coefficient, initial and boundary conditions;
Examples and Tests:
-
square.txt,
the output file.
-
square_nodes.png,
a PNG image of
the 49 nodes;
-
square_nodes.txt,
a text file containing a list, for each node, of its X and Y
coordinates;
-
square_elements.png,
a PNG image of
the 32 elements;
-
square_elements.txt,
a text file containing a list, for each element, of the six
nodes that compose it;
-
square_time.txt,
a text file containing the solution times;
-
u0000.txt,
the solution U at time step 0;
-
u0001.txt,
the solution U at time step 1;
-
u0002.txt,
the solution U at time step 2;
-
u0003.txt,
the solution U at time step 3;
-
u0004.txt,
the solution U at time step 4;
-
u0005.txt,
the solution U at time step 5;
-
u0006.txt,
the solution U at time step 6;
-
u0007.txt,
the solution U at time step 7;
-
u0008.txt,
the solution U at time step 8;
-
u0009.txt,
the solution U at time step 9;
-
u0010.txt,
the solution U at time step 10;
The MATLAB program CONTOUR_SEQUENCE4 can make contour
plots from the sequence of solutions:
-
u0000.png,
the solution U at time step 0;
-
u0001.png,
the solution U at time step 1;
-
u0002.png,
the solution U at time step 2;
-
u0003.png,
the solution U at time step 3;
-
u0004.png,
the solution U at time step 4;
-
u0005.png,
the solution U at time step 5;
-
u0006.png,
the solution U at time step 6;
-
u0007.png,
the solution U at time step 7;
-
u0008.png,
the solution U at time step 8;
-
u0009.png,
the solution U at time step 9;
-
u0010.png,
the solution U at time step 10;
List of Routines:
-
DIRICHLET_CONDITION sets the value of a Dirichlet boundary condition.
-
INITIAL_CONDITION sets the initial condition.
-
K_COEF evaluates the coefficient K(X,Y,T) function.
-
RHS gives the right-hand side of the differential equation.
You can go up one level to
the FORTRAN90 source codes.
Last revised on 29 December 2010.