Development of Cad Implementing the Algorithm of Boundary Elements' Numerical Analytical Method

Introduction. Initially, the boundary elements method (BEM) developed rather slow due to the lack of software and integral equations numerical processing difficulties. The technique preferred for solid bodies' stresses and strains calculation embodies the finite elements method (FEM). Therefore, a wide spread implementation of BEM began about a decade later than the intensive work on the FEM implementation. For that instance engineers had already solved two-dimensional problems actively using the finite element method, and did fully appreciate the advantages of CAD-assisted calculations at the same time that the need to implement similar ones for three-dimensional areas. Then the researchers turned to the use of the boundary element method, allowing to one-unit reduce the problem' geometric dimension. Analysis of recent research and publications. The first programs implementing the BEM algorithms [1...3], are locally applied and composed in FORTRAN. That programming language is one of the first high-level languages including a translator mechanism. The user, creating a code with FORTRAN, had the opportunity to operate numbers (integers, real numbers, complex) with high accuracy as well as to use the built-in mathematical functions library. Later, some of lexical structures available to structural, functional, and sometimes even to object oriented languages were also added to FORTRAN. The next programs [4, 5] used more sophisticated FORTRAN versions, and later the Visual Basic [6] became the preferred tool of this kind. Until now the numerical and analytical BEM algorithms [7] are implemented using programs written by ONPU scientists [8] in MATLAB environment, at that each program has a local character, i.e., is solving a particular problem: calculation of beams, frames, arches, etc. The matrixes' construction with these programs being done " by hand " is very time consuming. Aim of Research is to perform a reasoned choice of programming language for new CAD system development; such a system would allow to implement algorithms for numerical and analytical boundary elements method and to create tools for visualizing both the original objects and the calculation results. Main Body. Various BEM versions are embodied in the form of local programs written in different programming languages. The LCR2D program [2] originally written in FORTRAN, was later written over using GNU G77 FORTRAN. The BEPLANE program [4] was created in FORTRAN 77. Originally FORTRAN standard used a fixed source text format, and beginning with FORTRAN 90 version, it is modified: free source code format, as well as the more than one …

efit is that available is a rich compendium of these programs detailed documents.FORTRAN 95 and FORTRAN 2003 versions already provide possibilities of using modern programming techniques and even object-orientation tools.
The program BEPLANE [4] creators went further with their new version BEPLANE-2002 using Visual Basic 6.Although the program's computational part is still developed in FORTRAN.
Also Visual Basic 6 is used at another CAD: BEASY [9].This program can perform planar structures' static analysis, as well as some calculations in the field of fracture mechanics.
The Microsoft Visual Basic [6] represents a tool for software creation.For convenience, the Microsoft Corporation developed both the programming language and development environment.The Basic language, having a sufficient dialects number, is just "an ancestor" to Visual Basic language that has partly inherited the Basic's syntax and style.Also Visual Basic combines methods and objects of component-and object-oriented programming languages.The Microsoft' development environment, VB, contains tools auxiliaries to construct the user's visual interface.Binding to the Visual Basic programming environment allows developing applications only for Microsoft Windows.Practically all internal functions of Visual Basic are realized through the runtime library which performs a lot of unnecessary processes when conversion and type checking.
The new public library BEM ++ [10] is written in two high-level general purpose programming language C ++ and Python.Program code in Python is combined with already ready libraries in C ++ either is used directly as Python code.
Although the C ++ programming language is free for use, the documents on language standards (except for drafts) are not available for free.
The Python language syntax [11], in contrast to C ++, is minimal.A standard Python library has a large number of useful features.The Python Software Foundation License is free and allows using code written in any application.
Numerous projects are realized in Python, also used to implement the future applications' models.But, like most other programs written in interpreted programming languages, programs in classic Python version, are running with a relatively low speed.
The first version of CAD system developed by the authors is written in Delphi and has no means of visualizing the original calculation object.Due to the fact that the development in Delphi requires a license, there was taken a decision of moving to a higher-level language, which does not require licensing nor is tied to a specific operating system.
A programming language useful for the developer should contain a lot of options and be multifunctional.The Java is one of such multifunctional languages.This object-oriented language is created by Sun Microsystems (later acquired by Oracle) [12].Some concepts of C, C ++, Objective C, Small Talk, Cedar (Mes) and Eiffel were used while creating the Java language.Therefore, Java and those listed languages provide possibilities to solve the same problems.
To create practical applications used by numerous users preferred is to choose the Java, representing a safe programming language with a fairly high threshold for entry.
A code written in Java language [13] is translated into byte code executed with Java machine (Java VM -JVM).The JVM is a program that, acting in an interpreter, handles byte code and transmits the control guidance to hardware.The byte code's complete freedom from both operating system and hardware represents one of the benefits of program execution in a similar way.This allows running Java-based application on a device for which a respective virtual machine is created.
Using other programming languages, the CAD realization and run in another development environment will require additional measures apart of recompiling the program text.Different graphical environments and operating systems have incompatible interfaces that creates numerous problems in user interfaces' implementation.A developer willing to build an application able to run with different platforms will face the necessity to create series of different applications and control them separately [13].
To run Java application on different platforms the developer does not need to compile every time the written code, but he should simply check and compile it into one user-friendly platform.Thus, the formed byte code will be suitable for the necessary platform operating with Java virtual processor (Fig. 1), and an application written in Java language is only once corrected and compiled.

