Giter Club home page Giter Club logo

ncsu-ncsg / thor Goto Github PK

View Code? Open in Web Editor NEW
7.0 7.0 4.0 51.16 MB

THOR is a radiation transport code for unstructured meshes.

License: MIT License

XS 5.18% GLSL 0.27% Assembly 0.26% C 0.23% C++ 0.04% Python 0.48% Shell 0.36% Makefile 0.98% Fortran 62.34% Ruby 0.67% PostScript 24.94% TeX 2.92% Harbour 1.18% Common Lisp 0.07% NASL 0.09%
computational-physics deterministic-transport discrete-ordinates-method neutron-transport neutronics nuclear nuclear-engineering nuclear-fission nuclear-physics particle-transport photon-transport radiation-transport unstructured-meshes

thor's People

Contributors

raffiy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

thor's Issues

Switch over to CMake

We currently rely on a cumbersome and non-portable make file to build THOR. We should switch over to CMake to improve portability.

High Order Tets THOR Method

One of the largest sources of error in THOR is the inability to fully resolve curved geometry. Higher order tets allowing curved geometry may go a long way to improving THOR results.

Expand cross section input capabilities

Consider adding capabilities of input of other cross section formats, such as those generated by OpenMC and SERPENT, as well as those used by MPACT and MCNP.

Profile/optimize

THOR should be formally profiled (with gprof? valgrind?) to determine where optimizations and enhancements should focus.

2D THOR

There's no reason THOR shouldn't have 2D capabilities, and such capabilities can be very useful for bench-marking, demonstrations, as well as problems where 2D calculations are appropriate.

Fix page options

The page options for memory saving usage are pretty much all broken. Investigate to see if they can be salvaged or should be scrapped and started from scratch.

Analyze SDD changes to add to main THOR

The SDD method developed by Dylan and Raffi should be added to THOR, it has had some issues with allowing other methods to also work, so we need to go through the method implementation first before adding it.

Update Privacy in THOR

Most of THOR allows any module that uses another module to access all subroutines/functions. This is bad practice and privacy should be updated to keep local routines and variables local.

Multilevel/acceleration capabilities

Multilevel methods (at least in energy) should be considered for THOR as potential acceleration scheme. Spatial multilevel methods may be difficult due to the unstructured nature of THOR meshes.

Expand/remake regression tests

THOR currently has a thoroughly robust regression test suite, however it is driven in a rather hacky manner. Upon completion of issue #20, THOR should use ctest to drive its regression tests, and perhaps add additional tests.

Throw error for not enough sources given

Currently if not enough source values are given in a fixed source problem, it results in a runtime error in the application of those sources. This should be revised to instead throw an error in the source readin portion of the calculation.

Power/Source Iterations Acceleration

THOR currently has an errmode extrapolation that provides some (often poor) acceleration for some problems. However a more general and robust acceleration scheme/method should be added, potentially DSA (diffusion synthetic acceleration) or NDA (nonlinear diffusion acceleration) should be investigated for unstructured mesh applicability, and added.

Add Unit Tests

THOR currently lacks any unit tests, this should be fixed and most (if not all) subroutines and functions should have unit tests added.

Finish detector response post-processor

The detector response post-processor currently computes a response based solely on a response function. There may be value in also having capability in computing a response based on XS based reaction rates as well as multiples of those reaction rates.

Fix parallel load distribution

Parallel load distribution was broke and an older (less efficient) style was reverted to. This old style performs poorly for more than 8 processors, the new system should be revisited and see if it can be fixed to allow for better parallel performance.

Fix JFNK Inconsitencies

JFNK seems sometimes wildly inconsistent between problems and may sometimes break in a problem it previously worked in for no perceptible reason.

Add max memory output

See if it is viable to compute maximum memory used in run and add it to the output for resource analysis in post run results.

Allow for broader region mapping options/indeces

Currently region mapping requires that the ordered region ids all be given a map, even if a certain id isn't in the mesh. That is to say, a mesh with regions 1 4 6 and 8 must also include mapping for 3 5 and 8 in the input file. This should not be required.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.