Git Product home page Git Product logo

nanokappa's Introduction

Hey, there!

My name is Bruno, I am a mechanical engineer with a PhD in Energy and Mechanics. My thing is computational modelling in general, although I have mostly focused on heat transfer, almost always in Python (MATLAB and some FORTRAN before that).

Besides that, I am interested in artificial intelligence and optimisation applications and almost any system modelling really, for the pure fun of it.

I'm currently working as Scientific Software Engineer at TwiinIT, developping numerical models of complex systems. You can know more at https://twiinit.com/.

My most recent work was my PhD thesis, the development of Nano-κ , a Python code to simulate phonon transport and optimise semiconductor nanodevices. The objective is for Nano-κ to be flexible enough to run in almost any geometry and completely automated so that we can leave it doing its job while we turn coffee into other stuff without worrying. For more information, visit its repository.

If you are interested to have a coffee and talk about ideas, please send me a message on my socials. Cheers!

nanokappa's People

Contributors

brunohs1993 avatar laurenthayez avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ajb33

nanokappa's Issues

package missing

I got the error :

D:\Nanokappa-main>python nanokappa.py -ff parameters_test.txt
Traceback (most recent call last):
File "D:\Nanokappa-main\nanokappa.py", line 2, in
from classes.Geometry import Geometry
File "D:\Nanokappa-main\classes\Geometry.py", line 11, in
import trimesh as tm
ModuleNotFoundError: No module named 'trimesh'

Trimesh should be install, can yo clarify which version?

Wrong division when detecting collision

Opening this issue to keep it on the record.

  • Problem appearing on Laurent's macbook.

  • Triangle and pyembree were installed via pip. The rest was installed from conda.

  • Invalid division happening in this part of the code:

      offset_dist_norm = - v_norm*self.offset/np.sum(velocities*normals, axis = 1, keepdims = True) # ||d|| = ||v|| h / v . n
      offset_dist      = - velocities*offset_dist_norm/v_norm                                       # d = ||d|| v/||v||
    
  • Does not happen on Windows nor Linux.

Volume triangulation

The volume triangulation routine currently uses scipy.delaunay.triangulate to divide the mesh into tetrahedra. Despite Scipy's routine being applied only to convex geometries, additional checks in Nanokappa are made to detect holes and corners, as well as new points are added to avoid holes inside the mesh that should not be there. Nevertheless sometimes these are not enough, and we still find particles outside of the mesh being detected as being inside, and vice versa.

There is a bounds check using the bounding box of the geometry, eventually particles that are outside will be moved inside. However this may take a lot of time if their velocity is small or the geometry is large. Also this does not mean it solves the triangulation issue inside the mesh.

Example geometry that reproduces this problem:

--geometry         freewire
--dimensions       100 200 100 0 300 200 150 0 250 200 100 0 150 200 50 0 100 200 10 6    

Heat flux and energy balance calculations on reservoirs.

The way these calculations are being made seem inconsistent.

These may be a consequence of a combination of:

  1. the lack of precision of T estimation throughout the volume and
  2. the boundary scattering model.

The heat flux calculation actually seems to be faulty, not changing properly with area and Delta T.

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.