stochastic_heat2d_test


stochastic_heat2d_test, a Fortran77 code which calls stochastic_heat2d(), which solves the steady state heat equation in a 2D rectangular region with a stochastic heat diffusivity, using the finite difference method (FDM), and stochastic model from Babuska, Nobile and Tempone, using gnuplot() to illustrate the results.

The physical region, and the boundary conditions, are suggested by this diagram:

                   U = 0, Y = 1.0
             +-------------------+
             |          ...      |
             |         .:*:.     |
    U = 0    |          :::      | U = 0
    X = 0.0  |                   | X = 1.0
             |                   |
             +-------------------+
                   U = 0, Y = 0.0
      

A heat source is applied, which is concentrated at the point X = 0.6, Y = 0.8, whose center is suggested by the "*" in the diagram.

The region is covered with a grid of NX by NY nodes, and an NX by NY array U is used to record the temperature. The correspondence between array indices and locations in the region is suggested by giving the indices of the four corners:

                  I = NY
             +------------------+
             |                  |
      J = 1  |                  |  J = NX
             |                  |
             +------------------+
                  I = 1
      

The form of the steady heat equation is

        - d/dx K(x,y) du/dx - d/dy K(x,y) du/dy = F(x,y)
      
where K(x,y) is the heat conductivity, and F(x,y) is a heat source term. For this program, the heat conductivity function is assumed to be a function of four stochastic parameters OMEGA(1) through OMEGA(4); the form of the functional dependence is described in a paper by Babusk, Nobile and Tempone.

By using a simple finite difference approximation, this single equation can be replaced by NX * NY linear equations in NX * NY variables; each equation is associated with one of the nodes in the mesh. Nodes long the boundary generate boundary condition equations, while interior nodes generate equations that approximate the steady heat equation.

Choosing a particular set of values for OMEGA produces a single "realization" of the temperature field. However, an interesting question is to observe the influence of the OMEGA's on the solution U. As an example, the program fixes the values of OMEGA(3) and OMEGA(4), evaluates the solution U over a grid of values for OMEGA(1) and OMEGA(2), and plots the mean of the solution.

Licensing:

The computer code and data files described and made available on this web page are distributed under the MIT license

Related Data and Programs:

stochastic_heat2d, a Fortran77 code which solves the steady state heat equation in a 2D rectangular region with a stochastic heat diffusivity, using the finite difference method (FDM), and stochastic model from Babuska, Nobile and Tempone, using gnuplot() to illustrate the results.

Source Code:


Last revised on 16 December 2023.