Advanced Simulation Library

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

Lua error in Module:Infobox at line 314: malformed pattern (missing ']').

Multicomponent flow video
Computer-assisted cryosurgery
Simulation of a microfluidic device for separating mixtures of proteins
Coating procedure employing Physical Vapor Deposition (PVD) method
Image-guided neurosurgery, brain deformation simulation
Aerodynamics of a locomotive in a tunnel

Advanced Simulation Library (ASL) is free and open source hardware accelerated multiphysics simulation software. It enables users to write customized numerical solvers in C++ and deploy them on a variety of massively parallel architectures, ranging from inexpensive FPGAs, DSPs and GPUs[1] up to heterogeneous clusters and supercomputers. Its internal computational engine is written in OpenCL and utilizes variety of advanced numerical methods,[2] i.a. Level set method, Finite Difference, Lattice Boltzmann, Immersed Boundary. ASL can be used to model various coupled physical and chemical phenomena, especially in the field of Computational fluid dynamics. It is distributed under the free GNU Affero General Public License with an optional commercial license.

History

Advanced Simulation Library is being developed by Avtech Scientific, an Israeli company. Its source code was released to the community on 14 May 2015 whose members packaged it for scientific sections of all major Linux distributions shortly thereafter.[3][4][5][6][7][8] Subsequently Khronos Group acknowledged the significance of ASL and listed it on its website among OpenCL-based resources.[9]

Application areas

Advantages and disadvantages

Advantages

  • Easy to learn C++ API[10] (no OpenCL knowledge required)
  • Mesh-free, immersed boundary approach allows to move from CAD directly to computations eliminating pre-processing efforts and reducing amount of potential errors
  • High performance[11]
  • Dynamic compilation enables an additional layer of optimization at run-time (i.e. for a specific parameters set the application was provided with)
  • Automatic hardware acceleration and parallelization of applications
  • Deployment of same program on a variety of parallel architectures - GPU, APU, FPGA, DSP, multicore CPUs
  • Ability to deal with complex boundaries
  • Ability to incorporate microscopic interactions
  • Availability of the source code

Disadvantages

  • Absence of detailed documentation (besides the Developer Guide generated from the source code comments)
  • Not all OpenCL drivers are mature enough for the library[12]

Features

ASL provides a range of features to solve number of problems - from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid mechanics and elasticity.[13]

  • Interfacing: VTK/ParaView, MATLAB (export).
    • import file formats: .stl .vtp .vtk .vti .mnc .dcm
    • export file formats: .vti .mat
  • Geometry:
    • flexible and complex geometry using simple rectangular grid
    • mesh-free, immersed boundary approach
    • generation and manipulation of geometric primitives
  • Implemented phenomena:
    • Transport processes
      • multicomponent transport processes
      • compressible and incompressible fluid flow
    • Chemical reactions
      • electrode reactions
    • Elasticity
      • homogenious isotropic elasticity
      • homogenious isotropic poroelasticity
    • Interface tracking
      • evolution of an interface
      • evolution of an interface with crystalographic kinetics

Uses

  • ACTIVE - Active Constraints Technologies for Ill-defined or Volatile Environments (European FP7 Project)[14][15][16]

References

<templatestyles src="Reflist/styles.css" />

Cite error: Invalid <references> tag; parameter "group" is allowed only.

Use <references />, or <references group="..." />
  1. Lua error in package.lua at line 80: module 'strict' not found.
  2. Lua error in package.lua at line 80: module 'strict' not found.
  3. Lua error in package.lua at line 80: module 'strict' not found.
  4. Lua error in package.lua at line 80: module 'strict' not found.
  5. Lua error in package.lua at line 80: module 'strict' not found.
  6. Lua error in package.lua at line 80: module 'strict' not found.
  7. Lua error in package.lua at line 80: module 'strict' not found.
  8. Lua error in package.lua at line 80: module 'strict' not found.
  9. Lua error in package.lua at line 80: module 'strict' not found.
  10. Lua error in package.lua at line 80: module 'strict' not found.
  11. Lua error in package.lua at line 80: module 'strict' not found.
  12. Lua error in package.lua at line 80: module 'strict' not found.
  13. Lua error in package.lua at line 80: module 'strict' not found.
  14. Lua error in package.lua at line 80: module 'strict' not found.
  15. Lua error in package.lua at line 80: module 'strict' not found.
  16. Lua error in package.lua at line 80: module 'strict' not found.