This example is very similar to the example “saphir”, the main difference being that it reads a mesh file in the exodusii format (created by Cubit). This example only builds if you have the ExodusII and NetCDF libraries installed on your system and the variables WITH_EXODUSII, EXODUSII_ROOT and NETCDF_ROOT defined properly. The latter can be done, for example, in the CMake.vars file as follows:

```
SET(WITH_EXODUSII YES)
SET(EXODUSII_ROOT /opt/packages/exodusii)
SET(NETCDF_ROOT /opt/packages/netcdf)
```

The mesh is now loaded using the ExodusIIReader:

```
// Load the mesh
Mesh mesh;
ExodusIIReader mloader;
if (!mloader.load("iron-water.e", &mesh)) error("ExodusII mesh load failed.");
```

The model describes an external-force-driven configuration without fissile materials present. We will solve the one-group neutron diffusion equation

(1)

The domain of interest is a 30 x 30 cm square consisting of four regions. A uniform volumetric source is placed in water in the lower-left corner of the domain, surrounded with a layer of water, a layer of iron, and finally another layer of water:

The unknown is the neutron flux . The values of the diffusion coefficient , absorption cross-section and the source term are constant in the subdomains. The source in area 1 and zero elsewhere. The boundary conditions for this problem are zero Dirichlet (right and top edges) and zero Neumann (bottom and left edges).

Solution:

Final mesh (h-FEM with linear elements):

Final mesh (h-FEM with quadratic elements):

Final mesh (hp-FEM):

DOF convergence graphs:

CPU time convergence graphs: