Skip to content

documentation codecov Singularity Status

(dislocation ray tracing)

A library extension to a Discrete Dislocation Dynamics framework, to enable simulated spectroscopy by ray tracing methods.

Running on MARCC

In order for library compatibility, drt must be run through singularity. Recipes for building the needed containers are found in containers/singularity. To use the containers, a script like this might be used:

#!/bin/bash
module load singularity
singularity exec -B ~/singularity/opt:/opt --cleanenv --nv ~/containers/$@ bash

Now, bazel can be used to compile the project. NOTE: compilation requires significant compute resource. Use a debug node to complete these operations. For instance to compile the gradient operation, the following operation can be used:

CC=clang-10 LD_LIBRARY_PATH=/.singularity.d/libs bazel build --define=config_file=cell-details studies:gradient.par

The result can then be used by executing the resulting binary:

~/src/drt/src/bazel-bin/studies/gradient.par --help

Studies

Gradient

Options for gradient calculations are as follows:

  -b,--[no]boundary: Calculate boundary effects from the gradient.
    (default: 'false')
  -f,--file: Input file name.
  -n,--node: Node number for computation.
    (default: '1')
    (a positive integer)
  -d,--output_dir: Directory of output.
    (default: '.')
  -p,--[no]periodicity: Whether to incorporate periodic effects into the gradient.
    (default: 'false')
  -N,--total_nodes: Total nodes for computation.
    (default: '1')
    (a positive integer)

Each node can calculate gradient independently, thus the components can be run in parallel. For system setup for calculations see the configuration declaration, with examples.

Why drt?

[TODO]

Running

[TODO]

Docker

This project is managed with the bazel build system. All dependencies and installation requirements are contained within the provided Docker container. It is heavily recommended you use this container for active development of this project. Further, it is recommended that you use docker to build the project. To run this project, use the scripts provided.

For example by invoking the docker commands directly:

docker-compose -f containers/docker/test.yaml run run --define=config_file=test studies:gradient

Singularity

[TODO]

Unmanaged

You can run and install pd3 without a container. For this, you will need bazel. To download the recommended binary for bazel, run scripts/download_bazel.sh. Additionally, you can run scripts/setup.sh to provision your system with needed project dependencies.

Usage

C++

For usage with C++ please see the C++ api documentation.

Python

For usage with Python please see the Python api documentation.