KratosMultiphysics / Kratos

Kratos Multiphysics (A.K.A Kratos) is a framework for building parallel multi-disciplinary simulation software. Modularity, extensibility and HPC are the main objectives. Kratos has BSD license and is written in C++ with extensive Python interface.
https://kratosmultiphysics.github.io/Kratos/
Other
1.01k stars 244 forks source link

Docker Image Versions Build on Ubuntu #11905

Closed bloc0105 closed 8 months ago

bloc0105 commented 8 months ago

Docker Versions and Building an image

I started looking at the docker images for Kratos. The first image that I attempted to build was the Ubuntu Bionic image. I used the dockerfile in docker_file_ci_ubuntu_bionic to build an ubuntu image then I used the docker file in docker_file_ci_ubuntu_bionic to attempt to build Kratos. This first attempt was unsuccessful.

After that, I decided to switch to the dockerfile in docker_file_ci_ubuntu_22_04 to build. I had to modify the intel mkl install in order to get it working. It looks like that is now called oneapi. I also had to make a new script to build Kratos since there isn't a dockerfile for Ubuntu 22.04. With this new Build I had to set the variable DINCLUDE_MMG to off in order to build successfully.

I'm wondering if the behavior that I'm seeing is expected, or if this is something that could be improved/fixed. I thought I might contribute to a newer docker image based on what I've learned, but I thought I'd ask some questions first:

Thanks for any help or suggestions.

philbucher commented 8 months ago

Hey, In a nutshell, we use ubuntu 22.04 in the CI, from which is would be pretty straight forward to compile the docker image (basically use the configure script that we use in the CI).

I did this for bionic aka ubuntu 20.04 but none was using it and eventually the automated build broke. I did not yet bother to fix it due to lack of interest. Therefore, I also never did it for 22.04

BTW MMG is purely optional, only used in the MeshingApp

Can you elaborate a bit what exactly you need? I.e. which functionalities. Bringing the automated build back should be doable

bloc0105 commented 8 months ago

Hi,

I actually don't have a specific physics application that I need yet. I do a lot of work in systems engineering and I have an interest in Multiphysics simulations for product development and engineering. I'm interested in the idea of combining multiphysics simulations with Model-Based-Systems-Engineering tools so that people can develop digital twins more easily. I'm picturing a tool that combines SysML modelling with physics simulations to allow engineers to simulate the behavior of their products before having to physically build them.

I've seen and used commercial tools with similar behavior, but never anything open source. I'm guessing there are other engineers like myself, who have ideas for inventions but no way to get them off the ground without a proof-of-concept. I think it would be really interesting to have an open source tool for engineers to take their ideas to fruition in the digital realm.

With that in mind, I'm starting by trying out Kratos and seeing what it can do and how I can use it. I'm just looking to get it running and try the tutorials and learn more about the program for now.

When trying out software, I like to use docker images since it's less complicated than turning my computer into a build environment. It looks like the 22.04 docker image is a good place to start for learning more about Kratos.

philbucher commented 8 months ago

If you only want to play around and get to know Kratos, then I recommend to pip install it. That is a one-liner, and if you do it in a venv then there are no problems with messing up your other system

bloc0105 commented 8 months ago

Yep, that's a good place to start. I'll go from there. Thanks!