Sum Solaris platform
Java virtual processor Java virtual processor Java application Compiler Byte code

Fig. 1. Schematic representation of Java application preparation process for operation with various platforms
The Java virtual machine is completely controlling the written program use due to another peculiarity of Java language: its flexible security system.Therefore, the operations that exceed the program's authorized capacities, e.g., peer-to-peer connection either unauthorized data access command do instantly initiate the application shutdown.
Provided, most of standard algorithms (especially these related to accessible data types and similar) have been implemented earlier and are available with the programming language, the program can be developed much faster and requires less space.In such a way, one of essential Java's advantages relates to the standard data library, which volume increases with every next version so far embracing wide scope of potential allocation fields.The Java executive environment by now includes the graphics and graphic interface libraries, data bases access libraries and other typical tasks de-facto defining their use standards.The basic C ++ library allows much less capacities.
Additional benefit of Java programming language, as afore said, refers to exemption of the need to buy license; in the internet (http://java.sun.com)everyone can freely get the Java Development Kit (JDK).
The described advantages of Java language made possible to solve efficiently the task with elaboration of a program implementing the numeric-analytical BEM algorithm thus allowing to visualize the researched objects' calculation schemes and obtained results.
Users can select the required structure type -beam, frame, arch, plate or shield (Fig. 2, а), and the calculation type -statics, dynamics, stability.Calculation task visualization example is shown with Fig. 2, b.

Main window of a program written in Java
The program does generate the numeric-analytic BEM matrixes and resolving equations systems.All calculations are performed automatically.Several results of matrixes' building are given at Fig. 3.

Numeric-analytical BEM algorithm's matrixes generated with the program
The matrix equation's automatic solution get, the user can obtain required data for the system's selected points as well as analyze the diagrams plotted.Refer to Fig. 4 for calculation result.

Fig. 4. Calculation results
Results.At the analytical study issue evidently shown is that the Java represents a programing language the most efficient for numeric-analytical BEM algorithm implementation for CAD needs.This language' capacities allow not only the CAD system's calculations part development but also to develop the graphic interface.
Yu.V. Korniyenko, M.G.Suryaninov.Development of CAD implementing the algorithm of boundary elements' numerical analytical method.Up to recent days the algorithms for numerical-analytical boundary elements method had been implemented with programs written in MATLAB environment language.Each program had a local character, i.e. used to solve a particular problem: calculation of beam, frame, arch, etc. Constructing matrixes in these programs was carried out "manually" therefore being time-consuming.The research was purposed onto a reasoned choice of programming language for new CAD development, allows to implement algorithm of numerical analytical boundary elements method and to create visualization tools for initial objects and calculation results.Research conducted shows that among wide variety of programming languages the most efficient one for CAD development, employing the numerical analytical boundary elements method algorithm, is the Java language.This language provides tools not only for development of calculating CAD part, but also to build the graphic interface for geometrical models construction and calculated results interpretation.Keywords: algorithm, numerical-analytical boundary elements method, programming language, object-oriented language, code, CAD, program.