# Quick Starts with singularity

## 1. Installation Quick Start

Using Feel++ inside Docker is the recommended and fastest way to use Feel++. The Docker chapter is dedicated to Docker and using Feel++ in Docker.

We strongly encourage you to follow these steps if you begin with Feel++ in particular as an end-user.

People who would like to develop with and in Feel++ should read through the remaining sections of this chapter.

## 2. Usage Start

Start the Docker container `feelpp/feelpp-base` or `feelpp/feelpp-toolboxes` as follows

``> docker run -it -v $HOME/feel:/feel feelpp/feelpp-toolboxes``  these steps are explained in the chapter on Feel++ containers. Then run e.g. the {uri-rel-file-base}/quickstart/qs_laplacian.cpp[Quickstart Laplacian] that solves the Laplacian problem in Quickstart Laplacian sequential or in Quickstart Laplacian on 4 cores in parallel. Quickstart Laplacian sequential ``> feelpp_qs_laplacian_2d --config-file Testcases/quickstart/laplacian/feelpp2d/feelpp2d.cfg`` The results are stored in Docker in `/feel/qs_laplacian/feelpp2d/np_1/exports/ensightgold/qs_laplacian/` and on your computer `$HOME/feel/qs_laplacian/feelpp2d/np_1/exports/ensightgold/qs_laplacian/`

The mesh and solutions can be visualized using e.g. Parariew or Visit.

 ParaView (recommended) is an open-source, multi-platform data analysis and visualization application. Visit is a distributed, parallel visualization and graphical analysis tool for data defined on two- and three-dimensional (2D and 3D) meshes
Quickstart Laplacian on 4 cores in parallel
``> mpirun -np 4 feelpp_qs_laplacian_2d --config-file Testcases/quickstart/laplacian/feelpp2d/feelpp2d.cfg``

The results are stored in a simular place as above: just replace `np_1` by `np_4` in the paths above. The results should look like

 Solution Mesh

## 3. Syntax Start

Here are some excerpts from {uri-rel-file-base}/quickstart/qs_laplacian.cpp[Quickstart Laplacian] that solves the Laplacian problem. It shows some of the features of Feel++ and in particular the domain specific language for Galerkin methods.

First we load the mesh, define the function space define some expressions

Second we define the linear and bilinear forms to solve the problem

Laplacian problem in an arbitrary geometry, defining forms and solving

More explanations are available in Learning by examples.