I’ve been using OpenMC for a while, and I thought several times about how useful a 1D/2D run mode would be. I took a class on numerical Neutronics and implementing 1D/2D models is quite easy and way less computationally expensive. Also most of the systems we work for (tokamaks, reactors, ICF chambers) have a high level of symmetry that could perfectly run in 1D/2D.
Is there a specific reason why these were never implemented? Or are we expected to implement our own 1D/2D?
Unlike deterministic methods, Monte Carlo simulation is naturally 3D and doesn’t really lend itself to a 1D/2D simplification. On top of that, for a lot of problems, the expense is typically not dominated by geometry operations. The problems where geometry operations do dominate tend to be very complex geometries that are also inherently 3D (e.g., a tokamak).
I agree that for 3D is the most natural way of doing Monte Carlo (since particles can scatter in all directions) but some simpler 1D and 2D model can also be built right ?
Although a tokamak or an ICF plant is 3D, they both have a very strong azimuthal geometry that I think could be leveraged either for computational cost reduction or variance reduction.
For example if we have a pi/6 symmetry. We can run 12 independent pi/6-sector simulations (with reflective boundaries and gather their results to reduce the variance by sqrt(12).
Another example if the geometry is purely axisymetrical, we can run a 2D slice geometry and extrapolate the solution for the whole geometry ? I agree that tangential scattering wouldn’t be covered but I think we had a way of including in our 1D/ 2D models. I could look for those.
I agree that you end up simulating the same physics but having a real 1d solver would allow for a reduced computational cost.
To switch from a 2D displacement (of a distance l at a specific angle \theta ) to a 1D displacement we can take only the 1d component of this displacement (\frac{l}{cos \theta}). This can also be generalized to a 3D displacement.