Coder Social home page Coder Social logo

gitter-badger / ascent Goto Github PK

View Code? Open in Web Editor NEW

This project forked from anyarinc/ascent-beta

0.0 1.0 0.0 1.38 MB

An open source C++ architecture for time-based simulations. Modular and dynamic, with discrete and continuous parameter mixing. Easily solve complex systems of differential equations.

Home Page: http://anyarinc.github.io/ascent/

License: Apache License 2.0

CMake 0.45% C++ 99.31% Batchfile 0.24%

ascent's Introduction

ASCENT

An open source C++ architecture for time-based simulations.

Developed by Anyar, Inc.

Ascent is a module-based simulation architecture that can handle extremely complex and dynamic systems. The architecture is built around a powerful ordinary differential equation solver, but Ascent can do far more than solve differential equations.

Ascent Website

Why build simulations with Ascent?

  • Modular: Share and reuse modules.
  • Object Oriented: Polymorphic module handling.
  • Automatic Simulation Ordering: Ascent automatically orders the flow of the simulation, which allows a simulation designer to develop and solve highly modular and complex systems.
  • Asynchronous Sampling and Event Scheduling
  • Run-Time Dynamic Systems: Allows dynamic module creation, deletion, linking, and ordering, all properly handled for correct numerical integration.
  • Fast Running: Insofar as to not sacrifice dynamic behavior.
  • Simulators Can Run On Separate Threads
  • Integrators: Runge Kutta, Dormand Prince, and multiple real-time predictor-correctors. Some integrators support adaptive stepping.
  • Built In Variable Tracking: Easily record and output time history of integers, doubles, vectors, and even custom data types.
  • ChaiScript Embedded Scripting Language: Easily connect, initialize and run your modules from a powerful scripting engine.
  • Eigen C++ Linear Algebra Library: Ascent utilizes the mature Eigen library, providing straightforward matrix and vector handling.
  • Easy To Begin!: Only two classes (asc::Module and asc::Link) are required to solve most differential equations or systems.

Building The Ascent Library

  • Clone Ascent
  • Install the CMake GUI and use it to generate a build directory within the Ascent directory
  • Or, if you're on Windows, just double click the build.bat file to build Visual Studio 14 2015 Win64 project and libraries. You can edit the batch file and change the generator to another compatable CMake generator.

Ascent requires a C++14 compliant compiler.

Ascent Community

Ascent was designed to allow any modules built on Ascent to be easily shared and interfaced with other Ascent modules.
Share your open source modules and libraries built on Ascent in the Ascent-Community repositories.

Support

Contributions are Welcome!

Please report bugs, offer fixes, contribute modules, ask questions and answer questions. The more the merrier!

For those interested in contributing to the core of Ascent, see For Architects of Ascent, which explains more details of architecture design/goals.

Projects using Ascent

  • Anyar, Inc. uses Ascent for high fidelity, six degree of freedom missile modeling.
  • Anyar, Inc. maintains viscoelastic human injury blunt and blast trauma software built on Ascent.
    Share your projects using Ascent.

ascent's People

Contributors

stephenberry avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.