# Introduction
This folder contains variants of the NuSiF basic solver. The basic solver does
not allow obstacles within the domain.

All basic solver variants include two test cases for validation:
* dcavity - Lid driven cavity
* canal - Channel flow

# 2D solver variants
## Sequential solver (2D-seq)
This is the basic sequential version. Gnuplot result visualization.

## Sequential solver with particle tracing (2D-seq-pt)
This version adds particle tracing and streak lines to the sequential basic solver.
Gnuplot result visualization.

## Simple MPI parallel solver (2D-mpi-v1)
The simplest possible MPI parallelization with domain decomposition in one
direction and communication just based on simple send and recv calls.
Gnuplot result visualization.

## MPI parallel solver with 2D domain decomposition (2D-mpi-v2)
A MPI parallelization with two-dimensional domain decomposition using MPI
virtual topologies.
Gnuplot result visualization.

## MPI parallel solver using MPI-3 neighborhood collectives (2D-mpi-v3)
A MPI parallelization with two-dimensional domain decomposition using
neighborhood collective call instead of send and recv calls.
Gnuplot result visualization.

## Refactored MPI parallel solver (2D-mpi)
The final version of the 2D MPI parallel solver. All MPI calls are contained in
a single communication module. The rest of the code does not depend on MPI.
This version is prepared to also compile and run without MPI.
VTK result visualization.

# 3D solver variants

## Sequential solver (3D-seq)
This is the basic sequential version.
VTK result visualization.

## MPI parallel solver (3D-mpi)
A MPI parallel solver with 3D domain decomposition using MPI virtual topologies
and neighborhood collectives. All MPI calls are contained in a single
communication module. The rest of the code does not depend on MPI. This version
is prepared to also compile and run without MPI.
VTK result visualization.

## MPI parallel solver with MPI-IO (3D-mpi-io)
Identical to the 3D-MPI variant but using MPI-IO for VTK result file output.


