optimad / bitpit

Open source library for scientific HPC
http://optimad.github.io/bitpit/
GNU Lesser General Public License v3.0
117 stars 33 forks source link

Is it possible to do hybrid particle-mesh simulation in bitpit framework #13

Closed ZhouleiJoeStone closed 5 years ago

ZhouleiJoeStone commented 5 years ago

Hello, I want to know if it's possible to do particle-mesh simulation in bitpit framework? Such as particle-in-cell (PIC) . And is it possible to manage the particles in MPI as AMR mesh?

marcocisternino commented 5 years ago

Hello, bitpit is a generic framework enabling the user, among other things, to manage meshes and data containers in parallel. Nothing in bitpit is explicitly bound to a numerical method, please, consider it as an ensemble of numerical tools to implement numerical methods and schemes. You'll probably need a mesh, containers for particles, remeshing operators and communications: bitpit can help you but it is not a black box for PIC. We are glad to hear about your interest and we are available for any generic or specific help about bitpit's use. Please, don't forget that bitpit is open source and any development of yours will be welcomed.

ZhouleiJoeStone commented 5 years ago

@marcocisternino Thank you. The AMR tech in bitpit(PABLO) is impressive. But the document of bitpit is not enough for me to start the development of PIC application. Are there any suggestions/documents on how to start to learn the structure of bitpit?

marcocisternino commented 5 years ago

Hello ZhouleiJoeStone, I'm very sorry for the incomplete documentation of bitpit, we are working on it. At the moment only a Doxygen doc is available and tests can be used as a starting point for very simple examples. However, if AMR is the main topic you are interested in, I can suggest you to start from voloctree tests in order to understand how to generate, adapt and partitioning an octree/quadtree mesh. Voloctree is based on PABLO and it connects PABLO to bitpit containers(PiercedVector/PiercedStorage): the aim is to have an high level interface to octree/quadtree meshes and associated data containers. By this way, managing adaption and partitioning of both data and mesh is more straightforward. We can provide you with some more specific examples and code snippet on specific aspects on demand and we are available for any clarification. You could send us a description of what you want bitpit to do and we can give you an example code of the features in your description. If think it could help, we can also organize a teleconference and discuss how to implement what you need using bitpit. For this reason, you can contact us directly by mail and you can find our addresses at @marcocisternino and @andrea-iob Github accounts.

ZhouleiJoeStone commented 5 years ago

@marcocisternino Thank you for your patient answers. I will study your Doxygen example first to understand how bitpit work, then I think deeply how to describe my targeted problem. Thanks again.

marcocisternino commented 5 years ago

This issue has not seen any recent activity. I'm closing the issue, but feel free to re-open a closed issue if needed.