# Welcome to Bolt’s Documentation!¶

$$\texttt{Bolt}$$ is a flexible framework for solving kinetic theory formulations, making use of the finite volume and/or advective semi-lagrangian method. Additionally, it also consists of a linear solver which is primarily used in verifying the results given by the nonlinear solver. The code is open-source and developed by the research division at Quazar Technologies, Delhi where it used to study device physics and astrophysical plasmas
The code is written in Python and features an easy-to-use interface, where the user provides input through a physical system object which holds details about the system solved. The physical_system object is declared by defining the advection terms, and the source term for the system of interest. Additionally, the physical simulation also requires details such as the domain information, and initial conditions.
$$\texttt{Bolt}$$ is capable of running on CPUs and GPUs, and has been parallelized to be able to run efficiently across several nodes/devices.
 bolt.lib.physical_system bolt.lib.linear.linear_solver This is the module which contains the functions of the linear solver of Bolt. bolt.lib.nonlinear.nonlinear_solver This is the module where the main solver object for the nonlinear solver of bolt is defined.