ISC 5935 Schedule
Computational PDE's
Spring Session 2015
This informal class, ISC 5935, "Selected Topics: Computational PDE's"
meets once a week, on Tuesdays (usually) at 2:00pm, to discuss progress,
present results, plan the next week's work, and have a cup of coffee.
-
15 January:
Class overview; discussion of student "contracts"
-
20 January:
Mike will discuss a plan for investigating the Mitchell benchmark
problems;
Isaac will present his previous work on radial basis functions;
Wenju will discuss the results of running his 2D Navier Stokes code
on a benchmark problem;
-
27 January:
Isaac will compute and plot the Gaussian and multiquadric RBF's
in 1D, for 5 equally spaced points, and then the corresponding
cardinal or Lagrange functions; he will also start to explore the
sparse approach he is interested in;
Wenju will run his Navier Stokes code using the region
[0.5,2.5]x[0.5,2.5], with nu = 0.001 and rho = 1.0; he will tabulate
the L2 norm of the velocity error at 5 time steps between 0 and 1.
he will plot the mesh, the velocity vectors, and the pressure.
he will report the number of elements, the number of time steps,
and the elapsed CPU time.
Mike will present a description of four or five adaptive refinement
techniques; he will explain how an adapative scheme estimates the error
and decides where to refine; he will run Fenics on the first Mitchell
problem, and use the built-in adaptive meshing procedure to reduce
the error.
-
03 February:
Wenju will define the problem he is interested in, namely,
a system of incompressible time-dependent Navier-Stokes equations in
a 2D region, with a stochastic forcing term. He will create and
present a 1 page document listing the equations and explaining
how he sets up the finite element system and the stochastic term.
Mike will set up and solve the L-shaped region, Mitchell
problem #2, and give some numeric results for an adapative mesh
refinement approach to this problem. He may also present some
information about the Hermes software for hp refinement.
Isaac will look at the error calculation, and particularly
focus on boundary conditions. Hans has also suggested that he look
at the interpolation problem for a sequence of test problems.
-
10 February:
Mike has changed his project; he will discuss his new study
plan, which focuses on the application of the reduced basis technique
to PDE's with stochastic inputs. Mike also demonstrated some Fenics
code, using SLEPC and PETSC, that allowed him to solve the
eigenproblems associated with his calculations.
-
17 February:
Isaac is looking at a nearest neighbor algorithm, which would
allow him to develop a modified algorithm that only uses local
information. He hopes to have something programmed, or else will
at least explain the ideas behind this approach.
Wenju has found a paper with benchmark data for flow around
a cylinder, by Volker John. He set up his code for this problem and
compared his computations for drag and lift. His results differ
by a significant amount. He will try to see if he can fix the
discrepancy, and he will write a short report on what he has done,
to turn in next time.
Mike is working on implementing the ideas he discussed.
-
24 February:
Mike has sketched out an approach for a multilevel algorithm
for a stochastic PDE. He explained the 'vanilla' version of his
algorithm, as well as his thoughts about using a hierarchical
snapshot set. Next week, he will report on his efforts to use
Hans's code as a starting point.
Wenju has been trying to resolve the discrepancy between
his results and the benchmark paper. He is using an Euler method
in time, but thinks that a Crank-Nicolson time discretization might
be more appropriate. For next week, he will explain what he has
done to investigate this.
Isaac has gotten the multidimensional version of the sparse
RBF code working, using a KD-tree approach to get neighboring points.
He will show us some results next time.
-
03 March:
Wenju was excused from class for a medical emergency
involving a friend;
Isaac walked us through the calculations involved in setting
up the stencils for derivatives; we guessed that the stencils
can be used as "pre-weights" on the original functional data,
or, if used to multiply the functional data, results in estimated
derivative data associated with the basis functions. Isaac showed
a 1D plot, but we wanted a 2D example to argue over. We decided to
investigate the Frank functions.
Mike received the deterministic code from Hans, and needs to
reconfigure it to handle his stochastic expansion. He expectst that
by the next meeting, he will have the matrix assembly working, and
the reduced basis vectors computed.
-
10 March: (No class! Spring Break!)
-
17 March:
Isaac has run his sparse neighbor code in 2D and is getting
good results. However, when he goes from a 10x10 grid to a 100x100
grid, the total error is not going down. (This might be because he
needs to account for the fact that the dxdy integration area is
going down by a factor of 100...) He says the KD tree calculation
is slow, and a 100x100 grid takes 20 minutes to work through.
Mike says he has gotten the finite element information figured
out and his ROM code is now basically working. This is all written
in Matlab. Now he needs to start looking at a particular problem,
and generate some studies for a series of reduced basis sizes, or
grid refinements.
Wenju ran the Crank-Nicolson and backward Euler versions of
his code, and is getting reasonable approximations of drag and
lift, particularly for the CN code.
-
24 March:
Mike has a plan for his computations, but at the moment,
things are going wrong. He expects to be able to report some
results next time.
Wenju found some Navier Stokes calculations coded in
FreeFem and was able to modify them to solve his problem. He
did not have numerical results or plots to show, but says that
the final result compared well with the benchmark, although the
computational time was considerable, on the order of the two hours
that it takes his Fortran code to run. We asked him to prepare
a drag/lift plot for this new approach. We also suggested that
he try to make a fair comparison of the different codes that he
has written, using the same grid and time scheme. Wenju reported
a peculiar issue in the convergence ratio when dividing the grid
by sqrt(2) each time instead of 2. We decided that the two families
of grids might not be comparable, and that he is jumping back and
forth between two convergence curves with different constants.
Part of the iterative scheme in the FreeFem code was unclear to
Wenju; John suspected it was similar to a scheme in Max's book,
and will check into that.
Isaac was able to get better convergence estimates once he
modified his error calculation. When he looked at the interpolation
version of the problem, he didn't get such good results, but that
is actually not the problem he is interested in. He wants to get
onto a GPU system, and John will see about getting him some time.
-
31 March:
Wenju showed the numerical results from his FreeFem
implementation of his Navier-Stokes problem. The plots of lift and
drag looked much smoother than his previous results. Wenju said
he wondered whether he could modify his own code to match the
FreeFem results.
Isaac is in the middle of a coding effort.
Mike is working on this code, which is almost ready,
and is writing up a paper, and working with Hans on the theoretical
justification of his algorithm.
-
07 April:
Isaac is running on the RCC. He plans to do a comparison
of the sparse code's performance with Python, versus running
on the GPU's with CUDA/C
Mike is writing his LaTeX report, in a possibly publishable form.
He is concerned about how to choose the number of basis vectors,
how to estimate the cost savings and efficiency of his method.
Wenju is starting his report.
-
14 April:
Mike is writing his report. His code and Hans's code are
cooperating now. However, when he applies his algorithm, he observes
error increase rather than decrease. He is going to try to step back
to a simpler problem to see where the difficulty is coming from.
Wenju is running his code on the RCC cluster, using Fortran
and MPI. Each process runs a problem using a fine mesh solution
for comparison with coarse mesh solutions.
Isaac has his code working in Python, and in Cuda/C on the
spear cluster. He needs access to Lapack (use CLAPACK?) and to
a sparse solver (how about SuperLU?). He will check with RCC about
these. Then he will compare his dense and sparse codes, and his
Python and Cuda/C codes. Hans suggested also varying the number of
nearest neighbors used.
-
21 April:
Wenju
Isaac
Mike missed class because of illness.
-
28 April: Final reports are due.
You can return to the
FEM 2015 web page.
Last revised on 21 April 2015.