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.02k stars 244 forks source link

Release 9.0 #9230

Closed roigcarlo closed 2 years ago

roigcarlo commented 2 years ago

Description Dear @KratosMultiphysics/all

We are planning to make a Release by the end of November. Date of the Release will be 26/11/2021 Freeze branch would be ideally a couple of weeks before 12/11/2021

The list of applications to be released by platform are to be checked here (please comment here if you add/delete apps so I am aware of possible changes): https://github.com/KratosMultiphysics/Kratos/projects/5

As always we have created a milestone so we can track all the PR that you are interested to have in the release: https://github.com/KratosMultiphysics/Kratos/milestone/20

Since this is the first release to use wheels instead of the regular zip packages it would be good to have the Freeze ready for the beginning of November to have some buffer to handle unexpected problems, so if you can make it before the 12/11/2021 we would really appreciate it.

Issue Tracking (this are on my side, no need to do anything):

armingeiser commented 2 years ago

I would like to add the ShapeOptimizationApplication. Can i simply add it to the list in the project? It is working on Linux and Windows, not sure about MacOS.

roigcarlo commented 2 years ago

I would like to add the ShapeOptimizationApplication. Can i simply add it to the list in the project? It is working on Linux and Windows, not sure about MacOS.

Sure! MacOS should be the same as linux if they don't make use of MPI.

Vahid-Galavi commented 2 years ago

https://github.com/KratosMultiphysics/Kratos/projects/5

@roigcarlo I can not see any project here:

https://github.com/KratosMultiphysics/Kratos/projects/5

roigcarlo commented 2 years ago

Mm its odd, there should be several columns with lists of applications. I've been trying without logging in and seems to be public...

loumalouomega commented 2 years ago

It is going to be 9? or 8.2?

roigcarlo commented 2 years ago

9

Vahid-Galavi commented 2 years ago

@roigcarlo I can see it now. There was a problem at that time showing the page is not public.

philbucher commented 2 years ago

@roigcarlo did you already create the release branch?

roigcarlo commented 2 years ago

No, since there are still plenty of PR pending to be merged...

sunethwarna commented 2 years ago

I also would like to add StatisticsApplication for windows release as well. It is tested in CI for windows.

philbucher commented 2 years ago

@roigcarlo is there sth prepared where we can add stuff to the changelog?

roigcarlo commented 2 years ago

I will make a draft for the release later today. you can add it there.

roigcarlo commented 2 years ago

@KratosMultiphysics/all Release 9.0 has been created. If you need something to be included in the release, please make a separate PR into that branch.

mpentek commented 2 years ago

We would plan to used it for teaching, starting at the middle of December. Do you think I could test it by then, is that at all a feasible timeline?

roigcarlo commented 2 years ago

Hi @mpentek. I am planning to upload the binaries during this afternoon, so they should be available today. I have only been able to test that they work up to certain point ( I don't know the details of the apps etc...) and this is the first release with wheels so I expect that there will be errors. If everyone can provide feedback, specially for win, I assume it shouldn't take more than a week to get rid of the problems.

So, I would say yes, it should be ready by mid December

mpentek commented 2 years ago

I can test (FluidDyn, StructMech and FSI, perhaps CoSim and StatisticsApp as well) what we use for teaching on Win10 and Ubuntu20. I typically use the in-built examples.

roigcarlo commented 2 years ago

Perfect. Binaries should be already published. I think GiD interface will be published later (ping @jginternational ) don't know if you need it.

To install the new ones just extract the wheels somewhere and:

python -m pip install *.whl

or (windows powershell)

pip install $(ls *.whl)

Note that now you can use it with anaconda, scipy, or in python integrated in pretty much anything as long as you install the whs using the proper interpreter. (there are binaries for all supported python versions right now except pyton 3.10 win, that one will come on monday).

Also you can finaly use numpy and other python packages in the scripts :)

mpentek commented 2 years ago

Great news! @jginternational it would be nice to know if and how this would be bundled. Will it remain via internet retrieve through GiD or there will be a new mechanism?

jginternational commented 2 years ago

Yes! But I need to work a little bit on in (check if python is installed in the system, install the proper packages...) Out system will change a bit but the users will not notice the changes (almost)

Next week I'll try to create the release

mpentek commented 2 years ago

