# BasicSolver Variants

## 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.

### MPI parallel solver (2D-mpi)

The simplest possible MPI parallelization with domain decomposition in one
direction and communication just based on simple send and recv calls.
Gnuplot result visualization.

A MPI parallelization with two-dimensional domain decomposition using MPI
virtual topologies.
Gnuplot result visualization.

A MPI parallelization with two-dimensional domain decomposition using
neighborhood collective call instead of send and recv calls.
Gnuplot result visualization.

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.

Identical to the 3D-MPI variant but using MPI-IO for VTK result file output.
