This is a custom deal.ii application that has been developed to solve a heat transfer problem. While the problem would be extremely difficult to solve analytically due to the "complex" boundary conditions, the solved problem is quite simple for a finite-element analysis.
The problem is a small rectangle with dimensions 2.5cm x 1cm, and is composed of 3 distinct boundary conditions. On y = 1, from x = 1 to x = 2.5, a constant temperature of 400K is applied. On x = 0, from y = 0 to y = 1, a heat flux in the x direction only that is applied according to the equation: B(1-y) where B is a constant.
There is a heat generation term in the given PDE, equal to Ax^2 where A is a constant.
Kx = 15 W/m^2
Ky = 25 W/m^2
A is in (0, 5) x 1000 W/m^5
B is 50 W/m^3
T (temperature at the Dirichlet boundary) = 400K
The program is written with a static geometry and boundary locations / types, however the above constants may be changed through the command-line (as well as several other options pertaining to the finite-element formulation itself.
The program may be invoked and produce a solution using the following syntax: ./project [OPTIONS] [SOLUTION_FILE.vtk] Where both [OPTIONS] and [SOLUTION_FILE.vtk] are optional parameters. [OPTIONS] follows unix-style command-line options, with the following values being accepted:
- -? shows a help menu
- -r refines the mesh times (defaults to 0)
- -f write the generated mesh to file for visualization
- -s actually solve the problem
- -q <num|auto> allows you to manually specify the number of quadrature points used (defaults to auto)
- -i set the maximum number of CG iterations performed for the solution (defaults to 1000)
- -t set the tolerance for the residual in the CG solution (defaults to 1e-12)
- -o set the Lagrange interpolation polynomial order (defaults to 1)
- -x set the Kx value (defaults to 15)
- -y set the Ky value (defaults to 25)
- -A set the A value (defaults to 5000)
- -B set the B value (defaults to 50)
- -T set the boundary temperature at the Dirichlet boundary (defaults to 400)
If [SOLUTION_FILE.vtk] is specified, the solution will be graphically written to the specified file (in VTK format). If it is not specified and a solution is performed, the solution will be written to "solution.vtk", overwriting that file.