I’m solving a simple 2D neutron diffusion problem, with delayed neutron precursors (DNPs). In steady-state, the equations look like this:
We see clearly that, since we’re in steady-state, we could plug (DNP) into (N) and obtain a standalone neutron diffusion equation.
So I tested 3 ways of solving this problem:
- The simplest way, which is to plug (DNP) into (N) and solve for \phi only;
- Assembling a single big matrix, for (N) and (DNP) at the same time;
- Building block matrices and then assembling big matrices.
All three of these methods give the same eigenvalue keff, but only 1. and 2. give the (correct) eigenvector \phi, while 3. gives a very different output:
In the future, I think method 3. is the way to go for more complicated problems, so I’d like to get it working. Maybe I should manipulate the eigenvectors differently?
Here are the three scripts.
neutro_1.edp (1.6 KB)
neutro_2.edp (2.2 KB)
neutro_3.edp (2.5 KB)