paraheat_pwc, a MATLAB library which can set up and solve a parameterized steady heat equation in a 2D spatial domain, using a piecewise constant diffusivity parameterized by vc, and reporting selected solution values vs.
The function paraheat_pwc() formalizes a functional input/output structure for a problem involving the steady heat equation in a 2D domain with a diffusivity function, for which values of the solution are sampled at specified sensor locations.
In this functional framework, the diffusivity parameters vc are considered the input, and the sensor readings vs the output. Thus, at the simplest level, we have
[ ns, xs, ys, vs ] = paraheat_pwc ( vc );which allows us to concentrate on the relationship between diffusivity parameters and resulting sensor readings. ns is the number of sensors, while the sensor coordinates are in (xs,ys).
The function paraheat_sample() can call paraheat_pwc with a variety of values of vc, and create a data file storing the random number seed, input vc, and output vs, for later analysis.
An interesting goal is to characterize the relationship of vs as a function of vc, including the sensitivity and the possibility of inverting the relationship, that is, to approximate vc given values of vs.
The steady state heat equation to be solved is:
- del ( k(x,y) * grad u ) = f(x,y)over the unit square 0 < x, y < 1.
Zero Dirichlet boundary conditions are applied. The right hand side function is set as:
f(x,y) = 1000 * x * ( 1 - x ) * y * ( 1 - y );
The diffusivity is represented by k(x,y). For this problem, k(x,y) is a piecewise constant function. The region is divided into a 4x4 grid of rectangles, to each of which a constant value vc is assigned. These values are regarded as the parameters of the problem.
After the solution is computed, the value vs of the solution is determined at a certain number of sensor locations.
The computer code and data files made available on this web page are distributed under the GNU LGPL license.
paraheat_pwc is available in a MATLAB version.
paraheat_gaussian, a MATLAB program which sets up and solves a parameterized steady heat equation in a 2D spatial domain, with a gaussian diffusivity parameterized by (xc,yc), sc and vc.
paraheat_gaussian_plot, a MATLAB program which calls paraheat_gaussian() to set up and solve a parameterized steady heat equation in a 2D spatial domain, with a gaussian diffusivity and then uses radial basis functions (RBF) to reconstruct the finite element solution from a set of sample values.
paraheat_gaussian_sample, a MATLAB program which repeatedly calls paraheat_gaussian() to set up and solve a parameterized steady heat equation in a 2D spatial domain, with a gaussian diffusivity, saving values of the finite element solution at selected points, and writing the saved data to a file.
paraheat_pwc_1d, a MATLAB program which sets up and solves a parameterized steady heat equation in a 1D region, with a piecewise constant diffusivity.
paraheat_pwc_plot, a MATLAB program which calls paraheat_pwc() to set up and solve a parameterized steady heat equation in a 2D spatial domain, with a piecewise constant diffusivity and then uses radial basis functions (RBF) to reconstruct the finite element solution from a set of sample values.
paraheat_pwc_sample, a MATLAB library which repeatedly calls paraheat_pwc() to set up and solve a parameterized steady heat equation in a 2D spatial domain, with a piecewise constant diffusivity, saving values of the finite element solution at selected points, and writing the saved data to a file.