Skip to content

Protocol Documentation

drt/proto/config.proto

package drt.proto

Config

General settings for setting up a given system.

Field Type Description
name string Name of a given study.

Material parameters

Field Type Description
dislocation_core double Defaults to COLLISION_HORIZON from pd3
nu double Default to NU from pd3
lattice_spacing LatticeSpacing Default to crytal type from pd3
lattice_length double
b double burger's length (if 0, calculated from crystal type and lattice)
mu double shear modulus
e double young's modulus

Loading parameters

Field Type Description
applied_stress Symmetric

Resolution parameters

Field Type Description
voxel_resolution int32 Results in NxNxN voxel space.
voxel_resolution_x int32 Option to override the base resolution for x.
voxel_resolution_y int32 Option to override the base resolution for y.
voxel_resolution_z int32 Option to override the base resolution for z.
sensor_resolution int32 Pixels in the resultant image. Will result in a N_sensorxN_sensor image.

Positioning Parameters

Field Type Description
bounds Vector The containing area to consider for ray-tracing. Note this will default to the whole periodic system (and default to periodic_bounds).
position Vector The position of the slice to consider.
periodic_bounds Vector Inherited from PERIODICITY.extent in pd3.

Methodology parameters

Field Type Description
gradient GradientMethod Gradient method. Note that not all are GPU accelerated.

Boolean flags

Field Type Description
fragmented bool Produce images for each octant of a given dislocation structure as seen in Bertin 2018, figure 6.
undeformed bool Run process without actually computing the deformation gradient.
dump_gradient bool Output the deformation gradient on computation.

Reflection parameters

Field Type Description
laue_spot Vector HKL representation of a studied laue point (Optional).
ray_search_depth int32 Must be independent of laue_spot. Will search hkl from -x to x, accounting for classic extinctions of the given LatticeSpacing.

Periodicity parameters

Field Type Description
periodic_field bool Whether to adjust the deformation gradient for periodicity.
periodic_depth int32 When accounting for periodicity, this is the number of full system neighbors accounted for.

Intensity parameters

Field Type Description
b_factor double Whether to adjust the deformation gradient for periodicity.

Sensor parameters

Field Type Description
sensor_dist double Distance from specimen to sensor.
sensor_direction Vector Direction of the sensor from the specimen (will be normalized when used).
sensor_plane Vector Vector normal to the plane of the sensor.
source Vector Direction of the incoming x-rays to the specimen.
sensor_x Vector Orientation of sensor's "x" direction. Should be normal to sensor_y and sensor_plane.
sensor_y Vector Orientation of sensor's "y" direction.
sensor_length_x double The size of the sensor for the x direction in set units.
sensor_length_y double The size of the sensor for the y direction in set units.

Adjustment parameters

Field Type Description
sensor_shift_x int32 Pixel offset in sensor_x direction for diffraction image.
sensor_shift_y int32 Pixel offset in sensor_y direction for diffraction image.

Meta

Field Type Description
meta Meta Descriptive information that does not directly apply to the simulation

Meta

Field Type Description
t0 double
t double
applied_strain_rate Vector
plastic_strain Symmetric
density double

Symmetric

Structure to hold symmetric data.

Field Type Description
xx double Voigt notation.
yy double
zz double
xy double
xz double
yz double

Vector

Structure to hold vector data.

Field Type Description
x double x position.
y double y position.
z double z position.

GradientMethod

Name Number Description
SIMPLEX 0 Uses Numerical Procedure from Ahmed's displacement fields. (default)
ANALYTIC 1 Uses Bertin's parallelizable form.
LOCAL 2 Uses interpolation for far displacement effects.

LatticeSpacing

Name Number Description
UNKNOWN 0 Undefined spacing will throw an error.
FCC 1 Face Centered Cubic (default)
BCC 2 Body Centered Cubic
SIMPLE 3 Simple cubic

Scalar Value Types

.proto Type Notes C++ Python
double double float
float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int32 int
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int64 int/long
uint32 Uses variable-length encoding. uint32 int/long
uint64 Uses variable-length encoding. uint64 int/long
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int32 int
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int64 int/long
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. uint32 int
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. uint64 int/long
sfixed32 Always four bytes. int32 int
sfixed64 Always eight bytes. int64 int/long
bool bool boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. string str/unicode
bytes May contain any arbitrary sequence of bytes. string str