Sign inSign up

matcalctuw/matcalc

By matcalctuw

•Updated 5 months ago

Simulation of phase transformation and micro-structure evolution in metallic systems.

Image
0

265

matcalctuw/matcalc repository overview

⁠Tags

TagVersionPull
latestlatest versiondocker pull matcalctuw/matcalc:latest
6.10stable 6.10 versiondocker pull matcalctuw/matcalc:6.10
6.04stable 6.04 versiondocker pull matcalctuw/matcalc:6.04
6.05.0015developer versiondocker pull matcalctuw/matcalc:6.05.0015

⁠MatCalc

MatCalc⁠ is a software package for computer simulation of phase transformation and microstructure evolution in metallic systems. The project of the software MatCalc was started in 1993 by Ernst Kozeschnik in the University of Graz. Development of MatCalc software is an ongoing and never ending project, which continues in the Vienna University of Technology. MatCalc is aimed at supporting you in the fields of materials development, simulation and optimization of materials processing and analysis and interpretation of metallurgical problems. MatCalc is already successfully utilized in teaching and research and it is used likewise by academia, research organizations and industry.

Since 2015, MatCalc Engineering GmbH is the Vienna University of Technology exclusive license agent for the MatCalc software package. It also handles all customer relations, user support, as well as training and workshop organization.

