Artykuł przedstawia obiektową bibliotekę numeryczną implementującą Metodę Elementów Brzegowych (MEB). W pierwszym rzędzie projekt implementowany jest dla środowisk pracujących pod kontrolą systemów operacyjnych Linux/Unix. Biblioteka jest implementowana w języku C++. Jednak jej projekt i architektura umożliwiają implementację również w innych językach obiektowych zachowując API (tłum. z ang. Programowalny Interfejs Aplikacji). Zastosowanie UML (tłum. z ang. Ujednolicony Język Modelowania) wraz z obiektowym projektowaniem znacząco ułatwia proces tworzenia specyfikacji, projektowania, implementacji i testowania. Implementacja algorytmu MEB nie jest zwykłym odwzorowaniem. Użycie zaawansowanych, lecz upowszechnionych wśród inżynierów otwartego oprogramowania, narzędzi do zarządzania kodem źródłowym, wersjonowaniem, tworzeniem wydań, czy wspomaganiem procesu konfiguracji, kompilacji, budowy i instalacji, znacząco ułatwia, a w wielu wypadkach umożliwia tworzenie i rozwój biblioteki numerycznej MEB. Jednak użycie narzędzi programistycznych nie jest warunkiem wystarczającym, lecz tylko koniecznym. Występują znaczące obszary MEB, które muszą być specjalnie traktowane. Na początku wypada wspomnieć o dwóch: osobliwość wynikająca z metody mająca swoje odwzorowanie we współczynniku c(r), obliczanym dla każdego równania MEB, oraz osobliwość pojawiająca się podczas całkowania numerycznego elementów brzegowych. Kolejne komplikacje pojawiają się podczas obliczeń problemów wieloobszarowych, np. gdy problem jest nieliniowy, ale można go opisać kilkoma liniowymi obszarami. Wówczas złożoność obliczeniowa, jak i zapotrzebowanie na pamięć rośnie, więc musi być skompensowane, aby implementacja MEB, w opisywanym przypadku biblioteka, była konkurencyjna porównując do innych nielicznych implementacji MEB, ale również konkurencyjna do innych metod rozwiązywania równań różniczkowych cząstkowych, zwłaszcza Metody Elementów Skończonych (MES). Wybór zaawansowanych narzędzi programistycznych o ugruntowanej pozycji w środowisku otwartego oprogramowania ma również duże znaczenie dla użytkownika, ponieważ nie wymaga nauczenia się nowego interfejsu, jak i metod konfiguracji, kompilacji, budowania i instalacji. Użytkownik może od razu skupić się na wykorzystaniu oprogramowania do rozwiązywania zadań i problemów. Z punktu widzenia użytkownika bardzo ważne są porty i pakiety źródłowe, ponieważ znacząco ułatwiają i przyspieszają instalację biblioteki w systemach operacyjnych, wraz z późniejszymi aktualizacjami. Potwierdzenie zasadności tworzenia tego typu produktu zostało opisane w artykule. Ponadto załączone są podstawy MEB wyszczególniając te, które wpływają na architekturę i kontrolę przepływu informacji procesu. Opisane są również przykłady wykorzystania biblioteki, zarówno łatwe, przeznaczone dla początkujących użytkowników MEB i biblioteki, jak i zaawansowane pokazujące możliwości przedstawionej biblioteki MEB. Opisywana biblioteka przeznaczona jest zarówno do dydaktyki, dla naukowców jak i do wykorzystania w przemyśle.
This article presents objective Boundary Element Method library, primarily implemented for Unix/Linux operating systems in C++, but easily portable to other platforms with installable GNU compiler. The library's design and architecture allow its implementation in other objective languages preserving the structure and project. The objective design and used Unified Modeling Language (UML) substantially simplifies process of creating specification, designing, implementing and testing. Implementing Boundary Element Method is not straight forward. Usage of advanced tools for managing source code, versioning, releases as well as managing process of configuration, compilation, build and installation, which are standard among open source engineers, simplifies and even in some circumstances makes development of numerical BEM library possible. However development tools are not the major condition which must be fulfilled. There are substantial areas which have to be specially treated. Two of them can be mentioned first: singularity coming from the method which is expressed by c(r) coefficient in every generated BEM equation and singularity coming from the numerical integration algorithm of boundary elements. Further complications arise when multi-region problems are to be solved. Multiple regions are introduced when problem is not linear, but for example linear in consecutive domains. Then computational complexity rises and have to be compensated to keep the BEM implementation and particularly the discussed library competitive comparing to other BEM software and other numerical methods of solving partial differential equations. Usage of advanced tools which are settled down among open source community is a very important feature from the users point of view, because it does not require to learn new user interface as well as compilation, build or installation procedures. The user can start using library immediately. Very important feature for the user are ports, and source packages, which simplify process of installation on owns workstations and calculation units. The need for the library implementing BEM is substantiated in the article. Basics of Boundary Element Method from the library's point of view are described in the article stressing on the source code architecture needs and control flow of the process. Moreover there are simple and advanced real-life examples of usage and application presented as the library is being designed for both didactics as well as scientist and industrial groups.