## Projects

Below you'll find *some* of
my latest projects.
They are mainly modeling and simulation tools for computational
physics, but a few hobby projects have also
found their way into this list.
You may find more of my projects under my Gitlab account.

### Bluetooth beacons and cloud analytics

Building access control and home security system with Bluetooth sensor beacons, cloud analytics, and thin web apps. More details available shortly.

### Online service stack

Setup of domains, mail stack, web hotel, and SSL certs for family and friends. Email me if you need such a setup. More details available later.

### Fiend

* FInite Element Nanostructure Dynamics*
is a software package for the simulation of single-electron
quantum mechanics including interactions with inhomogeneous laser
vector potentials.
Such systems include, e.g, atoms, some molecules, and nanostructures.

FIEND is based on finite element discretization of the time-independent and time-dependent Schrödinger equations. It's combined with the state-of-the-art FEM-suite FEniCS, and massively parallel linear algebra toolboxes such as PETSc and SLEPc. FIEND is written in Python 3.6, and the source code can be found at Gitlab.

### Bill2d

Bill2d is a C++ software package for classical simulation two-dimensional Hamiltonian systems with single or many particles. It can be used to simulate, e.g., hard-wall billiards, open billiards and periodic systems including, e.g., external potentials, particle-particle interactions, and a magnetic field.

The software and additional scripts can be readily used to calculate and visualize several aspects of the systems including, e.g., particle trajectories, histograms, Poincaré sections, diffusion coefficients, and survival and escape probabilities.

The source code is hosted at Gitlab. You can find the paper describing Bill2d at Comp. Phys. Comm. 199, 133-138 (2016).

### QPropOCT

This Python package contains a modified version of the Qprop code written by Dieter Bauer et al. On top of Qprop we've built an optimization framework that combines simple Gaussian envelope pulses with single carrier wavelength to produce an experimentally realizable — yet flexible multicolor waveform.

Recently, QPropOCT has been used successfully to optimize the excitation of Li-atoms to their Rydberg states, for more details see Phys. Rev. A 98, 053422 (2018).

### formula_parser

```
#include "formula_parser.h"
#include <iostream>
int main(){
formula_parser parser;
parser.add_variables( {"x", "y"} );
parser.add_constant( "radius", 50.0 );
parser.parse( "x^2+y^2-radius^2" )
auto function = parser.get_function();
std::cout << function( {1.0, 2.0} ) << std::endl;
}
```

formula_parser is a small library for parsing a string containing
a mathematical expression, e.g., `"x^2-cos(2*besselJ(2*pi*y))"`

to a C++'s `std::function`

which can be evaluated with different
values for the parameters `x`

and `y`

.

formula_parser also contains C and Fortran interfaces for integrating it more easily to existing software.

The source code is hosted at Gitlab.