/numerical-algorithms

A collection of numerical methods projects in C++ and Python

Primary LanguageJupyter Notebook

Numerical Algorithms

-- Project Status: [Active / On-Hold]

Project Intro / Objective

This is a collection of numerical computing / methods common in computational physics. The algoritms are implemented in C++. Often, the C++ program will perform the intensive calculations, and output the results to a csv file. It would be easy for one to plot the results and perform data visualization by writing Python scripts.

Methods Used

  • Numerical Methods

Technologies

  • C++
  • Python

Project Description

The repository contains the following directories:

1) Operator Split

The Operator-Split method is a typical numerical method used in quantum mechanics.

2) JFNK

The Jacobian-Free Newtwon-Krylov (JFNK) method is tpyically used to solve a system of nonlinear equations, where the variables are strongly coupled. Typically, one needs to compute the Jacobian matrix. However, this cannot be done analytically for a large system of equations. Hence, the JFNK algorithm allows one to compute the solution vector by exploiting the Krylov subspace method. One application of the JFNK algorithm is solving for the pressure and temperature fiields in a nuclear reactor.

3) Neutron Diffusion

Solve the neutron diffusion equation of a fissioning nuclear weapon numerically, using the Foward-Time Centered-Space (FTCS) scheme.

Ongoing project.

4) Radial Heat Diffusion

Tackle a simpler project first, before moving on to the Neutron Diffusion equation!