GithubHelp home page GithubHelp logo

convection-3d's Introduction

Convection-Diffusion solver library in 3D using finite volume and finite difference approaches.

Code description

This is a 3D library for solving convection-diffusion equation. You can choose to use finite difference method with the regular computational domain and finite volume method with the tetrahedralized computational domain.

  • geometry folder contains classes for generation of computational domains, classes for creating projections for visualization and a Vector3d structure. Computational domains can be regular and tetrahedralized (using CGAL). Some functions are given to have special geometry constrains (sphere and cylinder).

  • gl folder contains classes for animation (using OpenGL) and direct GPU data conversion between CUDA and OpenGL (to render animations with Nvidia graphic cards use __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia environment variable settings when launching the executable and have a look at cuda_gl_interop.h header file provided by Nvidia). Also the folder contains shaders for OpenGL. You can do real time rendering without dumping any data or you can swith the OpenGL window off (third argument in custom_gl::gl_viewer constructor). glad folder contains util files for OpenGL loader.

  • solvers folder contains numerical solvers: finite difference method for advection and diffusion equations; finite volume method for advection, diffusion and Poisson equations.

  • utils folder contains functions for generating off files. They are used by CGAL to generate geometry constraints.

Demo

  • Here's an example of the tetrahedralized computational domain:

  • Here's the solution to the advection equation using finite volume method. We also add projections to see the solutions as well as keeping the constrained sphere:

To implement the solver I used the following paper.

New folders

This is a work in progress. Right now there are attempts to add coagulation operators, parallel computations, separate mesher and use more realistic velocity fields using OpenFOAM. The configuration file is based on a script by Interfluo.

Current graph:

All is located in the LES folder. It's a mess, need to organize it properly later.

convection-3d's People

Contributors

rishat-zagidullin 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.