{"id":28666,"date":"2023-10-10T13:31:59","date_gmt":"2023-10-10T11:31:59","guid":{"rendered":"https:\/\/www.risc-software.at\/referenzprojekte\/softwareprodukt-zur-produktion-im-aluminiumstranggus\/"},"modified":"2026-04-20T17:53:44","modified_gmt":"2026-04-20T15:53:44","slug":"software-product-for-production-in-continuous-casting-of-aluminum","status":"publish","type":"project","link":"https:\/\/www.risc-software.at\/en\/referenceprojects\/software-product-for-production-in-continuous-casting-of-aluminum\/","title":{"rendered":"From development to product maturity with Docker"},"content":{"rendered":"\n<p class=\"has-medium-font-size\">RISC Software GmbH supported the LKR Leichtmetallkompetenzzentrum Ranshofen in rolling out a software product for production in continuous aluminum casting. This software enables precise parameter configuration via a web application. The Docker platform was used to combine different user environments and versions.  <\/p>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<p>Modern software projects require a large number of different libraries, system settings, environments and services, each in different versions. However, the end product must run on a variety of systems. Docker has emerged as the de facto standard for reconciling these differing conditions.  <\/p>\n\n\n\n<p>From March to July 2022, RISC Software GmbH and the LKR Leichtmetallkompetenzzentrum Ranshofen transformed the FReSGo framework from a pure developer version into a state that enables the rollout of production-ready installations via docker images.<\/p>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"683\" sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-1024x683.jpg\" alt=\"\" class=\"wp-image-28664\" srcset=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-1024x683.jpg 1024w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-300x200.jpg 300w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-768x512.jpg 768w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-1536x1024.jpg 1536w, https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium.jpg 1888w\" \/><\/figure>\n<\/div>\n<\/div>\n\n<h3 class=\"wp-block-heading\">Functionality<\/h3>\n\n<p>The FReSGo framework allows the user to select a parameter configuration for a continuous aluminum casting via a web application. If no configuration exists for the desired parameters, the framework runs a simulation via OpenFoam to determine the required configuration. The web application and simulation use a shared PostgreSQL database.  <\/p>\n\n<h3 class=\"wp-block-heading\">Initial situation<\/h3>\n\n<p>The framework including the web application is written in Python and ran on the respective developer computers, as well as a local PostgreSQL database. The simulation consisted of a C++ component for OpenFOAM and the OpenFOAM simulation core, which required a relatively large amount of effort to install locally due to its demanding requirements. The C++ component had to be built after each change, and the knowledge lay with a single developer. All sources are managed in an LKR-internal installation of Gitlab.   <\/p>\n\n<h3 class=\"wp-block-heading\">Measures<\/h3>\n\n<p>The following steps were taken to formalize the implicit knowledge and automate building, testing and rolling out in production systems:<br\/><\/p>\n\n<ul class=\"wp-block-list\">\n<li>Introduction or revision of Docker configurations for each sub-project.<\/li>\n\n\n\n<li>Creation of common parent docker images so that the number of different configurations remained low.<\/li>\n\n\n\n<li>Consolidation of shared information in environment variables that are codified in an .env file.<\/li>\n\n\n\n<li>Based on the publicly available Docker image from OpenFOAM, a simulation image was created that automatically builds the C++ component.<\/li>\n\n\n\n<li>Extraction of the test cases into a separate Docker test image.<\/li>\n<\/ul>\n\n<h3 class=\"wp-block-heading\">Results<\/h3>\n\n<p>Development benefited enormously from the changeover. Previously, broken code in the repository often went unnoticed because it ran flawlessly on one developer&#8217;s specific system environment, but not on another developer&#8217;s slightly different environment. Debugging cycles were shortened.  <\/p>\n\n<div style=\"height:124px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Project partners<\/h2>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large is-resized\"><img decoding=\"async\" src=\"https:\/\/www.ait.ac.at\/fileadmin\/template_relaunch\/img\/ait-logo-footer.svg\" alt=\"\" width=\"300\" height=\"89\"\/><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column has-risc-grey-background-color has-background is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<h2 class=\"wp-block-heading\">Project details<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Project partners:<\/strong>\n<ul class=\"wp-block-list\">\n<li>LKR Light Metal Competence Center Ranshofen (AIT Austrian Institute of Technology)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Term:<\/strong> 8 months (05\/2022-12\/2022)<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:66.66%\">\n<h2 class=\"wp-block-heading\">Contact us<\/h2>\n\n\n\n<div class=\"wp-block-contact-form-7-contact-form-selector\">\n<div class=\"wpcf7 no-js\" id=\"wpcf7-f663-o1\" lang=\"en-US\" dir=\"ltr\" data-wpcf7-id=\"663\">\n<div class=\"screen-reader-response\"><p role=\"status\" aria-live=\"polite\" aria-atomic=\"true\"><\/p> <ul><\/ul><\/div>\n<form action=\"\/en\/wp-json\/wp\/v2\/project\/28666#wpcf7-f663-o1\" method=\"post\" class=\"wpcf7-form init\" aria-label=\"Contact form\" novalidate=\"novalidate\" data-status=\"init\">\n<fieldset class=\"hidden-fields-container\"><input type=\"hidden\" name=\"_wpcf7\" value=\"663\" \/><input type=\"hidden\" name=\"_wpcf7_version\" value=\"6.1.5\" \/><input type=\"hidden\" name=\"_wpcf7_locale\" value=\"en_US\" \/><input type=\"hidden\" name=\"_wpcf7_unit_tag\" value=\"wpcf7-f663-o1\" \/><input type=\"hidden\" name=\"_wpcf7_container_post\" value=\"0\" \/><input type=\"hidden\" name=\"_wpcf7_posted_data_hash\" value=\"\" \/>\n<\/fieldset>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-name\">Your name <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-name\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-name\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Name\" value=\"\" type=\"text\" name=\"your-name\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-email\">Your email<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-email\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-email wpcf7-validates-as-required wpcf7-text wpcf7-validates-as-email\" id=\"your-email\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"E-Mail\" value=\"\" type=\"email\" name=\"your-email\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-company\">Company <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-company\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" id=\"your-company\" aria-invalid=\"false\" placeholder=\"Unternehmen\" value=\"\" type=\"text\" name=\"your-company\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-position\">Position<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-position\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text\" aria-invalid=\"false\" placeholder=\"Position\" value=\"\" type=\"text\" name=\"your-position\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<div class=\"form-row\">\n\t<div class=\"form-input\">\n\t\t<p><label class=\"sr-only\" for=\"your-subject\"> Subject <\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-subject\"><input size=\"40\" maxlength=\"400\" class=\"wpcf7-form-control wpcf7-text wpcf7-validates-as-required\" id=\"your-subject\" aria-required=\"true\" aria-invalid=\"false\" placeholder=\"Thema\" value=\"\" type=\"text\" name=\"your-subject\" \/><\/span>\n\t\t<\/p>\n\t<\/div>\n<\/div>\n<p><span id=\"wpcf7-69efec5a64496-wrapper\" class=\"wpcf7-form-control-wrap phone-95-wrap\" style=\"display:none !important; visibility:hidden !important;\"><label for=\"wpcf7-69efec5a64496-field\" class=\"hp-message\">Please leave this field empty.<\/label><input id=\"wpcf7-69efec5a64496-field\"  class=\"wpcf7-form-control wpcf7-text\" type=\"text\" name=\"phone-95\" value=\"\" size=\"40\" tabindex=\"-1\" autocomplete=\"new-password\" \/><\/span><br \/>\n<label class=\"sr-only\" for=\"your-message\"> Your message (optional)<\/label><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"your-message\"><textarea cols=\"40\" rows=\"10\" maxlength=\"2000\" class=\"wpcf7-form-control wpcf7-textarea\" id=\"your-message\" aria-invalid=\"false\" placeholder=\"Ihre Nachricht an uns\" name=\"your-message\"><\/textarea><\/span><br \/>\n<span class=\"wpcf7-form-control-wrap\" data-name=\"hcap-cf7\">\t\t<input\n\t\t\t\ttype=\"hidden\"\n\t\t\t\tclass=\"hcaptcha-widget-id\"\n\t\t\t\tname=\"hcaptcha-widget-id\"\n\t\t\t\tvalue=\"eyJzb3VyY2UiOlsiY29udGFjdC1mb3JtLTdcL3dwLWNvbnRhY3QtZm9ybS03LnBocCJdLCJmb3JtX2lkIjo0MzZ9-c5ba05e011699d70dda36bf3838d9e02\">\n\t\t\t\t<span id=\"hcap_cf7-69efec5a649628.59272817\" class=\"wpcf7-form-control h-captcha \"\n\t\t\tdata-sitekey=\"3a6a81c1-2b2e-4b2a-b1eb-d9446bc09afb\"\n\t\t\tdata-theme=\"light\"\n\t\t\tdata-size=\"normal\"\n\t\t\tdata-auto=\"false\"\n\t\t\tdata-ajax=\"false\"\n\t\t\tdata-force=\"false\">\n\t\t<\/span>\n\t\t<input type=\"hidden\" id=\"_wpnonce\" name=\"_wpnonce\" value=\"ae92b2163e\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/en\/wp-json\/wp\/v2\/project\/28666\" \/><\/span><input class=\"wpcf7-form-control wpcf7-submit has-spinner btn\" type=\"submit\" value=\"Senden\" \/>\n<\/p><div class=\"wpcf7-response-output\" aria-hidden=\"true\"><\/div>\n<\/form>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\" style=\"flex-basis:33.33%\">\n<h2 class=\"wp-block-heading\">Project management<\/h2>\n\n\n<div class=\"contact-person\">\n      <picture>\n      \n      \n      \n      \n      <img decoding=\"async\" data-aos=\"fade-zoom-in\"\n           data-aos-offset=\"0\" class=\"w-full\" width=\"212\" height=\"293\"\n           src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/pheinzlr1-removebg-preview.png\"\n           alt=\"\">\n    <\/picture>\n    \n\n<h5 class=\"wp-block-heading\">DI Paul Heinzlreiter<\/h5>\n\n\n\n<p>Senior Data Engineer<\/p>\n\n  <\/div>\n<\/div>\n<\/div>\n\n<h2 class=\"wp-block-heading\">Read more<\/h2>\n<div class=\"posts-slider-block\" data-aos=\"fade-up\" data-aos-offset=\"0\" data-aos-anchor-placement=\"top-bottom\">\n        <section class=\"splide posts-slider\" aria-label=\"Gallery Slides\">\n            <div class=\"splide__arrows\">\n                <button class=\"splide__arrow splide__arrow--prev\">\n                    <span class=\"sr-only\">Previous<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/www.risc-software.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Previous\">\n                <\/button>\n                <button class=\"splide__arrow splide__arrow--next\">\n                    <span class=\"sr-only\">Next<\/span>\n                    <img decoding=\"async\" loading=\"lazy\" width=\"25\" height=\"21\" src=\"https:\/\/www.risc-software.at\/app\/themes\/risc-theme\/public\/images\/icon-arrow.35d2ec.svg\"\n                         alt=\"Next\">\n                <\/button>\n            <\/div>\n            <div class=\"inner\">\n                <div class=\"splide__track\">\n                    <div class=\"splide__list\">\n\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-mastering-the-industrial-data\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/07\/iStock-858527512-1-360x214.jpg\"\n                                                 alt=\"Mastering the (industrial) Data (EN)\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Mastering the (industrial) Data (EN)<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        How improved manufacturing is created from industrial and production process data.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-data-engineering-the-solid-basis-for-effective-data-utilization\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-966899060-1-360x214.jpg\"\n                                                 alt=\"Data Engineering \u2013 the solid basis for effective data utilization\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Data Engineering \u2013 the solid basis for effective data utilization<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        Data engineering integrates data from a wide variety of sources and makes them effectively usable. This makes it a prerequisite for effective data science, machine learning and artificial intelligence, especially in the big data area.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                                    <a href=\"https:\/\/www.risc-software.at\/en\/technicalarticles\/technical-article-data-quality-in-practice\/\" class=\"splide__slide blog-post-teaser mb-1 lg:mb-3\">\n                                <div class=\"blog-image\">\n                                                                                                                                <picture>\n                                                                                        <img decoding=\"async\" src=\"https:\/\/www.risc-software.at\/app\/uploads\/2023\/06\/iStock-494345930-360x214.jpg\"\n                                                 alt=\"Data quality in practice\">\n                                        <\/picture>\n                                                                    <\/div>\n                                <div class=\"blog-content px-2 py-3 xl:px-4 xl:py-5\">\n                                    <h3>Data quality in practice<\/h3>\n                                    <div class=\"blog-post-excerpt mt-2\">\n                                        One of the central goals of data engineering is the preparation of data sets according to the requirements of the users or the subsequent process steps. The use of data can range from model training in the field of machine learning to improved internal company reporting based on an integrated database.\n                                    <\/div>\n                                    <span class=\"inline-block mt-2 more\">mehr erfahren <span class=\"ml-1 icon-more\"><\/span><\/span>\n\n                                <\/div>\n                            <\/a>\n                                            <\/div>\n                <\/div>\n            <\/div>\n        <\/section>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>RISC Software GmbH supported the LKR Leichtmetallkompetenzzentrum Ranshofen in rolling out a software product for production in continuous aluminum casting. This software enables precise parameter configuration via a web application. The Docker platform was used to combine different user environments and versions.  <\/p>\n","protected":false},"featured_media":28665,"template":"","project-category":[63,64],"class_list":["post-28666","project","type-project","status-publish","has-post-thumbnail","hentry","project-category-data-intelligence-en","project-category-industrial-ai-and-simulation-en"],"acf":[],"portrait_thumb_url":"https:\/\/www.risc-software.at\/app\/uploads\/2023\/10\/iStock_000003266601Medium-360x214.jpg","watermark":false,"_links":{"self":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/project\/28666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/project"}],"about":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/types\/project"}],"version-history":[{"count":5,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/project\/28666\/revisions"}],"predecessor-version":[{"id":36795,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/project\/28666\/revisions\/36795"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/media\/28665"}],"wp:attachment":[{"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/media?parent=28666"}],"wp:term":[{"taxonomy":"project-category","embeddable":true,"href":"https:\/\/www.risc-software.at\/en\/wp-json\/wp\/v2\/project-category?post=28666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}