Tomasz Gebarowski

Boost ptr_map iterator incompatibility

Boost library provides a very powerful set of data structures and algorithms which are intended to be cross platform and rather concise. Unfortunately it happens, that the API of the library changes from version to version. The problem which I faced recently was related to ptr_map container iterator and different methods allowing for accessing keys and values of the container. In boost <=1.33 the mentioned fields could be accessed via iterator->key() and (*iterator) methods respectively. Starting from version 1.34 the authors of the library introduced approach which is compatible with map container from STL and uses iterator->first and iterator->second fields.

Sindbad PV CAD

Sindbad PV is a complex CAD (computer-aided design) application for designing photovoltaic installations for houses taking into account the surrounding obstacles and providing the power balance and cost estimation.

Preface

The sun has produced and is still producing the energy for billions of years. Solar energy, namely the sun’s rays are solar radiation that reaches the earth. Solar energy can be converted into many other forms of energy, such as heat and electricity. In the 1830s, the British astronomer John Herschel used a solar thermal collector box (a device that absorbs sunlight to collect heat) to cook food during an expedition to Africa.

The global interest for photovoltaics is constantly growing due to lack of side effects such as air pollution, noises and many other destructing factors during the phenomenon of converting solar energy into electricity. The need for alternative sources of energy is reflected by growing amount of PV panels applied on the roofs of buildings. However, one needs to know a lot about the sun movements, geographic and architectural restrictions related to the application of PV systems, if that person wants to apply such construction. Fortunately, the current development of computerization and science enabled to design a system do simulate the whole process and choose the best PV panel configuration adjusted to the requirements.

Random number generator based on normal distribution with Boost

Yesterday I was looking for some random number generator, based on gaussian distribution. As I don’t like to reinvent the wheel, I started to look for some already existing solutions. I found out that Boost library provided a very powerful engine for generating random numbers using various algorithms. The whole description of Boost Random Number library is available here.

Fuzzy Logic Controller

This project is an exemplary application of fuzzy logic for controlling different types of processes. I wrote it for an Artificial Intelligence course in Windesheim University of Applied Sciences. The assignment is composed of four components:

Distributed Laplace Equation solver

In this assignment I used OpenMPI library in order to solve a Laplace equation of the following form:

Jacobi

where u=u(x,y) is some unknown scalar potential subjected to the following boundary conditions:

Jacobi