DHARA is a general solver for partial differential equations (PDEs) written in Python, designed to run efficiently on both CPUs and GPUs. It combines the flexibility of Python with high-performance libraries like NumPy for CPUs and CuPy for GPUs, enabling large-scale scientific simulations with the same codebase. Built with a modular and object-oriented design, DHARA is easy to extend and adapt to new physical models or numerical methods. It supports parallelization with MPI, efficient memory use, and time integration schemes, making it a versatile tool for studying fluid dynamics and related problems. Currently, DHARA is closed-source; for more details and collaboration opportunities, please visit Vayusoft Labs.

Libraries required: NumPy, CuPy (for GPUs), h5py, mpi4py, matplotlib


Problems DHARA can solve

  1. Compressible flows: DHARA has built-in modules for finite volume and finite difference methods. For hyperbolic PDEs, the Kurganov and Tadmor semi-discrete method is implemented with various reconstructions: linear, weighted essentially non-oscillatory (WENO), central WENO (CWENO), and targeted WENO (TENO) up to 7th order. DHARA also includes the TVD-MacCormack scheme, which is well-suited for low-turbulent Mach number compressible convection studies and is highly optimized for performance. It can solve problems in both 2D and 3D, including the Euler equations, compressible magneto-hydrodynamics (MHD), moist convection, and other complex compressible flow systems.
  2. Incompressible flows: DHARA solves the incompressible Navier–Stokes equations using finite difference methods with a projection scheme. The pressure–Poisson equation is handled efficiently using multigrid solvers, ensuring scalability for large 2D and 3D problems. Standard Runge–Kutta (RK) time integration schemes are used, making the solver robust and flexible for studying vortical flows, shear layers, and buoyancy-driven convection such as Rayleigh–Bénard convection.
  3. Quantum fluids: DHARA includes modules for simulating quantum fluids by solving the Gross–Pitaevskii equation (GPE). It uses a pseudo-spectral method combined with the time-splitting spectral (TSSP) scheme for accurate and stable evolution of Bose–Einstein condensates and related quantum systems. These features make it suitable for studying quantum turbulence, vortex dynamics, and ground-state computations in both 2D and 3D settings.

DHARA architecture

Modular architecture of DHARA

Modular architecture of DHARA


Performance analysis