mechanical analysis on the cloud

Put the way we (you) perform

computer-aided engineering

upside down.

Design on the web. Run on the cloud.

Always available. Always updated.

We are now presenting our new **PDF generator**. Try it for free! You may:

Wasora is a convenient high-level interface to perform mathematical computations. It also provides a framework which other particular computational codes can use. It is a free computational tool designed to aid a cognizant expert—i.e. you, whether an engineer, scientist, technician, geek, etc.—to analyze complex systems by solving mathematical problems by means of a high-level plain-text input file containing

- algebraic expressions,
- data for function interpolation,
- differential equations, and
- output instructions

amongst other facilities. At a first glance, it may look as another high-level interpreted programming language, but—hopefully—it is not: wasora should be seen as a syntactically-sweetened way to ask a computer to perform a certain mathematical calculation. For example, the famous Lorenz system may be solved by writing the three differential equations into a plain-text input file as humanly-friendly as possible.

The differential equations are

\[ \begin{align*} \dot{x} &= \sigma \cdot (y - x)\\ \dot{y} &= x \cdot (r - z) - y\\ \dot{z} &= xy - bz\\ \end{align*} \]

where \(\sigma=10\), \(b=8/3\) and \(r=28\) are the classical parameters that generate the butterfly as presented by Edward Lorenz back in his seminal 1963 paper Deterministic non-periodic flow.

Wasora can be used to solve it by writing the equations in the input file as naturally as possible, as illustrated in the input file that follows:

```
# lorenz’ seminal dynamical system
PHASE_SPACE x y z
end_time = 40
CONST sigma r b
sigma = 10 # parameters
r = 28
b = 8/3
x_0 = -11 # initial conditions
y_0 = -16
z_0 = 22.5
# the dynamical system
x_dot .= sigma*(y - x)
y_dot .= x*(r - z) - y
z_dot .= x*y - b*z
PRINT t x y z HEADER
```

We can pipe wasora’s standard output to Gnuplot and obtain a beautiful figure:

```
wasora lorenz.was | gnuplot -e "set terminal svg; set output 'lorenz.svg'; set ticslevel 0; splot '-' u 2:3:4 w l ti ''"
```

Wasora is a free computational tool designed to aid cognizant experts to analyze complex systems by solving mathematical problems by means of a high-level plain-text input file containing a syntactically-sweetened description of definitions and instructions. Some of its main features are:

- evaluation of algebraic expressions
- one and multi-dimensional function interpolation
- scalar, vector and matrix operations
- numerical integration, differentiation and root finding of functions
- possibility to solve iterative and/or time-dependent problems
- adaptive integration of systems of differential-algebraic equations
- I/O from files and shared-memory objects (with optional synchronization using semaphores)
- execution of arbitrary code provided as shared object files
- parametric runs using quasi-random sequence numbers to efficiently sweep a sub-space of parameter space
- solution of systems of non-linear algebraic equations
- non-linear fit of scattered data to one or multidimensional functions
- non-linear multidimensional optimization
- management of unstructured grids
- complex extensions by means of plugins

Besides solving general math problems usually associated with engineering analysis, the code is designed in such a way that particular (and potentialy complex) computations may be implemented as plugins (such as computations based on the finite element method or dedicated neutronic codes) that run over the framework, taking advantage of all the common background wasora provides. This technical document introduces the code and describes its main features by walking through the rationale behind its design and the types of problems that are suitable to be tackled with wasora.

Almost any single feature included in the code was needed at least once by the author during his career in the nuclear industry. Nevertheless, wasora is aimed at solving general mathematical problems (see below for a description of the wasora Real Book). Should a particular calculation be needed, wasora’s features may be extended by the implementation of dynamically-loaded plugins, for example:

- besssugo
- builds scientific videos out of wasora computations
- fino
- solves partial differential equations using the finite element method
- milonga
- solves the multigroup neutron diffusion equation
- waspy
- runs Python code within wasora sharing variables, vectors and matrices
- xdfrrpf
- eXtracts Data From RELAP Restart-Plot Files

The set of wasora plus one or more of its plugins is referred to as the *wasora suite*.

As jazz, wasora is best mastered when played. The wasora Realbook, like the original, introduces fully-usable examples of increasing complexity and difficulty. The examples come with introductions, wasora inputs, terminal mimics, figures and discussions. They range from simple mechanical systems, chaotic attractors and even blackjack strategies:

- Introduction
- Hello World
- The Peano axiom
- Algebraic expressions
- First-order lags
- A simple differential equation
- The Lorenz chaotic system
- The Fibonacci sequence
- One-dimensional functions
- Having fun with integrals
- Two-dimensional functions
- Newton, Lagrange & Hamilton
- Finding prime numbers
- The double pendulum
- The chaotic Lorenzian waterwheel
- GNU Scientific Library examples rewritten
- Math Ace
- Semi-empirical mass formula fit
- Buffon’s needle
- Point reactor kinetics—direct and inverse

Wasora is distributed under the terms of the GNU General Public License version 3 or (at your option) any later version.