Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
акустика / bergman_dr_computational_acoustics_theory_and_implementation.pdf
Скачиваний:
167
Добавлен:
04.05.2023
Размер:
2.74 Mб
Скачать

2.5 List of Open-Source Tools

This section offers a small collection of open-source tools that falls into one of three categories: libraries, compilers, and other tools for use with C/C++, open-source equivalents of MATLAB, Maple or Mathematica, and miscellaneous software that is relevant to the subject matter of this text (Tables 2.7, 2.8, and 2.9).

Disclaimer(s)

The author is not endorsing any one package over another or the use of open source as an alternative to professional software packages. These lists are provided as a courtesy for readers interested in using and contributing to open source.

It is the responsibility of the reader to read and understand the license agreement associated with these software libraries and alternatives to professional software. What you can or cannot do is expressed in the license. Read the license.

Table 2.7 Open-source alternatives to MATLAB, MAPLE, or Mathematica

List of software tools and libraries

Name

Where to find

Brief description

 

 

 

SCILAB

http://www.scilab.org/

Open-source version of MATLAB

Octave

https://www.gnu.org/software/octave/

Open-source version of MATLAB

Maxima

http://maxima.sourceforge.net/

Open-source symbolic math software, similar

 

 

to Maple or Mathematica

Euler Math

http://euler.rene-grothmann.de/

Open-source version of MATLAB with

Toolbox

 

symbolic math

FreeMat

http://freemat.sourceforge.net/

Open-source version of MATLAB

SageMath

http://www.sagemath.org/

Open-source alternative to Maple, Mathema-

 

 

tica, and MATLAB

 

 

 

Table 2.8 List of C/C++ numeric libraries and other items

List of useful libraries for C/C++

GNU Science

https://www.gnu.org/software/gsl/

Numerical library for C/C++

Library

 

 

Boost

http://www.boost.org/

Numerical library for C/C++

Eigen

http://eigen.tuxfamily.org/

Linear algebra library for C/C++

Armadillo

http://arma.sourceforge.net/

Open-source linear algebra library for C++

Visual Studio

https://www.visualstudio.com/vs/

Free C/C++ compiler and IDE

Express

visual-studio-express/

 

GCC

https://gcc.gnu.org/

GNU open-source C/C++ compiler

FFTW

http://www.fftw.org/

Free discrete FFT library for C

Odeint

http://headmyshoulder.github.io/

Free C++ library of numerical ordinary

 

odeint-v2/

differential equation solvers

 

 

 

Table 2.9 List of tools related to finite and boundary element analysis

Additional software for scientific computing

Python

https://www.python.org/

Interpreted high-level programming

 

 

language

Advanced Simula-

http://asl.org.il/

Open-source tool for solving partial

tion Library

 

differential equation

BEM++

http://www.bempp.org/

Open-source boundary element method

 

 

library for Python

GetFEM++

http://download.gna.org/getfem/

Open-source FEM library for Python,

 

html/homepage/

MATLAB, and SCILAB

Gmsh

http://gmsh.info/

Open-source 3D finite element mesh

 

 

generator

enGrid

http://www.engits.com/engrid---

Open-source mesh generation

 

mesher.html?lang=en

 

 

 

 

2.6 Exercises

1.For the cos(a b) evaluation, find the value of N when the two approaches are equal as a function of r = cTca.

2.Write the binary representation of 123.45.

3.For the result of Exercise 2, write the single-precision floating-point representation of this number.

4.Write pseudo code for evaluating Greens function:

expikx

x

where, x, k are real number and x 0, k can be either sign. Assume that only real number is possible in the evaluation of the function. You will need to decide what the behavior should be if x = 0 is an input.

5.The function in Exercise 4 is used to estimate the interaction among N point line objects.

(a)How many times will the equation need to be used to calculate all interactions?

(b)Estimate the computational cost of this calculation including the unit cost of the operations expressed in the equation.

(c)Estimate the memory required to store all results

(d)What is the memory requirement for 100,000 objects assuming double precision?

References

[1] Rump, S. M., Ogita, T., and Oishi, S., Accurate floating-point summation, part I: Faithful rounding, SIAM J. Sci. Comput., Vol. 31, No. 1, pp. 189224, 2008.

[2] IEEE, ANSI/IEEE Std 754-1985: IEEE Standard for Binary Floating-Point Arithmetic, IEEE, New York, 1985.

[3]Pancratov, C., Kurzer, J. M., Shaw, K. A., and Trawick, M. L., Why computer architecture matters, Comput. Sci. Eng., Vol. 10, No. 3, pp. 5963, 2008.

[4]Gross, D. C., Report from the Fidelity Implementation Study Group, paper no. 99S-SIW-167, Proceedings of 1999 Spring Simulation Interoperability Workshop, Simulation Interoperability Standards Organization, Orlando, FL, 1999.

[5]Press, W. H., Teukolsky, S. A., Vetterling, W. T., and Flannery, B. P., Numerical Recipes in C, The Art of Scientific Computing, Second Edition, Cambridge University Press, Cambridge, 1999.

[6]Deitel, H. M. and Deitel, P. J., C++ How to Program, Fifth Edition, Pearson, Prentice Hall, Upper Saddle River, NJ, 2005.