Features:

  • Constrained and unconstrained phase equilibria
  • Precipitation kinetics
  • Long-range diffusion
  • Simultaneous diffusion and precipitation
  • Lattice Metropolis and kinetic Monte Carlo
  • Microsegregation and primary precipitate formation
  • Microstructure evolution (dislocation density, grain size, …)
  • Excess vacancies and vacancy trapping
  • Dynamic and static yield strength modeling
  • Thermophysical properties (density, thermal expansion …

Typical applications:

  • Heat treatments for precipitation engineering
  • Thermo-mechanical processing
  • Through-process metallurgical simulation
  • Microstructural stability prediction
  • State parameter-based flow curve modeling

Platforms and interfaces:

  • Windows, MacOS and Linux with 32- and 64-bit support.
  • State-of-the-art GUI and command-line version.
  • Libraries with powerful API for incorporation of MatCalc into your own code.
  • Advanced scripting capability.
  • Data export/import functionality.

⁠Run

⁠Console

docker run --rm -it  \
  --volume /etc/machine-id:/etc/machine-id \
  matcalctuw/matcalc:6.10

⁠Python

docker run --rm -it  \
  --volume /etc/machine-id:/etc/machine-id \
  matcalctuw/matcalc:6.10 \
  /opt/matcalc/bin/python3.10 -c "import matcalc; matcalc.get().init()"

⁠GUI

docker run --rm -it \
  --volume /etc/machine-id:/etc/machine-id \
  --volume $HOME/.config/MatCalc:/root/.config/MatCalc \
  --volume $HOME/Documents/MatCalcUserData:/root/Documents/MatCalcUserData  \
  --env DISPLAY \
  --volume /tmp/.X11-unix:/tmp/.X11-unix \
  --volume $HOME/.Xauthority:/root/.Xauthority \
  matcalctuw/matcalc:6.10 /opt/matcalc/mcg

⁠Persistance

To keep your settings mount two folders into the container:

docker run --rm -it \
  --volume /etc/machine-id:/etc/machine-id \
  --volume $HOME/.config/MatCalc:/root/.config/MatCalc \
  --volume $HOME/Documents/MatCalcUserData:/root/Documents/MatCalcUserData  \
  matcalctuw/matcalc:6.10

⁠License

Make sure to activate the license within the container and that the machine-id and network subnet does not change inside the container for the activation to stay valid.

To get your hardware-id which is needed to create a license for you run following:

docker run --rm -it \
  --volume /etc/machine-id:/etc/machine-id \
  matcalctuw/matcalc:6.10 \
  /opt/matcalc/mcc --id

⁠Build

docker build -t matcalc - < Dockerfile

You can choose a different distribution than the default of Ubuntu 22.04:

Make sure that:

  • glibc version is at least 2.17
  • fontconfig is installed
  • SSL certificates are installed
docker build -t matcalc --build-arg="DISTRIBUTION=centos:7" - < Dockerfile

You can choose a different MatCalc Version than the default of MatCalc 6.04.1004:

docker build -t matcalc \
  --build-arg="MATCALC_VERSION=6.05.0015" \
  --build-arg="MATCALC_DATE=2023-09-09" \
 - < Dockerfile

⁠Dockerfile (6.04+)

ARG DISTRIBUTION=ubuntu:22.04

FROM ubuntu:22.04 AS install

RUN export DEBIAN_FRONTEND=noninteractive \
 && apt update \
 && apt install -y \
      dbus \
      fontconfig \
      libharfbuzz0b \
      libsm6 \
      libx11-xcb1 \
      libxcb1 \
      libxcb-cursor0 \
      libxcb-keysyms1 \
      libxcb-icccm4 \
      libxcb-randr0 \
      libxcb-shape0 \
      libxcb-sync1 \
      libxcb-xfixes0 \
      libxkbcommon0 \
      libxkbcommon-x11-0 \
      xz-utils \
 && rm -rf /var/lib/apt/lists/*

ARG MATCALC_VERSION=6.10.1.002
ARG MATCALC_DATE=2025-09-29

ADD https://download.matcalc.at/installer/$MATCALC_VERSION/matcalc-$MATCALC_VERSION-$MATCALC_DATE-linux_x86_64.tar.gz /tmp

RUN cd /tmp \
 && tar xf matcalc-*.tar.gz \
 && ./matcalc-*/matcalc-* \
      --platform minimal \
      --accept-licenses \
      --default-answer \
      --confirm-command install at.ac.tuwien.matcalc \
      --root /tmp/matcalc


FROM $DISTRIBUTION
COPY --from=install /tmp/matcalc /opt/matcalc

ARG LOCALE=en_US.UTF-8
ARG LANGUAGE=en_US:en

RUN echo "\nexport PATH=/opt/matcalc:$PATH" | tee -a /etc/bash.bashrc /etc/profile > /dev/null \
 && if [ -f /usr/bin/apt ]; then \
         export DEBIAN_FRONTEND=noninteractive \
      && apt update -y \
      && apt install -yq \
           ca-certificates \
           fontconfig \
           locales \
      && rm -rf /var/lib/apt/lists/* \
      && sed -i "/${LOCALE}/s/^# //g" /etc/locale.gen \
      && locale-gen \
    ; elif [ -f /usr/bin/yum ]; then \
         yum install -y fontconfig \
      && yum clean all \
      && rm -rf /var/cache/yum \
    ; elif [ -f /usr/bin/dnf ]; then \
         yum install -y fontconfig \
      && yum clean all \
      && rm -rf /var/cache/dnf \
    ; fi

ENV LANG=${LOCALE}
ENV LANGUAGE=${LANGUAGE}
ENV LC_ALL=${LOCALE}

CMD [ "/opt/matcalc/mcc" ]

⁠Dockerfile (until 6.04)

ARG DISTRIBUTION=ubuntu:22.04

FROM ubuntu:22.04 AS install

RUN export DEBIAN_FRONTEND=noninteractive \
 && apt update \
 && apt install -y \
      dbus \
      fontconfig \
      libharfbuzz0b \
      libxcb1 \
      libxkbcommon0 \
      xz-utils \
 && rm -rf /var/lib/apt/lists/*

ARG MATCALC_VERSION=6.04.1004
ARG MATCALC_DATE=2023-06-28

ADD https://www.matcalc.at/images/stories/Download/MatCalc/Linux/MatCalc%2064-bit%20Linux%20$MATCALC_VERSION%20$MATCALC_DATE.tar.xz /tmp

RUN echo '\n\
function Controller() {\n\
    installer.autoRejectMessageBoxes;\n\
    installer.setMessageBoxAutomaticAnswer("OverwriteTargetDirectory", QMessageBox.Yes);\n\
    installer.setMessageBoxAutomaticAnswer("stopProcessesForUpdates", QMessageBox.Ignore);\n\
}\n\
Controller.prototype.IntroductionPageCallback = function() { gui.clickButton( buttons.NextButton ); }\n\
Controller.prototype.LicenseAgreementPageCallback = function() {\n\
        var widget = gui.currentPageWidget();\n\
        if (widget != null) widget.AcceptLicenseRadioButton.click();\n\
        gui.clickButton( buttons.NextButton );\n\
}\n\
Controller.prototype.StartMenuDirectoryPageCallback =\n\
Controller.prototype.TargetDirectoryPageCallback = function() { gui.clickButton( buttons.NextButton ); }\n\
Controller.prototype.ComponentSelectionPageCallback = function() {\n\
        var widget = gui.currentPageWidget();\n\
        if (widget != null) widget.selectDefault();\n\
        gui.clickButton( buttons.NextButton );\n\
}\n\
Controller.prototype.ReadyForInstallationPageCallback = \n\
Controller.prototype.PerformInstallationPageCallback = function() { gui.clickButton( buttons.CommitButton ); }\n\
Controller.prototype.FinishedPageCallback = function() {\n\
        var widget = gui.currentPageWidget();\n\
        if (widget != null) widget.RunItCheckBox.click();\n\
        gui.clickButton( buttons.FinishButton );\n\
}\n'\
   > /tmp/silent.js \
 && cd /tmp \
 && tar xf MatCalc*.tar.xz \
 && ./Install* -platform minimal --script silent.js TargetDir=/tmp/matcalc


FROM $DISTRIBUTION
COPY --from=install /tmp/matcalc /opt/matcalc

RUN echo "\nexport PATH=/opt/matcalc:$PATH" | tee -a /etc/bash.bashrc /etc/profile > /dev/null \
 && if [ -f /usr/bin/apt ]; then \
         apt update -y \
      && apt install -y \
           ca-certificates \
           fontconfig \
      && rm -rf /var/lib/apt/lists/* \
    ; elif [ -f /usr/bin/yum ]; then \
         yum install -y fontconfig \
      && yum clean all \
      && rm -rf /var/cache/yum \
    ; elif [ -f /usr/bin/dnf ]; then \
         dnf install -y fontconfig \
      && dnf clean all \
      && rm -rf /var/cache/dnf \
    ; fi

CMD /opt/matcalc/mcc

Tag summary

Content type

Image

Digest

sha256:8d530b129…

Size

382.5 MB

Last updated

5 months ago

docker pull matcalctuw/matcalc