|
[Sponsors] |
June 5, 2016, 11:30 |
Newbie developing a neutron transport solver
|
#1 |
New Member
Paul
Join Date: Jun 2016
Posts: 21
Rep Power: 10 |
Hi guys,
I've just picked up OpenFOAM and, as seems to be the common sentiment, it's quite a lot to wrap one's head around at the start! I'm using OpenFOAM for the sake of my dissertation; one of the goals is to improve OpenFOAM capabilities for analysing nuclear reactors. Specifically, rather than using some sort of diffusion equation to model neutronics (as has been done in the past relatively straightforwardly) I am to implement a more precise neutron transport model. There's a burgeoning nuclear special interests group on the wiki which is making increasing use of OpenFOAM for all sorts of interesting projects. The actual details of the model are immensely straightforward but as both an OpenFOAM and also a C++ beginner I would very much appreciate any words of guidance and wisdom in an attempt to streamline the process. I suppose it's a bit disheartening when the vast majority of foam-y tutorials are based on fluids which, unless I have such fortune as to bring my project to the stage of thermal-hydraulic and neutronic coupling, is largely far removed from what I will be dealing with! At the same time, I most certainly don't want to unnecessarily duplicate efforts previously made so I'll include a couple of key bits of the code which I'm struggling to implement. I could go on for quite a long time about all of the things I don't know but I suspect at that point I would be better hiring someone to do the work for me! The main idea behind this specific method is ray tracing across a geometry, i.e., drawing lines from the boundaries of the geometry in a number of different discrete directions and store information such as the value of a flux along the ray at each intersection point with a cell face and the length of the ray between intersections. Hence, if OpenFOAM has some well developed routines or classes for creating and handling these rays I would be very grateful for a pointer in their direction! Similarly, I would like to know how to set boundary conditions for each of these rays and their corresponding directions, e.g., vacuum and reflective. On a presumably much more standard topic, in making a new solver there are of course going to be a number of iterative routines to test for convergence. This problem is no doubt due to either my laziness or just consistently looking in the wrong place but I'm given to suspect that OpenFOAM also has some classes for dealing with the convergence of whichever scalar field is being solved. How can I go about using these? I've already developed my simple 1D solver in MATLAB where it was simply a case of storing the old value and comparing at the end of each iteration but I would like to do things the foam-y way if possible! Apologies for a long and winding post. Really very grateful for any help or wise words and do berate me if I'm on entirely the wrong track - I'm a bit of a headless chicken at the moment as far as OpenFOAM goes. Cheers. |
|
June 6, 2016, 07:23 |
|
#2 |
New Member
Paul
Join Date: Jun 2016
Posts: 21
Rep Power: 10 |
On doing a bit of investigating, it seems as if preliminarily there may be some ideas to transplant from the Lagrangian particle solvers. It may be simply a case of initialising the particles along the boundaries, each moving in a specified direction and then storing all cell intersection data and killing them once they've collided with the boundaries.
|
|
Tags |
neutron, neutron transport, neutronics, solver, solver development |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Radiation Modeling Using Discrete Ordinates Method and Parallel Solver | malicemethods | FLUENT | 3 | May 25, 2018 15:25 |
multi region problem in developing a new solver | huyidao | OpenFOAM Programming & Development | 1 | May 17, 2016 08:28 |
fluent divergence for no reason | sufjanst | FLUENT | 2 | March 23, 2016 17:08 |
thobois class engineTopoChangerMesh error | Peter_600 | OpenFOAM | 4 | August 2, 2014 10:52 |
Setting a B.C using UserFortran in 4.3 | tokai | CFX | 10 | July 17, 2001 17:25 |