(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.