Numerical Simulations Laboratory
Honesty first. We work only on realistic projects that fit our expertise and capabilities.
We enjoy to collaborate with highly qualified scientists and engineers to combine our expertise and to realize their ideas in new simulation tools. We like to share our experience with young and motivated researchers willing to get help and boost their computational tasks. Before any project begins, we discuss its details until a clear and complete technical specification is agreed by both parties, and after that we accurately estimate budget and time needed to complete the job. Having passed these steps you can be sure that the project will be done successfully and within our estimations.
The main challenge in computational software development is to achieve the highest degree of code extensibility and reliability while keeping the minimum run time.
A simulation code should be developed like a LEGO constructor to allow easy and safe modifications or even replacements of underlying algorithms. Many our customers, especially researchers from academia, continue to improve their codes independently by implementing additional features or adjusting a mathematical model to find the best match to reality.
Reliability and correctness of the implementation is another cornerstone of a numerical code. The clever use of advanced capabilities of modern languages and special tricks that we have accumulated for years help us to minimize possible errors or misprints (see our implementation of a formula that takes about 100 pages). Finally, extensive and hard testing is a must to ensure the correctness of a code.
The code execution time is a crucially important characteristic in real life applications. For given mathematical model it is mostly determined by computational complexity of the chosen algorithms. However, an improper choice of software technologies or a bad design may increase it drastically (for example, ignoring cache coherence). Today, a wide range of parallelization tools can be used to speed up a serial code or to efficiently perform large scale simulations on clusters or supercomputers.
We ensure:
- High quality solutions. We like what we do. Quality is a result of motivation and experience. We possess both.
- Lifetime warranty. Due to thorough design and testing all our codes and results have lifetime warranty for bug fixing.
- Instructions and technical support. You additionally get a detailed user manual and prompt technical support that quickly make you familiar with the code usage and its capabilities.
- Fast delivery time. A highly skilled developer works much faster than an average one. Moreover, a clever design or a right solution may save days or weeks of coding and debugging.
- Cost-effective solutions. We charge standard hourly rate and you do not pay extra expenses for large infrastructure. Additionally, a well designed code is easy to use and modify that further reduces the software life cycle cost.
- Flexibility & Transparency. Being a small team we can easily adapt to particular requirements of a project. Customers stay in touch with developers and are constantly aware of the development progress and issues.
- Peace in mind. We never take money if we see that a project might fail. Our expertise and tight cooperation with customers ensure high quality solutions that make both sides happy and satisfied.