Sign inSign up

frederikheber/molecuilder

By frederikheber

•Updated 9 months ago

MoleCuilder: Build molecular systems from scratch, optimize and simulate!

Image
0

367

frederikheber/molecuilder repository overview

MoleCuilder (http://www.molecuilder.de/⁠) is an almost complete solution to building molecular systems and using ab-initio quantum mechanical solvers for optimization and simulation in a linear-scaling fashion.

It allows to setup the molecular system by adding atoms, computing the bond graph and thus creating molecules. The molecular dynamics can be computed with the help of an internal version of MPQC⁠ where we employ a fragmentation approach for linear scaling computations. The energies in the local Born-Oppenheimer-Surface of these fragments can be fitted using empirical potentials. Moreover, molecular systems can be created by filling domains specified through constructive geometry using filler molecules.

It features four different interfaces (GUI, Python, command-line and interactive text) and an integrated worker/server approach for calculations running in parallel easily (also within a kubernetes/k8s setup).

For an inspiration and screenshots, please check out MoleCuilder's blog⁠.

⁠Start MoleCuilder on the Command-line

Run molecuilder in a docker container with a terminal attached:

docker run -it --rm frederikheber/molecuilder:1.7.0

Then type

molecuilder --version

to see the version.

Next, try `molecuilder --help`` to see a list of commands.

See the userguide⁠ for more information.

⁠Start MoleCuilder with the Graphical Interface

This takes a bit more setup in running the container as the MoleCuilder executable in the container needs to interface with an X server running on the host.

sudo docker \
        run --rm -ti --net=host --ipc=host \
        --runtime=nvidia \
        -e DISPLAY=$DISPLAY \
        -e XSOCK=/tmp/.X11-unix \
        -e XAUTHORITY=/tmp/.XAuthority \
        -e LIBGL_ALWAYS_INDIRECT=1 \
        --gpus all \
        --env="QT_X11_NO_MITSHM=1" \
        -v /tmp/.X11-unix:/tmp/.X11-unix \
        -v $XAUTHORITY:/tmp/.XAuthority \
        -v /tmp/molecuilder:/tmp/molecuilder:rw \
        --workdir "/tmp/molecuilder" \
        --entrypoint "/home/molecuilder/_pkgs/molecuilder-1.7.0/bin/molecuildergui" \
        frederikheber/molecuilder:1.7.0

As you see, this requires root on the host machine ("sudo") and we need to forward several Xserver related files into the container. This works on a latest Ubuntu OS running on the host. For other operating systems, you need to dig into running X applications with a container with 3D acceleration.

⁠Start MoleCuilder within Kubernetes

If you do not have a running kubernetes environment, you can also use minikube⁠ to set one up on your local machine.

Next, you need the k8s kustomize files from the molecuilder's git repository⁠. See also the README.md file therein.

Finally,

kubectl -- apply -f server-deployment.yaml
kubectl -- apply -f server-service.yaml
kubectl -- apply -f worker-deployment.yaml

To start a server and a worker deployment.

Tag summary

Content type

Image

Digest

sha256:a868f88ae…

Size

408.8 MB

Last updated

9 months ago

docker pull frederikheber/molecuilder:1.7.1