I tested the packages on Win10 with pytho3.9.9 (so the version cp3.9). Here are install notes and an error log attached.

On this OS the long path names has to be enabled for an application, some application have troubles when trying to import. win10_cp39_install_notes_error_log.txt

I tested sample simulation with the FluidMechanics, StructuralMechanics and FSI apps, all work. I might be able to test the CoSim and Statistics as well.

Will the GiD problemtype be able to use packages installed by the user? Some sort of symbolic linking? Or there will be some other mechanism?

Will this type of installation conflict with developer version?

Here are the observations and error logs for linux. There only the ParticlaMechanics application seems to result in a failure when trying to import. ubuntu18_cp36_install_notes_error_log.txt ubuntu18_cp39_install_notes_error_log.txt

roigcarlo commented 2 years ago

Hi @mpentek , thx for the feedback. Looking into it right now.

For GiD, I don't know the details but I think the idea is that the user selects which python interpreter to use (or download one automatically). In this case you should be able to install any package (numpy, etc...) you want. (@jginternational if you can confirm)

About the dev version, you can have both the wheels and dev origins at the same time in the same python version, but I don't recommend it. In any case modules in the PYTHON_PATH will have preference over the ones installed from pip.

Example:

# PYTHON_PATH=/my/home/kratos-9.1 (only core)
# pip install KratosMultiphysics KratosFluidDynamicsApplication (version 9.0)

import KratosMultiphyscis # Would import Kratos 9.1
import KratosMultiphyscis.FluidDynamicsApplication # Would import FDA 9.0
roigcarlo commented 2 years ago

Hi @mpentek Problems from the CoSimulatio and SwimmingDem should be fixed (9.0.1 is available)

I am still fixing problems from Particle Mechanics, that seems to be a problem in the app, not in the release, Hopefully will be fixed by Monday

Also, thx to @jginternational you can now install from the internet!:

pip install KratosMultiphysics KratosCoSimulationApplication etc...

and uninstall (please don't :cry: )

pip uninstall KratosMultiphysics KratosCoSimulationApplication etc...

It still has some limitations. For win it needs the msvc140 redistributables, and we still cleaning some details, but it should be functional

jginternational commented 2 years ago

Also, thx to @jginternational you can now install from the internet!:

pip install KratosMultiphysics KratosCoSimulationApplication etc...

I'm also working on the gui, so the users get the kratos binaries this way, and developers can choose between this packages or the ones they build from source (configure.sh or .bat)

mpentek commented 2 years ago

Ok, so I understand the installation now might go straight away from the internet, without downloading the WHEEL packages locally. @roigcarlo @jginternational do you think I might be able to try the new approach from GiD by Tuesday next week? We would intend to "go live" with it for teaching on Thursday afternoon and are still debating whether to use GiD15 with Kratos 8 or aim higher :-D.

Our activity is not affected by the ParticleMechApp, as we do not use it. The apps we need seem to work, it is more related to the method how to get and install.

armingeiser commented 2 years ago

Also, thx to @jginternational you can now install from the internet!:

very cool, thanks @jginternational! I found a small inconsitency, the wheel version is already 9.0.1, but the title of the package still says 9.0.0.

grafik
roigcarlo commented 2 years ago

That would be my fault sorry, I messed up with the META files. Next upload should fix it.

@mpentek from my side as long as they have the redistributables installed no problem (https://aka.ms/vs/17/release/vc_redist.x64.exe)

jginternational commented 2 years ago

You can find a beta 9.0.0 of the gid interface here https://github.com/KratosMultiphysics/GiDInterface/releases/tag/Release-9.0.0

I need to test more before adding it as available in the GiD marketplace, but you can use it

armingeiser commented 2 years ago

@roigcarlo how often will a new package be created and uploaded? Is this eventually even automated?

roigcarlo commented 2 years ago

For now we will upload them manually as we usually made releases in the past. As everything is in now place you can expect releases more frequently, and not only for major changes (9.0.x and 9.x.x).

As a matter of fact, it is already automated via docker. The only manual step is the upload because it was our first time trying that. Automating this task can be easily done by calling the upload script in the main workflow.

Pipy keeps old releases up, so you will be able to target past versions as well if you want.

We also have nightly and weekly releases on the oven but when they come they will be distributed separately, more on that when are finished